【极客大挑战 2019】BuyFlag

弱比较,绕过strcmp函数,cookie传参

【极客大挑战 2019】BuyFlag_第1张图片
直接F12看一下源码,这里给出了提示
【极客大挑战 2019】BuyFlag_第2张图片
is_numeric:用来判断是否为数字或数字字符串(‘40412312’)
提示我们需要传入money和password,目前给出了password的相关信息。
【极客大挑战 2019】BuyFlag_第3张图片
money的信息给出了提示money=100000000

通过分析,我们看见了password == 404 ,并且有is_numeric来判断password是否为数字或数字字符串
导致我们给password传入的参数只能为字符串类型的。但是通过上一道题目我们了解到 == 存在一个弱比较的
$password = 404aaa == 404 (ture)。
将两个参数以post传入进去password=404aaa&money=100000000
【极客大挑战 2019】BuyFlag_第4张图片
说我们不是CUIT,就是说我们需要变成这个CUIT。这里我就想到了cookie
这里Cookie:user=0 我随便给改成了1
【极客大挑战 2019】BuyFlag_第5张图片
【极客大挑战 2019】BuyFlag_第6张图片
传入password=404aa&money=100000000,提示money这个参数过长。
【极客大挑战 2019】BuyFlag_第7张图片
这里用到了
strcmp(string1,string2) :
如果 string1 小于 string2 返回 -1;如果 string1 大于 string2 返回 1;如果两者相等,返回 0。
查阅php手册,这三种方法应该是都行
【极客大挑战 2019】BuyFlag_第8张图片

使用new stdClass提示too long // stdClass 是具有动态属性的通用空类。
使用function()提示too long
这里只能使用数组进行干扰绕过money[]=1
【极客大挑战 2019】BuyFlag_第9张图片

你可能感兴趣的:(BUUCTF,前端,php,服务器)