目錄

PortSwigger-檔案上傳漏洞 lab 5

Lab: Web shell upload via obfuscated file extension

Lab 目標

跟上一個lab相同,利用上傳漏洞將目標主機上/home/carlos/secret檔案內容輸出,再將輸出的內容subsmit。

說明

相較於上一題,此Lab重點在練習副檔名的混淆手法,讓攻擊者可以上傳shell到有副檔名檢查網站。可以達到此攻擊的原因來自於判斷程式跟執行程式方式的差異,例如在判斷時,會把混淆過的副檔名當成真正的檔名而允許上傳,但在執行時,會轉為正真的攻擊檔案來執行。參考portswigger網站所列出的方式即可達成目標。

步驟

  • 此lab可使用與上一個lab相同的webshell。
  • 可以先上傳一個正常的檔案,看一下檔案會被存放的位置。
  • 利用burpsuite可看到位置在/files/avatars/資料夾下。

https://amingosec.blog/wp-content/uploads/2022/03/uploadlocation-1024x560.png

  • 直接上傳webshell後,會出現無法上傳的錯誤訊息;從下圖的錯誤訊息中可以看出,僅可上傳jpg & png兩種類型的檔案,因此利用混淆副檔名來bypass。

https://amingosec.blog/wp-content/uploads/2022/04/only_jpg_png_allowed-1.png

  • 將一開始上傳的request傳到Burp Repeater
  • 在filename的內容改為"exploit.php%00.jpg"。最後的結果如右,filename="exploit.php%00.jpg"
  • 傳出請求後,會看到下圖的結果。可以看到最後server上傳的是shell.php

https://amingosec.blog/wp-content/uploads/2022/04/lab5_response-1.png

  • 最後後再次存取/files/avatars/shell.php5即可取得此Lab的Flag。

延伸閱讀