一:Lottery
打开后发现这个靶场加载异常缓慢,然后提供了源码。我们先不看源码先熟悉一下这个网站是什么。
这应该是一个类似猜数字游戏,选对 7 个号码即可得到相应奖励。
随便输入 7 个数字发现一个也没中,白费 2 元。
尝试点击网站功能发现如果想要 flag 需要有相对应的余额。
思路是利用抓包看看能不能修改我们的余额。
好像成功了,但刷新后页面上的数字变回原来的余额,说明不能直接修改余额。
查看猜数字页面的 API 代码审计,核心代码如下:
//部分代码
function random_num(){
do { $byte = openssl_random_pseudo_bytes(10, $cstrong); $num = ord($byte); } while ($num >= 250);
if(!$cstrong){ response_error('server need be checked, tell admin'); }
$num /= 25; return strval(floor($num));
}
function random_win_nums(){
$result = ''; for($i=0; $i<7; $i++){ $result .= random_num(); } return $result;
}
function buy($req){
(); ();
= [];
= [];
= ();
= ;
(=; <; ++){
([] == []){ ++; }
}
() {
: = ; ;
: = ; ;
: = ; ;
: = ; ;
: = ; ;
: = ; ;
: = ; ;
}
+= - ;
[] = ;
([=>,=>, =>, =>, =>]);
}


