Once More分值:10
- 来源: iFurySt
- 难度:易
- 参与人数:4782人
- Get Flag:2123人
- 答题人数:2166人
- 解题通过率:98%
啊拉?又是php审计。已经想吐了。
hint:ereg()函数有漏洞哩;从小老师就说要用科学的方法来算数。
格式:CTF{}
解题链接: http://ctf5.shiyanbar.com/web/more.php
原题链接:http://www.shiyanbar.com/ctf/1805
【解题报告】
这是我入门Web开始写的第十道题,一眼看过去,这是一道php代码审计的题目,代码审计其实还挺好玩的,能够学到很多东西QAQ!
我们打开解题链接,界面如下:
这题要你输入password,我们可以先试试,123看看对不対,显然,肯定不对,我们该怎么办呢?我们看到这个页面可以看到源码,我们点击view the source code,我们看到了一些比较有意思的东西,首先是ereg函数,这个函数有个漏洞,等下我们就会说到!
下面先让我们理一理这个password的条件吧!
首先是输入的字符在a~z,A~Z,0~9之间,也只属于这个条件里,其次密码长度要小于8,值要大于9999999,这不很矛盾嘛?中学的时候我们有学过科学记数法,这题用科学记数法表示不就解决了问题嘛?我们再看下一个条件,密码一定要包含*-*,这个条件似乎和第一个条件冲突了啊,那这题就没法做了?
刚才我们提到了ereg函数,这个函数有个很大的毛病,可以截断,我们可以使用BP或者之前学到的00截断来进行操作,所以我们可以写出以下password:
9e9%00*-*
输入以后点击check,会提示这么一行信息。。。。
输入的密码不合法,然后我们可以看到这个网址password,传参数的时候%00自动改成了2500,这个也是浏览器的一个漏洞,我们只需要在网址上进行修改就行了!
这样就得到了Flag!
转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/7857678.html