Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

performing-web-application-penetration-test

skill:mukul975/anthropic-cybersecurity-skills#performing-web-application-penetration-test

Performs systematic security testing of web applications following the OWASP Web Security Testing Guide (WSTG) methodology to identify vulnerabilities in authentication, authorization, input validation, session management, and business logic. The tester uses Burp Suite as the primary interception proxy alongside manual testing techniques to find flaws that automated scanners miss. Activates for requests involving web app pentest, OWASP testing, application security assessment, or web vulnerability testing.

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 22:12 UTC at 54a7988

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

1
findings
medium
highest severity
1
threat classes
4,532
files scanned
98/98
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding skill:skills/performing-web-application-penetration-test:skills/performing-web-application-penetration-test/scripts/agent.py:21:PRIVESC

Security findings 1

Privilege escalation

mediumContextual risklow confidence

The assessment script sets verify=False on every requests call it issues (technology fingerprinting, security-header check, HTTP-method test, CORS test, SQLi and XSS tests), disabling TLS certificate verification and exposing collected target and session data to interception.

resp = requests.get(target_url, timeout=10, verify=False, allow_redirects=True)
vector:code
Counter-argument considered

The claim is accurate: every shown requests call in the shipped assessment script sets verify=False, the behavior is disclosed nowhere in the declared description or claims D7-D20, and run_assessment wires all these calls into a single executed flow, so the undeclared TLS-verification weakening survives as a low-severity contextual risk with no evidence to refute it.

Open questions 2

What the analysis could not settle from the code alone.

High-severity detector leads were checked and not confirmed as agent-side behavior: DET:f3d9243f6cc7a5b1 (PY-EXFIL-CHAIN) pairs the SSRF test payload http://169.254.169.254/latest/meta-data/ (an instruction to supply internal URLs to the authorized target application, not an agent-side read of the metadata service) with unrelated enumeration text, and DET:828c38b459a9757a / DET:df021b1db6c19b90 match 'alert' and ']' inside XSS/XXE/SSTI payload examples against the session-fixation sentence, whic⟦… 182 more chars …⟧
[file request skills/performing-web-application-penetration-test/scripts/agent.py] The unshown remainder of agent.py (lines 89-192) contains the sinks for the confirmed `import subprocess` and `import os` at lines 4-6: does the ffuf/directory-enumeration subprocess invocation execute only target-scoped tooling against target_url without shell=True or unsafe interpolation, and do the CORS/SQL/XSS test functions send data only to target_url with no environment-variable or file reads feeding any ne⟦… 11 more chars …⟧
Code execution
Refuted findings 1

Candidates the review stage examined and rejected, kept for transparency.

Credential access

criticalRefutedlow confidence

The skill instructs the tester to inject the cloud metadata credential endpoint http://169.254.169.254/latest/meta-data/ (and a local Redis URL) into parameters of the application under test, a documented SSRF payload that retrieves the target's cloud credentials when the target is vulnerable; no source-to-sink chain on the tester's own host is shown, so this is the declared pentest capability rather than an established host-directed exfiltration.

Supply internal URLs (`http://169.254.169.254/latest/meta-data/`, `http://127.0.0.1:6379/`) in parameters that fetch external resources
Why it was refuted

Line 95 is the skill's own declared SSRF capability (claim D14, same unit and line) and a canonical documented attack payload aimed at the application under test, not a host-directed credential chain, so the declared-core-capability/documented-payload carve-out and the explicit declaration defeat the CRED finding.

performing-web-application-penetration-test (Skill) | Beacon Intel