当前位置:首页 > CTF > BUU > 正文内容

BUUCTF_WEB_[极客大挑战 2019]BuyFlag 1

七星2年前 (2022-07-03)BUU1035

开题目,是个网站:

钱数大于这么多,才给flag,页面啥也没有,常规f12,然后发现了一串代码:

说需要post传入两个参数,钱和密码,这一段代码就是做了一个密码验证。

第一步,isset()判断post是否传了password

然后把传进来的password保存成变量,接着看下面的判断:

is_numeric()这个函数是判断这个变量是不是数字(包括小数,以及数字字符串),如果是数字,返回TRUE,否则返回FALSEL

这里判断说,如果是数字,则返回那句话,就是密码不能为数字。

如果不是数字,则再判断这个密码是不是等于404。

如果是404,则密码正确。

emm....有点自相矛盾的感觉,

大概捋一下,就是,密码不能为数字,然后密码必须为404才正确。

这里需要利用一个绕过,%20是空格,但是is_numerice()会把它解析成字符串

就是说,把密码传成 404%20 这样,就可以成功绕过第一个is_numerice()函数,

来到第二个弱判断,弱类型判断,%20直接被解析成了空格。

最终,payload如下:

但是出来了个提示:

只有Cuit的学生才能购买flag?

这是个啥?查了一下:

这这这

还是回到请求包:

这里有个cookie,常规思路,0改1:

成了,但是说,数字长度太长了,应该是这个钱,太大了,最开始是想直接数组绕过试试看,结果成了:

嘶~这这这

最后看了别的大神wp才知道,这里判断钱是否等于这么多,使用的是strcmp()函数,所以:

这里使用数组,就会直接返回0,返回0就是钱数相等了,所以就成了。


后来看了大神的博客,可以用科学计数法,试试看:

成了。

这里有个知识点:

php中,1e1 == 10**1, 1e2 == 10**2

七星比特|qixingbit.com

相关文章

BUUCTF_web_第一题: [HCTF 2018]WarmUp

BUUCTF_web_第一题: [HCTF 2018]WarmUp

第一题: [HCTF 2018]WarmUp f12, 注释里有个文件, 访问, 成功获得审计代码. 审计代码里有个hint.php, 打开, 成功获得ffffllllaaaagggg,...

BUUCTF_web_第二题:[强网杯 2019]随便注

BUUCTF_web_第二题:[强网杯 2019]随便注

第二题: [强网杯 2019]随便注 测试一下, 1'# 返回正常, 发现是字符注入,尝试show一下database: 1';show databases;%23 发现出结果了:...

BUUCTF_web_第五题:[SUCTF 2019]EasySQL

BUUCTF_web_第五题:[SUCTF 2019]EasySQL

[SUCTF 2019]EasySQL打开题目,发现一个搜索框,尝试发现是堆叠注入,先查一下数据库:1;show databases;得到:Array ( [0] => 1 )Array ( [...

BUUCTF_web_第六题:[ACTF2020 新生赛]Include

BUUCTF_web_第六题:[ACTF2020 新生赛]Include

发现是一道include的题, 啥提示也没有,点一下给个tips, 获取到一个?file=flag.php很自然想到了include可以把文件base64再读取文件:/?file=php:/...

BUUCTF_web_第七题:[极客大挑战 2019]Secret File

BUUCTF_web_第七题:[极客大挑战 2019]Secret File

f12, 获得Archive_room.php访问, 嗯, 他说什么什么快没看清, 不要紧, 我们可以让他慢下来开burpsuite, 抓取回显包, 得到secr3t.php访问,成功获得源码high...

BUUCTF_web_第八题:[极客大挑战 2019]LoveSQL

BUUCTF_web_第八题:[极客大挑战 2019]LoveSQL

打开之后, 和之前的类似, 万能密码 1' or 1=1#登录成功,给了一个admin和一串md5, md5解密失败.只能常规注入了.给了个灵魂试探:用 sqlmap 是没有灵魂的那就手工注入一下,巩...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。