目錄

PortSwigger-檔案上傳漏洞 lab 3

Lab: Web shell upload via path traversal

Lab 目標

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

說明

相較於上一題,此Lab主要在於限制使用者上傳資料夾的執行權限,讓shell上傳後無法正常執行,用來防止此類攻擊。但因此lab中存有路徑走訪的弱點,可以結合此弱點將檔案上傳到其他可執行的路徑,來進行攻擊。

  • 此lab可使用與上一個lab相同的webshell。

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

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

  • 上傳shell並連線後發現無法執行,因為資料夾無執行權限。
  • 在HTTP history中將上傳的HTTP request傳到Burp Repeater中。
  • 在Burp Repeater中修改上傳路徑到可執行的路徑,filename="../shell.php"。如果直接上傳會發現回傳的結果跟直接上傳相同。
  • 因為server對路徑走訪有些許防範,因此利用URL encoding來進行混淆,改為filename="..%2fshell.php"
  • 從response中可看到avatars/../shell.php,表示有成功將路徑值帶入。

https://amingosec.blog/wp-content/uploads/2022/03/upload_urlencoding-1024x294.png

  • 皆下來,連到上傳路徑/files/shell.php (/files/avatars/../shell.php)後,flag會直接出現在browser中,提交就可以完成此lab。

延伸閱讀