打开网站:
右上角有个菜单 (menu) ,先点一下,然后就进入了 pay.php 页面。
其中关键信息如下:
## Flag
Flag need your 100000000 money
### attention
If you want to buy the FLAG:
You must be a student from CUIT!!!
You must be answer the correct password!!!
------
Only Cuit's students can buy the FLAG
一眼就觉得是要抓包改包,考的是 http 。
money 要大于 100000000 ,身份要是 student,要来自 CUIT,要输入正确的密码。感觉还是少了点什么东西,对了,一定要记得查看源码:
这里暴露出的信息有:通过 POST 方式传参 money 和 password 。然后会对 password 参数值做一个过滤:
不能是数字,但是要通过弱比较
$password == 404
php 在进行字符串与数字弱比较时,会强制把字符串转换为数字,而转换时会截取到第一个不是数字的字符前。
所以可以传入 password=404a 。
到这里信息就差不多了,抓个包看看:
1.将 GET 方式改成 POST 方式,只需要 burp 右键,选中 Change request method
标签即可。
2.添加 post 请求体的参数:
接下来看看,要是学生,我的第一想法是把 Cookie
中的键值对改成 user=student
,但是不成功,看了别人的 wp 才知道,这里要改成:user=1
,因为原来的 0 代表不是学生,1 代表是咯。
原来的 from CUIT 我以为是修改 referer
请求头,但是将 user 的 0 改成 1 以后不用修改也能过:
所以目前构造出了这样的 http 请求包:
返回包中提示数字太长。可以使用科学记数法。
1亿 = 1e8
,但是输入 money=1e8
会提示钱不够,明明够了,那我只好写 1e100 了: