文件上傳漏洞 (使用非可執行文件)
文件上傳漏洞 (使用非可執行文件)
靶機 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 了
留言
張貼留言