5.攻防世界simple_php

打开题目页面如下

看到是PHP代码,进行代码审计

php 复制代码
<?php
// 显示当前 PHP 文件的源代码
show_source(__FILE__);
// 从 HTTP GET 请求中获取名为 'a' 的参数的值,并将其赋值给变量 $a。
// @ 符号是错误抑制符,它会抑制可能出现的未定义索引警告,即如果请求中没有 'a' 参数,不会显示警告信息
$a = @$_GET['a'];
// 从 HTTP GET 请求中获取名为 'b' 的参数的值,并将其赋值给变量 $b
// 同样,@ 符号用于抑制可能出现的未定义索引警告
$b = @$_GET['b'];
// 检查变量 $a 是否等于 0 并且 $a 的值在布尔上下文中被视为真。
// 在 PHP 中,一些值(如空字符串、0、空数组等)在布尔上下文中被视为假。
if ($a == 0 and $a) {
    // 如果条件满足,输出变量 $flag1 的值。
    // 这个变量应该是在 "config.php" 文件中定义的。
    echo $flag1;
}

// 检查变量 $b 是否为数字或可以转换为数字的字符串。
// is_numeric() 函数会返回 true 如果变量是数字或者是可以转换为数字的字符串。
if (is_numeric($b)) {
    // 如果 $b 是数字,终止当前脚本的执行。
    exit();
}

// 检查变量 $b 是否大于 1234。
if ($b > 1234) {
    // 如果条件满足,输出变量 $flag2 的值。
    // 这个变量也应该是在 "config.php" 文件中定义的。
    echo $flag2;
}
?>

条件 a == 0 and a:

在 PHP 中,a == 0 会检查 a 的值是否等于 0,而 a 在布尔上下文中会被转换为布尔值进行判断。要同时满足 a == 0 和 a 在布尔上下文中为真,这看起来是矛盾的,但由于 PHP 的弱类型特性,可以通过传入特定的值来绕过。可以传入 a=0e123,在 PHP 的弱类型比较中,0e123 会被当作科学计数法的数字,其值为 0,但在布尔上下文中,它被视为真,从而满足条件输出 flag1。
条件 is_numeric(b) 和 b > 1234:

is_numeric() 函数用于检查变量是否为数字或可转换为数字的字符串。然而,攻击者可以利用 PHP 的类型转换特性绕过这个检查。例如,传入 b=1235a,is_numeric('1235a') 会返回 false,因为它不是一个纯粹的数字,但在比较 b \> 1234 时,PHP 会尝试将 b 转换为数字进行比较,1235a 会被转换为 1235,从而满足 b \> 1234 的条件,输出 flag2。

方法一:

分别满足条件传参

可知利用get传参,令$a等于0

得到了一半的flag

Cyberpeace{647E37C7627CC3E401

再利用第二个条件构造$b

得到另一半flag 9EC69324F66C7C}

组合最终得到flagCyberpeace{647E37C7627CC3E4019EC69324F66C7C}

方法二:

满足全部条件一块得到全部flag

由于在 PHP 中,a == 0 会检查 a 的值是否等于 0,而 a 在布尔上下文中会被转换为布尔值进行判断。要同时满足 a == 0 和 $a 在布尔上下文中为真,这看起来是矛盾的,但由于 PHP 的弱类型特性,可以通过传入特定的值来绕过。可以传入 a=0abc

最终得到flag

相关推荐
齐齐大魔王2 小时前
Linux-网络编程实战
linux·运维·网络
智塑未来2 小时前
app应用怎么接入广告?标准流程与落地实操方案全解析
大数据·网络·人工智能
Sun@happy3 小时前
现代 Web 前端渗透——基础篇(1)
前端·web安全
wanhengidc3 小时前
私有云的作用都有哪些?
运维·服务器·网络·游戏·智能手机
CTO Plus技术服务中3 小时前
71款企业级自研产品,线上演示环境
网络
网教盟人才服务平台4 小时前
全国政务网络安全能力提升行动启动,筑牢政务数据安全防线
安全·web安全·政务
黎阳之光4 小时前
黎阳之光:以视频孪生重构智能监盘,为燃机打造新一代智慧电厂大脑
大数据·人工智能·算法·安全·数字孪生
汽车仪器仪表相关领域4 小时前
Kvaser Hybrid Pro 2xCAN/LIN 双通道可编程CAN/LIN通讯接口:一机双模可编程,汽车车身混合总线测试专用设备
人工智能·功能测试·安全·fpga开发·汽车·压力测试
Bruce_Liuxiaowei4 小时前
2026年5月第4周网络安全形势周报
网络·人工智能·安全·web安全·网络安全·系统安全
HMS工业网络4 小时前
边缘网关网络安全
网络·安全·web安全