今天在ctf-show里面完成了web萌新1,对php intval()函数有了一些了解。

首先先看题目,直接给出了源码

里面运用到了intval函数,对此特别进行学习! 

(部分内容来自PHP intval() 函数 | 菜鸟教程)

intval函数主要是用于获取变量的整数值。

同时此函数也通过使用指定的进制base进制(默认是十进制),返回变量var的integer数值。

        从源码上可以看出,我们需要输入id,同时这个id要等于1000才能显示出源码。但是当id大于999时就会出现错误,那么我们就要想办法绕过intval函数

方法一:使用单引号绕过 

        /?id='1000'或者/?id=“1000”

方法二:字符串绕过

        /?id=2 or id=1000  或者是/?id=2 || id=1000

原理说明:intval函数特性是遇到字符串时,会从字符串的开始进行转换,直到遇到非数字字符。此处的字符串是“2 or id=1000”

方法三:用非10进制代替1000

        使用二进制:0b1111101000

        使用十六进制:0x38e

方法四:两次取反

        /?id=~~1000

方法五:算数绕过

        相乘或相除:/?id=100*10 或 /?id=500/(0.5)

更多推荐

22.2.26学习日记:php intval( )函数