1. 程式人生 > 其它 >upload-labs靶場通關(20關)

upload-labs靶場通關(20關)

第一關:白名單驗證

上傳圖片馬進行抓包,修改後綴名為php即可

 

第二關:可以用第一關方法上傳,但是這關是考修改MIME資訊,將MIME資訊改為白名單內容即可

 

第三關:黑名單驗證

將php格式換成類似格式即可

 

 

第四關:.htaccess解析

建立一個.htaccess檔案,編輯內容為

<FilesMatch "cxk.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

 上傳上去,接著上傳cxk.jpg上去會被解析為php格式

 

第五關:程式碼中無strtolower()函式 //轉化為小寫

將字尾改為大寫即可

 

第六關:程式碼中無收尾去空函式trim() //去除字串中的空格

字尾加空格即可

 

第七關:程式碼中無deldot()函式 //刪除檔名末尾的點

字尾加個.

 

 

 

第八關:少了str_ireplace('::$DATA', '', $file_ext);//去除字串::$DATA

利用Windows特性

在window的時候如果檔名+"::$DATA"會把::$DATA之後的資料當成檔案流處理,不會檢測字尾名,且保持::$DATA之前的檔名,他的目的就是不檢查字尾名

字尾加上::$DATA

 

 

第九關:一次過濾問題

字尾加. .即可

 

第十關:雙字尾名繞過

$file_name = str_ireplace($deny_ext,"", $file_name); //這段程式碼是去除黑名單裡面的名稱

字尾改為pphphp即可

 

第十一關:%00截斷原理

www.xxx.com/shell.php%00.jpg => www.xxx.com/shell.php

如圖

 

第十二關:和上一關思路一樣,不過這裡是POST傳參,得將%00進行url編碼後再提交