•   站长QQ3308757747
  •   官方Q群:1057658362

记一次简单的代码审计

摘要: 题目附件里有源码,这个函数是判断输入数字与系统所取随随机数是否相同function buy($req){require_registered();require_min_money(...

题目附件里有源码,这个函数是判断输入数字与系统所取随随机数是否相同

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++;
}
}
switch ($same_count) {
case 2:
$prize = 5;
break;
case 3:
$prize = 20;
break;
case 4:
$prize = 300;
break;
case 5:
$prize = 1800;
break;
case 6:
$prize = 200000;
break;
case 7:
$prize = 5000000;
break;
default:
$prize = 0;
break;
}
$money += $prize - 2;
$_SESSION['money'] = $money;
response(['status'=>'ok','numbers'=>$numbers, 'win_numbers'=>$win_numbers, 'money'=>$money, 'prize'=>$prize]);
}

php是弱类型语言,所以我们可以利用true和任何!0整数满足==来保证我们每次都中奖,然后就可以去买flag

用burpsuite抓包,然后把number改成[true,true,true,true,true,true,true]然后用intruder提交包

然后钱够了就去买flag 

本文链接:http://www.my-index.cn/?id=45

版权声明:转载请注明转自“my-index.cn”

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

歌曲 - 歌手
0:00