Back to skill

Security audit

Security Tester

Security checks for vulnerabilities and agentic risk

Overview

This is a web security testing skill, but it includes potentially disruptive exploit-style commands without enough authorization, scope, or safety controls.

Install only if you will use it for systems you own or are explicitly authorized to test. Before running any commands, define the exact target scope, use test accounts and staging environments where possible, avoid destructive payloads and cloud metadata probes unless separately approved, set conservative request limits, and redact tokens, credentials, personal data, and configuration output from logs and reports.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/api-security.md:31
Finding
Unbounded High-Impact and Disruptive Security Testing Procedures<![CDATA[ ## Vulnerability Details **File Locations**: - `SKILL.md:64-81` — destructive SQL injection and command-injection payloads - `SKILL.md:86-94` — repeated authentication attempts - `references/api-security.md:31-43` — high-volume requests and a 10 MB upload - `references/api-security.md:51-65` — SSRF probes against internal and cloud metadata addresses - `references/api-security.md:103-110` — GraphQL resource-exhaustion procedures - `references/owasp-top10-tests.md:132-140` — probes for sensitive configuration and diagnostic resources **Vulnerability Type**: Security-testing instructions lack authorization, scope, rate, and destructive-action safeguards **Risk Level**: Medium ### Vulnerable Code `SKILL.md:64-81`: ```bash # SQL Injection (OWASP-DV-005) # Reference: CWE-89 PAYLOADS=( "' OR '1'='1" "' OR '1'='1' --" "'; DROP TABLE users; --" "' UNION SELECT null,null,null --" "1' AND SLEEP(5) --" ) for p in "${PAYLOADS[@]}"; do echo "Testing: $p" curl -s -o /dev/null -w "%{http_code} %{time_total}s" \ "$URL/api/search?q=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$p'))")" echo done # Command Injection (CWE-78) CMD_PAYLOADS=( '; ls -la' '| cat /etc/passwd' '$(whoami)' '`id`' ) ``` `SKILL.md:86-94`: ```bash # Brute force protection (OWASP-AT-004) for i in $(seq 1 20); do STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ -X POST "$URL/api/login" \ -H "Content-Type: application/json" \ -d "{\"username\":\"admin\",\"password\":\"wrong$i\"}") echo "Attempt $i: $STATUS" # After 5-10 attempts, should see 429 or account lockout done ``` `references/api-security.md:31-43`: ```bash # Test missing pagination limits curl "$URL/api/items?page=1&per_page=999999" # Should enforce max per_page # Test missing rate limits for i in $(seq 1 200); do curl -s -o /dev/null -w "%{http_code}\n" "$URL/api/expensive-endpoint" done | sort | uniq -c # Should see 429 responses # Test large payload python3 -c "pri ...[truncated 4973 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Require explicit confirmation that the operator owns the target or has written authorization to test it. 2. Require an allowlist of approved schemes, hosts, ports, and paths. Reject redirects or resolved addresses that leave the approved scope. 3. Make passive and non-destructive checks the default. Place brute-force, SSRF, resource-exhaustion, large-payload, and state-changing tests behind separate confirmations. 4. Replace destructive payloads such as `DROP TABLE` with inert markers designed only to demonstrate parsing behavior. 5. Use harmless command-injection markers, such as a fixed echo token, rather than reading operating-system files. 6. Define conservative request limits, including maximum request count, concurrency, payload size, test duration, and response size. 7. Explicitly prohibit denial-of-service and account-lockout testing against production systems. 8. Disable cloud metadata probes by default. If specifically authorized, use a controlled canary service rather than a real metadata endpoint. 9. Require dedicated test accounts and test data for authentication, authorization, mass-assignment, and business-logic checks. 10. Stop testing automatically when lockout behavior, elevated latency, server errors, or availability degradation is detected. 11. Prevent sensitive response bodies from being printed by default. Redact authorization headers, tokens, cookies, credentials, personal data, environment variables, and cloud metadata from logs and reports. 12. Add a mandatory preflight section documenting authorization, target scope, excluded assets, maintenance window, emergency contacts, rollback procedures, and approved test intensity. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Credential Access

High
Category
Privilege Escalation
Content
# Command Injection (CWE-78)
CMD_PAYLOADS=(
  '; ls -la'
  '| cat /etc/passwd'
  '$(whoami)'
  '`id`'
)
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

External Script Fetching

High
Category
Supply Chain
Content
# Test large payload
python3 -c "print('{\"data\":\"' + 'A'*10000000 + '\"}')" | \
  curl -X POST -d @- -H "Content-Type: application/json" "$URL/api/upload"
# Should return 413 Payload Too Large
```
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Cloud Metadata Access

High
Category
Server-Side Request Forgery
Content
SSRF_PAYLOADS=(
  "http://127.0.0.1:80"
  "http://localhost:22"
  "http://169.254.169.254/latest/meta-data/"  # AWS metadata
  "http://[::1]:80"
  "http://0x7f000001"
)
Confidence
98% confidence
Finding
The file includes a direct SSRF payload targeting the cloud metadata service at 169.254.169.254/latest/meta-data/. Even as reference content, this is a sensitive exploitation target commonly used to retrieve cloud instance credentials, so including it without restrictions materially increases misuse risk.

Credential Access

High
Category
Privilege Escalation
Content
```bash
# Check for common misconfigurations
curl -s "$URL/robots.txt"
curl -s "$URL/.env"
curl -s "$URL/.git/config"
curl -s "$URL/server-status"
curl -s "$URL/phpinfo.php"
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Brute force protection (OWASP-AT-004)
for i in $(seq 1 20); do
  STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
    -X POST "$URL/api/login" \
    -H "Content-Type: application/json" \
    -d "{\"username\":\"admin\",\"password\":\"wrong$i\"}")
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Try adding extra fields in request
curl -X PUT "$URL/api/users/me" \
  -H "Content-Type: application/json" \
  -d '{"name":"test", "role":"admin", "isVerified":true, "balance":999999}'
# Verify: role, isVerified, balance should NOT be changed
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
This section includes rate-limit and resource-consumption abuse tests, including repeated requests and a 10MB payload, but provides no explicit warning to use them only on authorized non-production targets or to control test intensity. In a reusable skill/reference file, omission of safety guardrails increases the chance of accidental service degradation or disruption when copied by users.

External Transmission

Medium
Category
Data Exfiltration
Content
# Test large payload
python3 -c "print('{\"data\":\"' + 'A'*10000000 + '\"}')" | \
  curl -X POST -d @- -H "Content-Type: application/json" "$URL/api/upload"
# Should return 413 Payload Too Large
```
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The SSRF and GraphQL sections provide concrete attack payloads and resource-exhaustion test ideas, including cloud metadata access and batch/nested query abuse, without any safety or authorization constraints. In this context, the content meaningfully lowers the barrier to executing harmful tests against real systems and could facilitate unauthorized probing or denial of service.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## JWT Security Testing

```bash
# Decode JWT (without verification)
echo "$JWT" | python3 -c "
import sys, base64, json
token = sys.stdin.read().strip()
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Introspection query (should be disabled in production)
curl -X POST "$URL/graphql" \
  -H "Content-Type: application/json" \
  -d '{"query":"{ __schema { types { name fields { name } } } }"}'
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Test rate limiting on sensitive endpoints
for i in $(seq 1 100); do
  curl -s -o /dev/null -w "%{http_code}" "$URL/api/forgot-password" \
    -d '{"email":"test@example.com"}'
  echo " (attempt $i)"
done
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.