[极客大挑战 2019]BuyFlag

[极客大挑战 2019]BuyFlag#

在页面中找到了 buyflag 的菜单,点进去,给了一部分的提示。

image-20220511102100081

image-20220511102322500

image-20220511102119553

根据上面给出的提示,想要获得 flag 需要使用 post 方法提交 money 和 password 参数,而且需要是 Cuit 的学生才行。两个参数容易提交,但是这个Cuit的学生怎么判断呢,实在想不出来就抓下包,就有发现了。

image-20220511102557864

这里的 cookie 字段有个 user 的值,猜测这里就是需要修改的地方了,虽然不知道修改成啥,但是肯定不是0,因为如果是0就不对了。

image-20220511102742995

随便修改个值,user=1 ,测试了下,user这里只能等于1,其他的也都是错误。

image-20220511102827694

cuit 的学生限制做好了,下一步就是绕过校验代码

	~~~post money and password~~~
if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {		# 判断是不是数字或数字型字符串,123、'123'
		echo "password can't be number</br>";
	}elseif ($password == 404) {		# 判断是不是等于 404
		echo "Password Right!</br>";
	}
}

上面的 php比较使用的 == 可以利用php弱类型进行绕过。

image-20220511103210397

但是又发现虽然绕过比较,但还有长度限制,可能是对 money 参数的限制(看到有大佬说是 strcmp() 函数,可以用 money[]=1 绕过),毕竟 password 才四位,使用科学计数法绕过 1000000000 = 10e8

image-20220511103806319

参考文章:

菜鸟教程

[大佬文章](

作者:knsec

出处:https://www.cnblogs.com/knsec-cnblogs/p/16582245.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

备注:你可以在这里自定义其他内容,支持 HTML

posted @ 2022-08-13 10:38  knsec  阅读(87)  评论(0)    收藏  举报
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示