打开环境就一句话

找出源文件!
结合题目名字:BackupFile
先用dirsearct扫描网站文件

发现一个index.php.bak ,拼接url下载
打开发现php代码
<?php
include_once "flag.php";if(isset($_GET['key'])) {$key = $_GET['key'];if(!is_numeric($key)) {exit("Just num!");}$key = intval($key);$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";if($key == $str) {echo $flag;}
}
else {echo "Try to find out source file!";
}
1.if(isset($_GET['key'])) { ... }
-
作用:检查 URL 中是否有
key参数(例如?key=123)。 -
$_GET['key']:获取用户通过GET方法传递的key参数值。 -
isset():检查变量是否已设置且非null。
2. if(!is_numeric($key)) { exit("Just num!"); }
-
作用:检查
$key是否是数字或数字字符串(如"123"、42),如果不是,则终止脚本并输出"Just num!"。 -
is_numeric():判断变量是否为数字或数字字符串(允许"123"、"0xFF"、"1e3"等形式)。?key=123a会被is_numeric()拒绝,因为is_numeric()不允许字符串中包含非数字字符(除了科学计数法"1e3"或十六进制"0xFF"等特殊情况)。
示例:
-
?key=123→ 通过 -
?key=abc→ 输出"Just num!"并终止
3.$key = intval($key);
-
作用:将
$key强制转换为整数(丢弃非数字部分)。 -
intval():-
"123"→123 -
"123abc"→123 -
"abc123"→0
-
示例:
-
?key=123abc→$key = 123 -
?key=abc123→$key = 0
4. $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
-
作用:定义一个字符串变量
$str,用于后续比较。
5.. if($key == $str) { echo $flag; }
-
作用:如果
$key和$str弱类型相等(==),则输出$flag。
= = 为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行= =比较时。则b只会截取前面的整数部分。即b转化成123。
也就是说key等于123就会==str
输入的k
ey的值123,就能得到flag