先驗證邏輯錯誤,再驗證輸入錯誤,所以就走邏輯。
Web
註冊處發現可以跑用戶名,用戶明存在與否響應不同。若存在,則提示已經存在,若不存在,則提示註冊成功。
基於此,使用 burp intruder 嘗試遍歷用戶名。
最終跑出來以下用戶名
註冊一個用戶,進行登錄,登錄到後臺,發現修改密碼處,有 id 值。
對 id 進行遍歷,發現無法越權訪問,便嘗試修改密碼處,越權修改密碼。
修改 id 爲 1 用戶的密碼,猜測用戶名爲 admin。成功猜中,,沒猜中也可以再次遍歷即可。以 admin 用戶登陸後,發現上傳文件處。
經測試,發現通過 phtml 即可繞過上傳。後續看了看 upload.php 發現只是過濾了兩個關鍵字。
成功拿到 webshell
提權
獲取到 webshell 後進行反彈。
進行漫步,發現 john 用戶目錄下存在 suid 權限的文件,並且有運行權限。
嘗試運行,發現輸出 id 命令結果。
利用環境變量劫持 id 命令。
成功化身爲 john
john 目錄下的 password 提醒了密碼。
利用密碼查看 sudo -l 內容,發現運行 sudo 運行 file.py 腳本。
有權限更改 file.py 內容,那就更改執行 bash。
執行獲取 root