“薅羊毛”漏洞分析 | 我是如何到处“混吃混喝”的
不多嗶嗶 先看圖 無圖無真相 (??????)??。
下面就跟大家分享交流一下經驗,漏洞均已上報給相應的廠商,無法透露詳細細節,見諒。
一、某餐飲店的儲蓄卡 卡里有800元可到任意分店進行消費
該儲蓄卡分4種面值 60、200(180元購)、400(350元購)、800(650元購)。
因為沒有購物車功能直接進行購買,負數漏洞是無法利用的了。
那么就分析一下購買的數據包,看看是否進行了價格、優惠等價格的傳遞。
saleAmt儲蓄卡的單價 totalQty購買數量 totalAmt總價。
嘗試修改了單價以及總價無果 對價格做了檢測。
最后發現修改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)后,大佬們帶我去了烤魚,到了店里我就跟大佬們說。
“有沒有可能找到漏洞免費吃啊?” 大佬無情回復”怎么可能,哪會有漏洞?!?/p>
當時手上也沒電腦,美滋滋的吃完就溜了。
過了兩天閑來無事,就去看了看他的自助點餐系統,發現存在負數漏洞 開始還很激動。
但是需要到店跟店員確認的,所以并沒什么用,但緊接著又發現他的一個商城,有賣一些菜品的卡卷。
進入商城頁面一個購物車的圖標就吸引了我,直接嘗試負數漏洞,構造出最低價,付款,最后我僅用4元就買到了一張烤魚的卷!
此漏洞產生的原因
沒有對商品的數量進行校驗是否正常導致結算出問題,例如A商品單價10元,B商品單價9元。
系統進行結算的公式: 單價數量 + 單價數量 = 總價
假如我添加了1個A、-1個B到購物車,
總價 = 110 + (-1)9 = 10 – 9 = 1 元。
總結
以上是生活随笔為你收集整理的“薅羊毛”漏洞分析 | 我是如何到处“混吃混喝”的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逻辑漏洞之任意用户登陆漏洞
- 下一篇: 分享一个近期遇到的逻辑漏洞案例