标签:lin alt 信息 浏览器 ges hint ado 包含 函数
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!
标签:lin alt 信息 浏览器 ges hint ado 包含 函数
原文地址:http://www.cnblogs.com/ECJTUACM-873284962/p/7857678.html