lottery
開心!雖然第一次遇到git源碼泄露寫了好久,但是寫出來了就很開心~~
打開界面我們知道,要拿到flag,就要贏到足夠的錢,其實一開始我以爲可以找到一個地方直接修改餘額什麼的,把網頁源代碼中的文件看了幾個都沒發現突破口……
然後又沒思路了……
嘗試了一下robots.txt,想看看有沒有什麼文件,然後發現了:
瞬間振奮.jpg
百度了一下發現應該是git源碼泄露,下載了GitHack(下載地址)
然後用GitHack掃描url:
發現了api.php,這時候源碼已經下載下來了,打開api.php的源碼:
在買彩票這裏的函數:
其中 $numbers
來自用戶json
輸入 {"action":"buy","numbers":"1122334"}
,沒有檢查數據類型。 $win_numbers
是隨機生成的數字字符串。
使用 PHP 弱類型鬆散比較,以"1"
爲例,和TRUE
,1
,"1"
相等。 由於 json 支持布爾型數據,因此可以抓包改包,構造數據:
構造兩次錢就夠了(要注意當生成的win_number中不含0時纔會得5000000,構造兩次得的錢不夠的話再構造一次就好了)