BUU WEB [极客大挑战 2019]BuyFlag

拿到题,一共有两个页面,一个Home,一个Payflag,很明显,flag实在第二个页面里得到的。
在这里插入图片描述

得到提示,需要有这么多钱还需要有密码,还必须是cuit的学生。除此之外,并没有告诉我们要如何去买flag。照例查看源代码,可以在最后发现一段提示代码:
在这里插入图片描述
按照这个的要求,我们需要用post传参传入money和密码,钱的值我们知道,且密码不能是数字或数字字符串。我们可以发现,这个等于的判断时弱等于,所以密码传入404x即可,使用hackbar传参可以解决这个问题,但是我们还必须是cuit的学生,没有头绪。
那就接着常规第二步:抓包查看线索:
在这里插入图片描述
既然是要求我们的身份,那我们知道,http头部里,代表身份的,在这个包里只有Cookie一个,而且看到,现在这个cookie是user=0,0为false,1为true,不管对不对我们先试一下:
在这里插入图片描述
提示变了!看来们是正确的,接下来就是密码了,post传参密码为404a (记得改包)
在这里插入图片描述
接下来就是掏钱去买flag了:
在这里插入图片描述
嗯???太长?!那就换一种短的计数法,科学计数法来传(16进制会显示钱不够…):
在这里插入图片描述
得到flag,这里每传一次参都要改一下包,嫌麻烦的话可以直接在重发器上改包,不用反复抓包改包。

另外我们也可以利用strcmp和is_numeric函数的漏洞来解,
即strcmp
在这里插入图片描述
实际上,当这个函数接受到了非字符串类型的参数,这个函数将发生错误,在5.3之前的php版本中,虽然显示了报错的警告信息,但仍将返回0。

is_numeric函数对前后有空字符%00的和最后有空格字符%20空格字符的参数都判断为非数字或数字字符串。

详细请参照大佬:
https://www.cnblogs.com/wangtanzhi/p/12238883.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值