2020.9.19凌晨3點23
深夜難眠,回想起今天waf上一大堆誤報和寥寥無幾的告警,甲方爸爸提供的兩葷一素已經換成了白粥榨菜,農夫已經換成了怡寶,豬肉換成了榨菜,或許我們是時長一個月實習生的身份,已經徹底暴露了,明天不知道是不是隻能吃開水泡麵了。唉,明天又要穿上白襯衫,繼續假裝自己是5年工作經驗的安全專家,今晚終於認清現實,活捉紅隊0day依然是我們遙不可及的夢。
生而為人,我很抱歉。
材料準備:
burp suite、模擬器(把微信裝好)、node.js、wxappUnpacker、root explorer
操作流程:
步驟1: 設定Burp和模擬器(模擬器需匯入ca證書),開啟模擬器的WLAN-->高階設定-->輸入物理機的ip以及一個沒被佔用的埠,Burp用於代理該埠
步驟2:開啟微信-->隨便點選一個小程式進入小程式主介面,然後開啟檔案管理器
在/data/data/com.tencent.mm/MicroMsg/xxxxxxx(不同微信資料夾也不同)/appbrand/pkg/目錄下存放著剛才存取這個小程式的兩個封包,
兩個包分為子包和主包
壓縮後通過模擬器的微信傳送到物理機進行反編譯
可以直接用notepad++ 但是會有亂碼,這裡使用git下載的wxappUnpacker進行反編譯
CMD進入wxappUnpacker的下載目錄,安裝依賴包
Shell
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
複製 文字
依賴包安裝好後 使用命令node wuWxapkg.js C:\xxxxxx\xxxxxx\_-1971317095_1.wxapkg
進行反編譯(如果是子包的話需要加-s引數)
反編譯完成
接下來就是針對所有js、html進行漏洞分析,尋找突破口
通過簡單的資訊收集得知該小程式是windows+iis7.5+.net+mssql
80、443、3389埠開啟
且程式採用了svc介面
從js中得到一個介面用於判斷手機號是否註冊
通過單引號 和 '--(單引號+mssql閉合) 發現返回包不同
使用單個單引號 報錯:系統故障
使用 單引號跟閉合 返回正確封包 因此判斷該處通過單引號閉合
最後驗證存在SQL隱碼攻擊
注入點許可權很小 --os-shell許可權為iis
且注入點只能布林和延遲,列目錄寫shell屬實浪費時間
通過子域名掃描得到後臺一枚,且發現該程式居然還是一個通用系統。。
通過注入點拿到後臺賬號密碼後 就是常規的滲透思路了,本文著重於微信公眾號的反編譯(最後好像有點跑題),有不足之處希望評論區留言指正,反正我也不會改的