實戰 | App優惠劵無限領取漏洞挖掘記錄
VSole2022-07-25 06:07:20
介紹
對于app的漏洞挖掘其實客戶端漏洞挖掘還是很少的,當然像谷歌或者小米這種手機廠商的src還是很重視的,但是其他廠商除非是rce可能就獎勵不是很高了。一般的app中漏洞挖掘還是主要在于客戶端與服務端進行通信過程中,進行數據包的抓取,毫不夸張的說,會使用Charles或者bp就可能會挖到一些嚴重的漏洞。
主要就是api接口或者是數據的修改。因為很多app都只是前端做校驗,在一些比較關鍵的地方進行修改可能會有意想不到的驚喜。
挖掘流程
我們首先在領取優惠卷的地方進行抓包。


箭頭所指的就是優惠劵類別。此時我們繼續重復抓包是無法領取的,但是在這個時候,還是不要放棄,可以換一個思路,既然直接重放是無法實現的,那么能否修改優惠券的類別,此時我們可以去其他可以領取優惠券的地方,查看是否是有其他的優惠卷編碼。
此時我們可以去查看一些贈送優惠券的商品,進行抓包。而且可以去挑選一些無差別的優惠券甚至是一些通用券。
比如我們此時抓到了這樣一個包。

那么此時我們將該編碼放在我們上一個數據包中進行重放,發現是可以成功重放并且進行多次重放。優惠卷也是已經全部領取成功,我們也可以領取各種不同的優惠券。此時就已經成功完成了優惠券的無限領取。
此時重放了10次,全部成功。

該漏洞已經提交修復了。不刑的。
補充閱讀
邏輯漏洞的挖掘總結
https://www.secpulse.com/archives/139186.html
支付交易(充值、提現、抽獎、優惠券、會員)等多個模塊
?金額、數量負值/小數。 ?總金額=商品金額+優惠券金額(只校驗訂單總金額,而不單獨校驗優惠券金額跟商品金額,可增大優惠券金額)。 ?訂單參數混淆干擾(在同一個訂單內提交兩個或多個金額參數,如price=1&price=-1)。 ?校驗商品總數量不能為負數,而不校驗單個數量,可以設置兩個商品一個數量為-1,一個數量為2。 ?越權使用他人優惠券。 ?首充優惠、升級會員等,多臺設備同一賬號同時進入支付寶微信第三方支付頁面,此時簽名訂單已生成,支付時不會變成其他金額,可依次以優惠價格支付訂單。 ?小數點精度:0.019=0.02(比如充值0.019元,第三方支付截取到分也就是0.01元,但是系統四舍五入為0.02)。 ?int型溢出(超過最大值整數溢出)遍歷優惠券id,有可能遍歷出測試隱藏的無條件大額優惠券。 ?首充、提現、抽獎、領取優惠券等并發:不一定非要用同一個數據包去進行多次并發操作,可用bp等工具攔截客戶端數據包,快速多次點擊相應客戶端按鈕,然后停止攔截,并發請求。
APP端賽事商品下單并發場景下導致優惠券可以重復使用多次的邏輯漏洞
VSole
網絡安全專家