news 2026/5/5 20:37:47

从Ping到Shell:手把手复现ACTF2020新生赛Exec 1靶场命令注入漏洞

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从Ping到Shell:手把手复现ACTF2020新生赛Exec 1靶场命令注入漏洞

从Ping到Shell:手把手复现ACTF2020新生赛Exec 1靶场命令注入漏洞

在网络安全领域,命令注入漏洞一直是Web应用安全中最基础也最危险的漏洞类型之一。今天,我们将通过复现ACTF2020新生赛中的Exec 1靶场,来深入理解这种漏洞的成因、利用方式以及防御思路。这个靶场非常适合刚接触CTF比赛或Web安全的新手,因为它展示了一个非常典型的命令注入场景——通过Ping功能实现系统命令执行。

我们将使用Docker在本地搭建这个靶场环境,从最基本的Ping测试开始,逐步探索如何利用命令分隔符突破限制,最终获取系统flag。整个过程会详细记录每个步骤的输入输出,并解释背后的原理,确保即使是完全没有经验的新手也能跟上节奏。

1. 环境准备与初步探测

首先,我们需要一个干净的测试环境。推荐使用Docker快速部署靶场:

docker pull vulhub/actf2020-exec1 docker run -d -p 8080:80 vulhub/actf2020-exec1

访问http://localhost:8080,你会看到一个简单的Ping测试页面。这个页面设计得非常简洁,只有一个输入框和一个提交按钮,看起来就像普通的网络工具。

初始测试步骤:

  1. 输入127.0.0.1并提交
  2. 观察返回结果是否包含Ping的响应
  3. 查看网页源代码寻找隐藏线索

注意:在实际CTF比赛中,查看网页源代码往往是第一步,开发者有时会在注释中留下提示。

通过初步测试,我们发现这个页面确实执行了Ping命令,并将结果返回给了用户。这看起来很正常,但问题在于——它是如何执行Ping命令的?

2. 理解命令注入漏洞原理

命令注入漏洞的核心在于用户输入被直接拼接到了系统命令中。在这个例子中,后端代码可能是这样的:

<?php $ip = $_GET['ip']; system("ping -c 3 " . $ip); ?>

这种直接将用户输入拼接到系统命令中的做法极其危险。攻击者可以通过精心构造输入,在原始命令后追加额外的系统命令。

常见的命令分隔符及其作用:

分隔符作用描述
;顺序执行多条命令
&&前命令成功则执行后命令
`
``
&后台执行命令
$()命令替换(现代shell)
`命令替换(传统方式)

3. 基础注入尝试

让我们从最简单的注入开始测试:

  1. 输入127.0.0.1; whoami
  2. 观察返回结果是否包含当前用户信息

如果注入成功,你会在Ping结果后面看到类似这样的输出:

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.034 ms www-data

这个www-data就是当前Web服务运行的用户身份,说明我们的命令注入成功了!

新手常见问题排查:

  • 如果没有任何额外输出,检查分隔符是否正确(尝试&&|
  • 确保没有输入多余的空格或特殊字符
  • 尝试不同的命令(如iduname -a

4. 进阶利用:获取系统信息

确认注入点有效后,我们可以进一步收集系统信息:

127.0.0.1; ls -la /

这个命令会列出根目录下的所有文件和目录。在CTF比赛中,flag文件通常位于根目录或特定目录下,名称可能包含"flag"字样。

关键信息收集命令:

  • uname -a- 查看系统内核信息
  • ls /- 列出根目录
  • find / -name "*flag*"- 搜索包含"flag"的文件
  • cat /etc/passwd- 查看系统用户列表

提示:在真实环境中,这些信息收集步骤对于后续渗透至关重要,但在CTF中通常是为了快速定位flag文件。

5. 读取flag文件

通过前面的信息收集,我们通常会发现flag文件位于/flag/var/www/html/flag.txt等位置。尝试读取:

127.0.0.1; cat /flag

但有时候,出题者会设置一些简单的过滤机制。如果cat被过滤了,可以尝试以下替代方法:

绕过简单过滤的技巧:

  • 使用tac代替cat(反向输出文件内容)
  • 使用morelessheadtail等命令
  • 使用通配符:cat /fl*
  • 使用变量拼接:a=c;b=at;$a$b /flag
  • 使用Base64编码输出:cat /flag | base64

在本次靶场中,最简单的cat /flag就能获取到flag内容。恭喜你,已经成功复现了这个命令注入漏洞!

6. 深入理解防御措施

作为负责任的网络安全学习者,我们不仅要会攻击,更要理解如何防御。针对命令注入漏洞,以下是一些有效的防护措施:

输入验证:

  • 白名单验证:只允许数字和点号(对于IP地址)
  • 正则表达式过滤:/^[0-9.]+$/

安全的API使用:

  • 使用escapeshellarg()escapeshellcmd()函数处理参数
  • 避免直接拼接命令,改用参数化调用

系统加固:

  • 限制Web服务器的执行权限
  • 使用chroot等隔离技术
  • 定期更新系统和应用补丁

7. 扩展练习与思考

为了加深理解,建议尝试以下扩展练习:

  1. 尝试使用不同的命令分隔符实现相同效果
  2. 编写一个简单的PHP脚本模拟这个漏洞,然后尝试修复它
  3. 研究其他类型的命令注入场景,如SQL注入、LDAP注入等
  4. 在Docker环境中搭建其他类似的漏洞靶场进行练习

命令注入漏洞虽然原理简单,但在实际应用中变化多端。通过这个靶场的练习,你应该已经掌握了最基本的识别和利用方法。记住,这些技术只能用于合法授权的测试,真正的黑客精神是建设而非破坏。

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

WeChatExporter终极指南:三步搞定微信聊天记录完整备份与查看

WeChatExporter终极指南&#xff1a;三步搞定微信聊天记录完整备份与查看 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 还在为丢失重要微信对话而烦恼吗&#xff1f;We…

作者头像 李华
网站建设 2026/4/15 21:01:05

3步实现FGO全自动游戏管理:重新定义手游助手的完整指南

3步实现FGO全自动游戏管理&#xff1a;重新定义手游助手的完整指南 【免费下载链接】FGO-py 自动爬塔! 自动每周任务! 全自动免配置跨平台的Fate/Grand Order助手.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下? 项目地址: https://gitcode.com/GitHub_Trending/fg/FGO-py…

作者头像 李华
网站建设 2026/4/15 20:59:48

【华为OD机试真题 新系统】974、任务编排系统 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

文章目录 一、题目 🎃题目描述 🎃输入输出 🎃样例1 🎃样例2 二、代码与思路参考 🎈C++语言思路 🎉C++代码 🎈Java语言思路 🎉Java代码 🎈Python语言思路 🎉Python代码 🎈C语言思路 🎉 C语言代码 🎈JS语言思路 🎉JS代码 作者:KJ.JK 订阅本专栏后即…

作者头像 李华
网站建设 2026/4/15 20:58:22

深入解析Dshot协议:从基础原理到实战应用

1. Dshot协议的前世今生 第一次接触Dshot协议是在2016年调试一台穿越机时&#xff0c;当时还在用传统的PWM信号控制电调&#xff0c;经常遇到信号抖动导致电机转速不稳的问题。直到发现这个数字协议&#xff0c;才真正体会到什么叫"降维打击"。 Dshot全称Digital S…

作者头像 李华
网站建设 2026/4/15 20:54:30

CD73(CD73)靶点深度解析:免疫代谢关键酶机制与抗体药物研发进展

在生物医药与免疫治疗领域&#xff0c;靶点的分子机制解析是药物设计的基石。CD73&#xff08;分化簇73&#xff09;作为胞外-5′-核苷酸酶&#xff0c;是催化腺苷生成的关键限速酶。其介导的CD39-CD73-A₂AR信号轴&#xff0c;连接了细胞代谢与免疫调控&#xff0c;是当前免疫…

作者头像 李华
网站建设 2026/4/15 20:48:26

从211硕士到AI大模型工程师!我的零基础转行心路历程与高薪秘诀!

本文作者为211硕士毕业生&#xff0c;原软件开发从业者&#xff0c;因行业前景不佳决定转行AI大模型领域。通过三个月系统学习深度学习、PyTorch框架及实战项目&#xff0c;成功转型为AI大模型应用工程师。文章分享了作者的学习经验、项目经历及转行心得&#xff0c;并提供了大…

作者头像 李华