agent-security-hardening
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
Web vulnerability hunting playbook. Use after recon, when you have specific hosts/endpoints to test for IDOR/BAC, injection, auth flaws, SSRF, and known CVEs. Emphasizes real PoC + concrete impact.
You are testing specific endpoints the user has handed you (or that came out of the recon skill). Every finding must come with a real PoC and a concrete impact statement — no theoretical bugs.
Default to curl and the built-in http tool. Do not pull in heavy scanners (nuclei, sqlmap, ffuf, etc.) unless the user explicitly asks for them or you have manually confirmed a bug and need a scanner only to characterize the bug class.
Execution rule: substitute real target values before running commands. Never write literal placeholders such as <TARGET>, <vulnerable-path>, or <PoC body> to files. If a value is unknown, ask once or derive it from /target.
Fetch the landing page with the http tool or curl. Note:
If you spot a versioned product, immediately web_search "<product> <version> CVE" and web_fetch the top advisory. Reproduce the CVE manually with curl before reporting.
For each suspected CVE pulled from the advisory, craft the curl that proves it — single request when possible:
TARGET="https://app.example.com" # replace with the scoped target before running
curl -ksS -X POST "$TARGET/vulnerable-path" \
-H 'Content-Type: application/json' \
-d '{"replace":"with-real-poc-body"}' \
-w "\nHTTP %{http_code} size=%{size_download} time=%{time_total}\n"
If the advisory describes a recognizable pattern (template injection, deserialization, etc.) and the user has explicitly authorized broader scanning, then — and only then — reach for nuclei against the single host. Otherwise stay manual.
/api/users/12345, /orders/?id=...).http tool.findings/idor-<endpoint>.txt.Example IDOR sweep with two sessions:
TARGET="https://app.example.com" # replace with the scoped target before running
for id in $(seq 1 50); do
body=$(curl -ksS -H "Cookie: $SESSION_B" "$TARGET/api/users/$id" | jq -r '.email // empty')
[ -n "$body" ] && echo "$id $body"
done
For each parameter (query, body, header, cookie):
', ", <x>, ${7*7}, {{7*7}}) with curl or the http tool.Quick reflected-XSS probe with curl:
TARGET="https://app.example.com" # replace with the scoped target before running
for p in q s search query keyword; do
curl -ksS "$TARGET/?$p=pf$(date +%s)<svg/onload=alert(1)>" \
| grep -o "pf[0-9]*<svg.*alert(1)>" || true
done
For SQLi: only after curl-level manual confirmation (timing differences, error strings) and only with the user's explicit OK, escalate to sqlmap with --batch --level=2 --risk=1 --random-agent against the single endpoint. Default path is manual ' OR sleep(5) -- style probes via curl, then exfil via UNION when you know the schema.
Any parameter that takes a URL or hostname: try http://127.0.0.1, http://169.254.169.254/latest/meta-data/, and an out-of-band canary the user provides. Compare response timings and bodies with curl -w "%{time_total} %{size_download}\n".
For each confirmed finding, write findings/<id>-<short-title>.md with:
Stop after writing the report. Do not chain into further exploitation unless the user explicitly asks.
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
DIDietrichGebert/ponytail162k5,405 new stars in the last 7 days
DIDietrichGebert/ponytail162k5,405 new stars in the last 7 days
DIDietrichGebert/ponytail162k5,405 new stars in the last 7 days
GAgarrytan/gstack136k883 new stars in the last 7 days
Harden code against the OWASP Top 10: input handling, authentication, sessions and dependencies.
ADaddyosmani/agent-skills106k3,628 new stars in the last 7 days