打开环境就一句话

找出源文件!
结合题目名字: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
ey的值123,就能得到flag

















![[Java恶补day13] 53. 最大子数组和](https://i-blog.csdnimg.cn/direct/daf659febd1b490eb0bff3ad562b38ac.png)

