攻防世界-web-lottery

题目描述:里面有个附件,是网站的源代码,还有一个链接,是线上的网站

主页告诉了我们规则:

1. 每个人的初始金额为20美元

2. 一支彩票2美元,挑选7个数字,根据匹配上的数字有不同的奖励

我们先体验下,注册一个账号111

 然后买彩票,随便填一组数字(果然没中奖)

1. 思路分析

既然有源代码,我们先看看代码,进行分析

这一段代码说明我们必须得有足够的money才能获取flag,也就是说我们必须要中奖,接下来我们看下中奖的条件

这里说明有几个条件的限制:

1.1 用户必须注册

1.2 本钱最少为2美元

1.3 我们选择的7个数字要和随机生成的7个数字一样

这里其实我首先考虑的是是否能通过爆破的方式解决,因为7位数的量级也不是很大,但是这里有一点是本钱的限制,20美元最多买10次,所以这种方式实际不太可行。

那还有什么方法呢,注意看这里进行比较的时候是弱类型比较,而且并没有限制我们传入的必须是数字,那么我们可以利用这一点保证每次一定中奖

2. 解题过程

根据以上分析,构造请求如下

 money传入一个数组,数组中7个元素,每个元素值为true,那么就一定能中奖。

重复多次就可以了,获取足够的金额后,使用如下接口获取flag

最终flag为:cyberpeace{3244ec3b1c11b1b4314c9e08a6620abd}

总结:这道题不难。考察的就是弱类型比较,但是可能干扰信息比较多,排除干扰信息,找出关键点后很容易解决

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值