low級
對檔案型別沒有任何約束,可直接上傳“一句話木馬”hack.php,連線冰蠍。
一句話木馬 :
medium級
原始碼
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
( $uploaded_size < 100000 ) )
可以看到,程式碼對檔案的型別和檔案的大小,做了限制。
思路:
將webshell檔案上傳,然後利用burp進行抓包,可以看到伺服器判斷檔案型別的方式有兩種,一種是filename,一種是content-type。
如果上傳的是php格式的,可以修改 content-type的值,來繞過上傳限制
如果上傳的是jpg格式,可以修改filename的值,來完成上傳webshell
high級
原始碼
if( ( strtolower( uploaded_ext ) == "jpg" || strtolower( uploaded_ext ) == "jpeg" || strtolower(uploaded_ext ) == "png" ) &&( uploaded_size < 100000 ) &&
getimagesize( $uploaded_tmp ) )
可以看到,程式碼對檔案字尾,檔案大小,檔案型別,做了限制,這裡要注意 getimagesize()函式,該函式可獲取圖片的寬高等具體資訊。因此,只修改檔案字尾是無法繞過的,找一張 jpg格式的圖片,使用 命令 copy img.jpg/b+hack.php/a hack.jpg 其中,img.jpg/b中“b”表示“二進位制檔案”,hack.php/a中“a"表示ASCII碼檔案,hack.jpg表示生成的新檔案的名稱。
思路:
將webshell與圖片合併後,即可上傳,但由於不是 .php檔案所以無法執行。此次需要利用檔案包含漏洞,修改一句話木馬:'); ?> ,再次合成圖片,重新上傳,然後在DVWA的fileinclusion模組訪問http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///+“上傳檔案所在路徑“,此時在DVWA檔案包含漏洞的路徑下便自動生成了PHP一句話木馬指令碼檔案muma.php,到此可使用冰蠍進行連線。
4. impossible?php>