做交通事故的网站,wordpress中文分享插件下载,广西建设网官网在线服务,ai软件下载打开题目就一句话#xff1a;尝试找到源文件
和上一题一样#xff0c;用dirsearch扫描网站找到了一下内容 flag.php#xff0c;0B#xff0c;虚假flag
瞅一眼index.php.bak是啥 下载了一个文件#xff0c;把bak后缀删掉#xff0c;打开了index.php源码 is_numeric()尝试找到源文件
和上一题一样用dirsearch扫描网站找到了一下内容 flag.php0B虚假flag
瞅一眼index.php.bak是啥 下载了一个文件把bak后缀删掉打开了index.php源码 is_numeric() 检查变量是否为数值 is_numeric()函数用于检查一个变量是否为数值并返回一个布尔值即true(1)或者false(空)。 is_numeric()函数可以检测一个变量是否为数值。它接受一个参数即要检查的变量可以是一个整数、浮点数、甚至是一个数值字符串。如果变量是数值则返回true否则返回false。 intval() 函数用于获取变量的整数值。 intval() 函数通过使用指定的进制 base 转换默认是十进制返回变量 var 的 integer 数值。 intval() 不能用于 object否则会产生 E_NOTICE 错误并返回 1。 成功时返回 var 的 integer 值失败时返回 0。 空的 array 返回 0非空的 array 返回 1。 最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。64 位系统上最大带符号的 integer 值是 9223372036854775807。 字符串有可能返回 0虽然取决于字符串最左侧的字符。 当数字与字符串作比较时系统会先将字符串转化为数字再与数字进行比较。 数字和字符串进行比较时当这个字符串是一个无法转换为数字的字符串它就会被强制转化为数字结果总是为0 依据上述理论会出现四种情况
1.数字字符(字符串) 2.字符(字符串)数字 3.数字字符(字符串)数字 4.字符(字符串)数字字符(字符串) 由以上实践可得出$a与$b比较$b中含有数字和字符截取到第一次出现字符$b中第一次出现字符前的数字与$a比较。 ?php
include_once flag.php;if(isset($_GET[key])) {//从用户输入获取key$key $_GET[key];//将获取的用户输入付给变量$keyif(!is_numeric($key)) {//判断$key是否是数值exit(Just num!);//不是数值输出Just num!}$key intval($key);//获取$key的整数值再赋值给$key$str 123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3;if($key $str) {//判断$key是否与$str相等echo $flag;//相等输出flag}
}
else {echo Try to find out source file!;用户没有输入输出Try to find out source file
}
//输入错误数值的情况未说明
所以我们让key123就可以输出flag 再验证一下刚刚代码分析的对不对