护网杯web
首先進入網頁后,觀察到有sign up
點擊sign up 進行注冊
再點擊sign in 進行登錄
進入一個買辣條的界面,可以知道,5元可以買一包大辣條,多包大辣條可以換一包辣條之王,多包辣條之王可以換Flag
進入info查看余額,發現,至多可以買4包大辣條,不滿足辣條之王的兌換
嘗試條件競爭
打開burpsuit
點擊大辣條的購買窗口,抓取數據
發送到Intruder,點擊Positions,點擊clear
點擊Payloads
這里算是糾結了一下,最后想到利用條件競爭,試驗發現一個賬戶的兩個登陸同時買辣條,只會扣一次錢,卻會得到兩個辣條。利用burpsuite進行條件競爭:
這里多設置幾個線程:
點擊Option
點擊Start Attack
?
等待一段時間后,Forward
再次查看Info,發現買的數量明顯超過預期
但是這樣還不夠,發現辣條之王有填寫兌換數,嘗試整數溢出
下面考慮溢出:
int: 2**32-1 = 4294967295
long: 2**63 -1 = 9223372036854775807
longlong: 2**64-1 = 18446744073709551615
但是要注意一點,這個題的邏輯是,numer*5<最大值
所以,其臨界值應該為18446744073709551615 / 5 == 3689348814741910323
于是嘗試3689348814741910323+1 == 3689348814741910324
溢出后的值比較小,在辣條的數量之內,從而兌換成功。
因為最長為longlong,即存在2^64,又因為5包大辣條換一包辣條之王,故最多可換3689348814741910323包辣條之王,溢出再加一包,即為3689348814741910324包,輸入后溢出,成功獲得足夠數量的Flag
點擊兌換,得到flag
轉載于:https://www.cnblogs.com/qq3285862072/p/9785643.html
總結
- 上一篇: 软件研发成本估算过程之估算软件规模概述
- 下一篇: vertex 3.0 与SpringBo