DVWA-1.9之fileupload

  • 2020 年 8 月 16 日
  • 筆記

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模組訪問//127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///+「上傳文件所在路徑「,此時在DVWA文件包含漏洞的路徑下便自動生成了PHP一句話木馬腳本文件muma.php,到此可使用冰蠍進行連接。
4. impossible