針對小程序的漏洞挖掘
0x00 前言
承接上一篇APP業務挖洞的碎碎念,此篇文章主要是針對小微信程序的漏洞挖掘,微信小程序默認是直接使用自己微信登陸的,我們對小程序的漏洞挖掘,關注點還是在邏輯漏洞上面,下面將從環境搭建到實例一步步講解。(此篇文章更適合做安服的老哥們看)
0x01 環境配置
工具:Burp+Fiddler+windows版本微信
注: 你也可以直接用burp+windows版微信,進行抓包,如果出現網絡錯誤,直接用Fiddler抓包然后發給burp進行測試。
關于Fidder如何抓取HTTPS數據包,如下:
這里我是直接下載的漢化版,本人英語不太好,打開Fiddler,選擇工具,然后點擊選項,然后在HTTPS處,勾選上捕獲HTTPS鏈接,解密HTTPS流量,忽略服務器證書錯誤。

選擇最右側的操作按鈕,選擇將根證書導出到桌面。

然后將證書導入到瀏覽器。

手機端的話,無線網絡直接設置上Fiddler的代理地址和端口,這里我設置的9999端口,然后訪問x.x.x.x:9999端口,下載證書 安裝即可。

至此 Fiddler可以正常抓取http和https數據包。
關于Fiddler聯動burp 抓包,配置如下圖:

微信端設置代理地址

抓包測試一下,沒問題,此處抓的抽獎助手的數據包

0x02 漏洞挖掘小技巧
小程序我是測過微信小程序和釘釘里面的業務模塊,測試微信小程序,直接忽略掉登陸相關的漏洞,注重點還是在邏輯漏洞上。這里我就用一個實例來講解,因為金融是比較敏感的行業,所以一些硬核漏洞,他們也會去修復,表哥們自行斟酌。
一、先說一下小程序比較常見的漏洞:
1.流程驗證過漏洞(小程序里面這個漏洞特別多,我都是習慣性的先測試這個漏洞,大家可以平時在挖洞過程中,多收集一些狀態返回碼,以便在測試時使用)
挖掘方法:
(1)在驗證下一步的時候,抓包,查看返回包里面的響應碼,嘗試修改響應碼,進行繞過1
(2)輸入驗證碼進入下一步時,先輸入正確的驗證碼,查看正確的返回包,然后隨便輸入一個驗證碼,修改返回包中的狀態碼為正確通過時的狀態,查看是否能繞過
2.任意文件上傳漏洞(小程序中任何可以上傳的地方,一般小程序中對文件上傳功能限制較少,很容易繞過,我在挖洞的過程好幾次都是通過文件上傳進行getshell)
挖掘方法:
(1)任意上傳圖片的地方,通過burp修改文件后綴,繞過
(2)上傳身份證的地方,如果是攝像頭拍照那種,可以結合流程驗證繞過漏洞,通過修改返回包中的狀態進行繞過
3.Cors跨域訪問漏洞(這個漏洞感覺沒啥說的,其實就是看數據包的請求中是否含有origin字段,然后修改請求包中的origin字段的值,然后去看返回包查看Access-Control-Allow-Origin是否改變。
挖掘方法:
(1)查看請求包中的是否含有origin字段,修改oringin字段,然后查看返回包中的Access-Control-Allow-Origin是否改變
(2)也可以使用burp自帶的掃描來判斷
4.信息泄漏漏洞
挖掘方法:獲取信息的地方,通過返回包內容來判斷是否獲取其他用戶的信息
5.越權漏洞(平行越權)
挖掘方法:
(1)增刪改查處,多注意數據包中的字段,挖掘越權漏洞,一定要細心細心再細心
(2)可以通過遍歷字段的方法,來測試是否越權
6.硬核漏洞(不安全的HTTP方法)
挖掘方法:
(1)把POST請求改成OPTIONS,然后查看返回包中的Access-Control-Allow-Methods值
二、附上一個實例
此處的測試目標是銀行的一個小程序,小程序功能點就4個,客戶信息維護、密碼修改/重置、賬戶激活、簽約類。

這里我們針對這幾個功能點,首先想到的就是 能不能繞過他這個驗證流程呢(流程驗證繞過漏洞)?
我們在身份信息驗證處嘗試修改返回包狀態碼,從而繞過驗證流程。正常返回包中,因為輸入錯誤信息,所以返回"100";


將100修改為“200” 放包,繞過此流程,進入到下一環節


當然,其他地方也可以通過修改返回包的狀態碼,進而繞過,其他地方的圖片就不貼了,因為挖掘過程是一樣的。
然后就是cors漏洞,這個沒啥說的,通過修改oringin字段,然后查看返回包中的Access-Control-Allow-Origin是否改變,此處是存在這個漏洞
0x03 小結
針對小程序的滲透測試,多注意邏輯漏洞和上傳漏洞,因為一般對這種漏洞的過濾較少,SQL注入這種倒是沒遇到過,大家平時多收集一些響應碼這種,在測試過程可以發揮到奇效,針對越權漏洞的話,多注意數據包的參數,發現類似id,uid,UserName這種字段,可以直接嘗試遍歷參數,關鍵是要細心。