攻防世界-lottery-(详细操作)做题笔记

菜鸟新手,如果有不对到地方,还请大佬指正。下面开始正式做题目:

 进入题目以后发现这是一个彩票平台

先丢进御剑里面看看能不能扫描出东西来:

基本没有扫描出来有用到东西,再用 acunetix扫描

也没有扫描出有用到漏洞, 还是乖乖到熟悉一下页面到逻辑,这是一个彩票网站,需要我们注册一个账号,然后我们输入七位数字与系统产生的七位数字对比,七位数字都相同我们才可以获得最高奖励,然后才有钱去购买flag

我们查看一下burpsuite的Target模块的Site map查看截取到数据包

可以观察到只有api.php是对文件进行POST发送,所以有可能彩票七位数的对应就是api.php文件中,我们从下载到附件中找到我们需要到api.php

function buy($req){
	require_registered();
	require_min_money(2);

	$money = $_SESSION['money']; #存储money
	$numbers = $req['numbers'];
	$win_numbers = random_win_nums();
	$same_count = 0;
	for($i=0; $i<7; $i++){
		if($numbers[$i] == $win_numbers[$i]){ #如果传入到numbers==系统生成到win_numbers那么same_count加一
			$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]);
}

存储 Session 变量

存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:

这里到关键函数是 if($numbers[$i] == $win_numbers[$i]){$same_count++;} 这里就是函数到关键地方,当传入到numbers等于系统自动生成到参数,same_count加一,但是重点是这里并没有对传入到参数进行限制,而且这里的用的是"=="弱相等而不是"==="强相等,

===比较两个变量的值和类型;==比较两个变量的值,不比较数据类型。

在php中,如果bool和"任何其他类型"比较,"任何其他类型"会转换为bool。


在PHP中当转换为 boolean 时,以下值被认为是 FALSE :
(1) 布尔值 FALSE 本身
(2) 整型值 0(零)
(3)浮点型值 0.0(零)
(4)空字符串,以及字符串 “0”
(5)不包括任何元素的数组(注意,一旦包含元素,就算包含的元素只是一个空数组,也是true)
(6)不包括任何成员变量的对象(仅 PHP 4.0 适用)
(7)特殊类型 NULL(包括尚未赋值的变量)
(8)从空标记生成的 SimpleXML 对象
(9)所有其它值包括-1都被认为是 TRUE (包括任何资源)
 

 当直接传入到字符串为ture时,等号"=="另一边到数字等于true成立

 所以我们只要用burpsuite截取发送的number并将其修改成{"action":"buy","numbers":[true,true,true,true,true,true,true]}就可以赚取住够的钱购买flag

flag: cyberpeace{ce3ebbea04264c079a105c5c12882d4f}

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
攻防世界中,"get_post" 是一个目,要求学习如何使用GET和POST请求来传递参数。在这个目中,首先让我们使用GET方式传递一个名为a,值为1的变量。我们只需要在URL窗口输入"/?a=1"并回车即可。接下来,又让我们使用POST方式传递一个名为b,值为2的变量。我们可以使用一些工具来执行这个操作,比如Max Hackbar(Hackbar的替代品)。在Max Hackbar中,我们将目的地址粘贴到第一个窗口中,在下方窗口中输入"b=2",然后点击"Execution"按钮,即可得到flag。此外,我们也可以使用Python编程代码来发送POST请求,准备要提交的数据并发送请求,然后处理响应并打印出来。以上就是攻防世界中关于"get_post"目的解答方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C#winform工具模拟getpost请求,app防攻击加密源码](https://download.csdn.net/download/xiaogxiao/9638711)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [攻防世界:get_post](https://blog.csdn.net/qq_57061511/article/details/117886323)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【攻防世界】get_post](https://blog.csdn.net/m0_74979597/article/details/131676045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值