upload-labs靶場通關(20關)
阿新 • • 發佈:2022-04-09
第一關:白名單驗證
上傳圖片馬進行抓包,修改後綴名為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編碼後再提交