buuctf-[极客大挑战 2019]BuyFlag(小宇特详解)

buuctf-[极客大挑战 2019]BuyFlag(小宇特详解)

这里打开之后是一个网站没有注入点,这里抓包看一下有哪些目录

这里会发现一个pay.php文件访问一下

这里说flag需要100000000money

查看一下源码

<!--
	~~~post money and password~~~
if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {
		echo "password can't be number</br>";
	}elseif ($password == 404) {
		echo "Password Right!</br>";
	}
}
-->

这里有一个被注释的代码

这里是POST方式来进行传参password,然后用is_numeric来判断是否是数字,这里要求password不能是数字,但是当password是404的时候password正确。

这里由于password404使用的是是一种弱比较,在404后面加上东西比如404XX==404,404XX会自动变成int型。

这里考虑如何绕过数字验证

这里绕过is_numeric的检测方法有两种

1.对于%00无论是%00放在前后都可以判断为非数值.

2.%20空格字符只能放在数值后面。

也可以用

?what=1' 
?what=1,
?what=1%00

这里直接抓包,放到重放器中。

修改GET为POST,这里的cookie是user=0,这里要改为1,因为0一般是FALSE的意思。然后在body中写

password=404%20&money=100000000

然后会提醒你长度太长

这里一种方法是利用科学计数法

1.money=1e8

第二种办法就是使用strcmp函数特性

2.money[]=100000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宇特详解

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值