文件上傳漏洞 (使用非可執行文件)

 文件上傳漏洞 (使用非可執行文件)


靶機 IP : 192.168.203.16

攻擊端 IP : 192.168.45.250

第一步,先掃端口

rustscan -a 192.168.203.16 -u 5000 -t 8000 --scripts -- -n -Pn -sVC 

開了三個 Port : 22 / 8000 / 2222



22 / 2222 分別都是 ssh, 8000 是 http



那就先開網站吧 http://192.168.203.16:8000,一樣有個檔案上傳功能




測試 test.txt 可以成功上傳



執行測試 indes.php 等上傳的檔案發現上傳的檔案存在根目錄



一樣丟個後門檔案 php-reverse-shell.php上去



寫好連線本機的 6667 Port



存取該網頁,結果發現網站將它直接當成文件類型開啟,不執行該 php 檔案

此為標準的非可執行文件網站




換一個思路,先測試 ../../../../../../../test.txt 可否上傳成功,發現可以上傳成功




透過檔案上傳來覆蓋 /root/.ssh/authorized_keys 的方式看看可否成功

先建立一對 ssh 公私鑰,指令 ssh-keygen 並取名叫 newsshkey



將 Public Key 改名為 authorized_keys --> cat newsshkey.pub > authorized_keys





將剛剛上傳成功的 test.txt 送到 Burp Suite 並修改檔案路徑如下

"test.txt" --> "../../../../../../../../root/.ssh/authorized_keys"

雖然不知道遠端系統有否支援相對路徑的檔案上傳覆蓋功能

但結果來看檔案是上傳成功的





在檔案上傳的原有路徑去存取該檔案也是不存在的



此時我們假設是真的有覆蓋 root 的 Key,那就讓我們直接測試看看

若系統支援有連線過相關 ssh 可能會直接用 cache 所以可以先下 rm ~/.ssh/known_hosts

將所有記憶的 key 先清除,即便沒有也可以下該指令買保險一下是最安全的

接著就用我們本機的私鑰連線看看吧, 22/2222 都是 ssh 直接先測試 2222 Port

ssh -p 2222 -i newsshkey root@mountaindesserts.com

直接就順利進去並拿到 flag 了




留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)