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/
資料夾下。
- 上傳shell並連線後發現無法執行,因為資料夾無執行權限。
- 在HTTP history中將上傳的HTTP request傳到Burp Repeater中。
- 在Burp Repeater中修改上傳路徑到可執行的路徑,
filename="../shell.php"
。如果直接上傳會發現回傳的結果跟直接上傳相同。 - 因為server對路徑走訪有些許防範,因此利用URL encoding來進行混淆,改為
filename="..%2fshell.php"
- 從response中可看到avatars/../shell.php,表示有成功將路徑值帶入。
- 皆下來,連到上傳路徑
/files/shell.php
(/files/avatars/../shell.php)
後,flag會直接出現在browser中,提交就可以完成此lab。