upload-labs_pass10_点空点绕过_pass11_双写文件扩展名
關于靶場說幾點:單純用phpstudy 可能無法復現所有的漏洞,而且phpstudy中的php可能是線程不安全的,所以建議大家在自己本機或者虛擬機的中親自搭建一下apache和php的環境,便于復現upload-labs的所有靶場環境。配置有問題的可以參考我寫的這篇文章:
https://blog.csdn.net/qq_51550750/article/details/124062273
pass10-觀察源碼,思路生成
看源碼:
$file_name = deldot($file_name);//刪除文件名末尾的點 $file_ext = strrchr($file_name, '.'); $file_ext = strtolower($file_ext); //轉換為小寫 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA $file_ext = trim($file_ext); //首尾去空對比pass5的源碼:
$file_name = deldot($file_name);//刪除文件名末尾的點 $file_ext = strrchr($file_name, '.'); $file_ext = strtolower($file_ext); //轉換為小寫 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA $file_ext = trim($file_ext); //首尾去空pass10貌似沒有什么變化。
如果我們嘗試先加一個“.”,再加個空格,再加個“.”呢?最后是不是就是剩了一個點呢?
pass10-嘗試上傳
首先說明我用的靶場環境是phpstudy,其中php的版本是7.3.4nts:
然后上傳文件,抓包,改名稱:
然后forward:
貌似是上傳成功了:
查看文件路徑,
嘗試連接:
連接成功。
pass11-觀察源碼
發現對比于第10關就只有一行:
$file_name = str_ireplace($deny_ext,"", $file_name);其實功能就是在下面的黑名單中,如果發現了匹配,就替換成空:
"php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini"利用這個思路,是不是可以寫成shell.phphpp
在過濾之后,是不是就變成了shell.php?
試試這個方法:
pass11-上傳文件
抓包,改名:
貌似是上傳成功了:
蟻劍測試連接:
簡單總結一下
pass6:大小寫過濾不全面
pass7:擴展名最后加一個空格
pass8:擴展名最后加一個點
pass9:擴展名最后加上::$DATA
pass10:擴展名最后加點空點
pass11:雙寫文件擴展名
覺得寫的還不錯的師傅點個贊吧!知識分享是無價的。
總結
以上是生活随笔為你收集整理的upload-labs_pass10_点空点绕过_pass11_双写文件扩展名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: upload-labs_pass 9_:
- 下一篇: Excel操作