0
点赞
收藏
分享

微信扫一扫

buuctf初学者学习记录--[极客大挑战 2019]BuyFlag

古月无语 2022-02-07 阅读 58

web第20题
[极客大挑战 2019]BuyFlag

打开靶场
在这里插入图片描述
无明显线索,直接审计源码
在这里插入图片描述
此处看到2个可疑页面
访问index.php就是主页面
访问pay.php
在这里插入图片描述
有一些提示,flag需要的金额,用户必须是cuit学生,密码必须正确,查看源码,在最后发现了这个
在这里插入图片描述
意思就是post提交一个password字段,然后判断是不是数字,如果不是就提示错误,然后判断是不是404,是就正确,那么应该是要进行绕过
先抓包观察
在这里插入图片描述
cookie中有user字段,发送到repeater模块进行修改观察返回,根据上方的提示,将user改为1(因为一般用户对应的字段不为0)进行尝试
在这里插入图片描述
得到提示,需要输入密码,再结合一开始的提示,需要money字段,值为100000000
直接在后面添加password字段,并且值要为404,且要绕过is_numeric检查
在这之前要注意一个问题,我们抓的包是GET方式,要将其修改为POST,并加上Content-type: application/x-www-form-urlencoded才会生效
先添加password字段
在这里插入图片描述
明显直接使用数字不行,要绕过is_numeric检查:php is_numeric绕过
这里使用%00绕过
在这里插入图片描述
成功绕过,然后添加money字段
在这里插入图片描述
提示数字的长度过长,使用科学计数法
在这里插入图片描述
得到flag

对于money字段,看了网上的wp,还有另外一种解法,由于判断了字符的长度,猜测使用了strcmp函数,可以利用此函数的漏洞:php strcmp()漏洞
使用数组进行绕过
在这里插入图片描述

举报

相关推荐

0 条评论