之前做过,回顾
12,攻防世界simple_php-CSDN博客
进入靶场
<?php
// 显示当前 PHP 文件的源代码,方便调试或查看代码结构
// __FILE__ 是 PHP 的一个魔术常量,代表当前文件的完整路径和文件名
show_source(__FILE__);
// 包含名为 "config.php" 的外部文件
// 通常 "config.php" 文件会包含一些配置信息,如数据库连接信息、常量定义等
include("config.php");
// 通过 $_GET 超全局数组获取用户通过 GET 请求传递的参数 'a' 的值
// 使用 @ 符号来抑制可能出现的错误信息,当 'a' 参数不存在时,不会抛出警告
$a = @$_GET['a'];
// 通过 $_GET 超全局数组获取用户通过 GET 请求传递的参数 'b' 的值
// 同样使用 @ 符号来抑制可能出现的错误信息,当 'b' 参数不存在时,不会抛出警告
$b = @$_GET['b'];
// 第一个条件判断
// $a == 0 会进行弱类型比较,判断 $a 的值是否等于 0
// $a 作为布尔值判断,若 $a 为真(非空、非 0、非 false 等)则满足条件
// 只有当两个条件同时满足时,才会执行下面的代码块
if ($a == 0 and $a) {
// 如果满足上述条件,输出在 "config.php" 文件中定义的 $flag1 变量的值
echo $flag1;
}
// 第二个条件判断
// is_numeric() 函数用于检查变量 $b 是否为数字或者可转换为数字的字符串
// 如果 $b 是数字或可转换为数字的字符串,就执行 exit() 函数终止脚本的执行
if (is_numeric($b)) {
exit();
}
// 第三个条件判断
// 当 $b 不是数字或不可转换为数字的字符串时,会进行此比较
// 这里会将 $b 尝试转换为数字进行比较,如果 $b 转换后的数字大于 1234
// 则执行下面的代码块
if ($b > 1234) {
// 如果满足条件,输出在 "config.php" 文件中定义的 $flag2 变量的值
echo $flag2;
}
?>
a=a或a==0都可
b由大于1234的数字和字母组成即可
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}