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!

我们打开解题链接,界面如下:

CTF—Web入门第十题 Once More-编程知识网

这题要你输入password,我们可以先试试,123看看对不対,显然,肯定不对,我们该怎么办呢?我们看到这个页面可以看到源码,我们点击view the source code,我们看到了一些比较有意思的东西,首先是ereg函数,这个函数有个漏洞,等下我们就会说到!

下面先让我们理一理这个password的条件吧!

首先是输入的字符在a~z,A~Z,0~9之间,也只属于这个条件里,其次密码长度要小于8,值要大于9999999,这不很矛盾嘛?中学的时候我们有学过科学记数法,这题用科学记数法表示不就解决了问题嘛?我们再看下一个条件,密码一定要包含*-*,这个条件似乎和第一个条件冲突了啊,那这题就没法做了?

刚才我们提到了ereg函数,这个函数有个很大的毛病,可以截断,我们可以使用BP或者之前学到的00截断来进行操作,所以我们可以写出以下password:

9e9%00*-*

输入以后点击check,会提示这么一行信息。。。。

CTF—Web入门第十题 Once More-编程知识网

输入的密码不合法,然后我们可以看到这个网址password,传参数的时候%00自动改成了2500,这个也是浏览器的一个漏洞,我们只需要在网址上进行修改就行了!

CTF—Web入门第十题 Once More-编程知识网

这样就得到了Flag!

CTF—Web入门第十题 Once More-编程知识网

 

转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/7857678.html