你真的会PHP吗(ctf writeup)

#你真的会PHP吗

-一进页面,就是have fun,没什么实质性的内容,但有标题可以知道这是一道与PHP审计有关的题目。

-查看网页源代码,检查发现有一个hint,,暗示,应该就是我们解题的入手点吧

访问一下,果然hint里面有提示信息,让我们来看一下

![](http://ctf5.shiyanbar.com/web/PHP/6c525af4059b4fe7d8c33a.txt)

-可以看出需要我们给出一个数字,需要满足下面三个条件,,(这里有好多不认识的,百度百度再百度,,,)

1.不为空,且不能是一个数值型数字,包括小数。(由is_numeric函数判断) 

2.不能是一个回文数。(is_palindrome_number判断) 

3.该数的反转的整数值应该和它本身的整数值相等。即:

intval($req["number"])=intval(strrev($req["number"]))

-第二个条件与第三个条件看起来不可能同时成立

-第一个条件可以用%00空字符绕过检验

以下有两种方法

-1.利用intival 函数绕过

由上面知道是32位系统,由其的取值范围,我们使用-2147483648造成溢出,绕过

32位系统

-2.科学计数法构造number=0e-0%00

-感觉很难啊,参看了很多大神写的writeup,极其感谢白大神的友情帮助

你可能感兴趣的:(你真的会PHP吗(ctf writeup))