WEB:lottery

背景知识

        dirsearch扫描

题目

WEB:lottery_第1张图片

WEB:lottery_第2张图片

WEB:lottery_第3张图片

 

 

原题目应该使用dirsearch扫描发现git泄露然后使用Githack复原的但是攻防世界这边直接把源码给了我们

下载附件可得到

WEB:lottery_第4张图片

打开文件后进行代码审计

 

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]);
}

其中win_numbers中的数字是随机生成0-6的数字,然后和用户输入的数字进行比较如果达到几个相同就返回对应的奖金给他,这里可以使用php弱类型比较当true和一个数字或一个字母比较的时候永远返回true

使用bp修改post参数购买flag

把post数据修改为

{"action":"buy","numbers":[true,true,true,true,true,true,true]}

 多发送几次

WEB:lottery_第5张图片

WEB:lottery_第6张图片

得到flag

参考学习链接:

【愚公系列】2023年05月 攻防世界-Web(lottery)_攻防世界lottery_愚公搬代码的博客-CSDN博客 攻防世界 Lottery web进阶高手区 详解

你可能感兴趣的:(攻防世界,网络安全)