“薅羊毛”漏洞分析 | 我是如何到處“混吃混喝”的

weixin_34292287發表於2017-10-09

www.hackjason.com

不多嗶嗶 先看圖 無圖無真相 (๑•̀ㅂ•́)و✧。

5504547-e24dac5f24dbf84f.jpg!small

5504547-72eb1d081b5285cc.jpg!small

5504547-f6af8a717baea576.jpg!small

下面就跟大家分享交流一下經驗,漏洞均已上報給相應的廠商,無法透露詳細細節,見諒。

一、某餐飲店的儲蓄卡 卡里有800元可到任意分店進行消費

該儲蓄卡分4種面值 60、200(180元購)、400(350元購)、800(650元購)。

因為沒有購物車功能直接進行購買,負數漏洞是無法利用的了。

那麼就分析一下購買的資料包,看看是否進行了價格、優惠等價格的傳遞。

saleAmt儲蓄卡的單價 totalQty購買數量 totalAmt總價。

5504547-0885c29b7a3ae7ea.png!small

嘗試修改了單價以及總價無果 對價格做了檢測。

最後發現修改cardType的值 其餘引數不動 貌似能以低價購買高價的卡。

選擇購買60元的卡 –> 提交訂單 –> 攔截資料包修改cardType的值為800的 –> 付款60 –> 拿到800元的卡。

此漏洞產生的原因

該程式設計師還是有安全意識的,對傳遞的價格引數做了檢測。

但經過fuzz以及漏洞利用成功之後發現他僅僅將傳遞的價格與資料庫中的價格進行比對,如果存在則放行,不存在則阻止。

以60元的舉例:傳遞saleAmt:60 –> 查詢資料庫中價格列是否含有60?通過並提示付款:阻止。

二、某個廠商的活動 參與即可領取XXX電子券

開始我還以為只是個活動噱頭,沒那麼容易拿到電子券的。

但我控制不住自己的好奇心啊,開啟了burpsuite設定好了代理。

進入活動進行參與,沒想到真的直接跳轉到了領取電子券的頁面,良心啊!

我將成功領取電子券的包抓了下來,放到Repeater進行分析,一個get包,大致如下:

GET /?a=0001&b=f

Host:127.0.0.1

XXX: XXXX

...

我將包原封不動的重放,響應200但是沒有回顯,成功領取的那個資料包回顯了電子券的過期日期的。

a引數一看就知道代表是電子券的型別 b引數看不出是什麼,別的地方也沒啥好改的,就隨便改個值看看吧。

沒想到一改這b引數的值就回顯了電子券的過期日期,我都驚呆了w(゚Д゚)w。

開啟我的獎勵,確認多了一張電子卷,也檢視了卷碼,跟剛領的不同。

只要b引數的值之前沒有提交過,就可以成功領取一張,光數字組合起來的就拿到手軟好嘛..

此漏洞產生的原因

不詳..我也不知道為啥會這樣,還請大佬多指教。

三、想必大家非常熟悉了,基本隨處可見的烤魚店

經過一天刻苦的學(shen)習(you)後,大佬們帶我去了烤魚,到了店裡我就跟大佬們說。

“有沒有可能找到漏洞免費吃啊?” 大佬無情回覆”怎麼可能,哪會有漏洞。”

當時手上也沒電腦,美滋滋的吃完就溜了。

過了兩天閒來無事,就去看了看他的自助點餐系統,發現存在負數漏洞 開始還很激動。

但是需要到店跟店員確認的,所以並沒什麼用,但緊接著又發現他的一個商城,有賣一些菜品的卡卷。

進入商城頁面一個購物車的圖示就吸引了我,直接嘗試負數漏洞,構造出最低價,付款,最後我僅用4元就買到了一張烤魚的卷!

此漏洞產生的原因

沒有對商品的數量進行校驗是否正常導致結算出問題,例如A商品單價10元,B商品單價9元。

系統進行結算的公式: 單價數量 + 單價數量 = 總價

假如我新增了1個A、-1個B到購物車,

總價 = 110 + (-1)9 = 10 – 9 = 1 元。

感謝觀看,小小雜技,獻醜了,各位大佬請多多指教(。_。)

傑森黑客部落格

www.hackjason.com

相關文章