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/資料夾下。
- 直接上傳webshell後,會出現無法上傳的錯誤訊息;從下圖的錯誤訊息中可以看出,僅可上傳jpg & png兩種類型的檔案,因此利用混淆副檔名來bypass。
- 將一開始上傳的request傳到Burp Repeater
- 在filename的內容改為
"exploit.php%00.jpg"
。最後的結果如右,filename="exploit.php%00.jpg"
- 傳出請求後,會看到下圖的結果。可以看到最後server上傳的是
shell.php
。
- 最後後再次存取/files/avatars/shell.php5即可取得此Lab的Flag。