Test automate security vulnerability testing covering OWASP Top 10, SQL injection, XSS, CSRF, and authentication issues. Use when performing security assessments, penetration tests, or vulnerability scans. Trigger with phrases like "scan for vulnerabilities", "test security", or "run penetration test".
npx claudepluginhub flight505/skill-forge --plugin security-test-scannerThis skill is limited to using the following tools:
Automate security vulnerability detection covering OWASP Top 10 categories including SQL injection, XSS, CSRF, broken authentication, and sensitive data exposure. Combines static analysis (source code scanning with Semgrep, Bandit, ESLint security plugins) with dynamic testing patterns (input fuzzing, header validation, authentication bypass checks).
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
Automate security vulnerability detection covering OWASP Top 10 categories including SQL injection, XSS, CSRF, broken authentication, and sensitive data exposure. Combines static analysis (source code scanning with Semgrep, Bandit, ESLint security plugins) with dynamic testing patterns (input fuzzing, header validation, authentication bypass checks).
eslint-plugin-security, Bandit for Python, or SpotBugs for Java)npm audit, pip-audit, or trivy for dependency vulnerability scanningnpm audit --json or pip-audit --format json or trivy fs ..semgrep --config=p/owasp-top-ten.gitleaks or trufflehog."SELECT.*" +).innerHTML, eval(), or exec().child_process.exec() or os.system() with user input.Access-Control-Allow-Origin is not set to * on authenticated endpoints.Content-Security-Policy, X-Frame-Options, Strict-Transport-Security.| Error | Cause | Solution |
|---|---|---|
| False positive on SQL injection | ORM parameterized queries flagged as concatenation | Add Semgrep nosemgrep comments on verified safe patterns; tune rules to recognize the ORM |
| Secret scanner flags test fixtures | Test files contain example API keys or tokens | Add test directories to .gitleaksignore; use obviously fake values like test-key-000 |
| Dependency audit returns hundreds of results | Transitive dependencies with low-severity issues | Filter to direct dependencies first; focus on critical/high only; use npm audit --omit=dev |
| Scanner cannot reach application | Application not running or port mismatch | Start the application before dynamic scans; verify the base URL and port configuration |
| Rate limiting blocks scan | Too many requests from the scanner | Configure scan throttling; use authenticated sessions with higher rate limits |
Semgrep scan for OWASP Top 10:
semgrep --config=p/owasp-top-ten --json --output=security-results.json .
Checking for hardcoded secrets:
gitleaks detect --source=. --report-format=json --report-path=secrets-report.json
Security regression test (Jest):
describe('Security: XSS Prevention', () => {
it('escapes HTML entities in user-generated content', () => {
const input = '<script>alert("xss")</script>';
const rendered = renderUserComment(input);
expect(rendered).not.toContain('<script>');
expect(rendered).toContain('<script>');
});
it('rejects SQL injection in search parameter', async () => {
const response = await request(app)
.get('/api/search?q=\'; DROP TABLE users; --')
.expect(200); # HTTP 200 OK
expect(response.body.results).toBeDefined();
// Verify users table still exists
const users = await db.query('SELECT count(*) FROM users');
expect(users.rows[0].count).toBeGreaterThan(0);
});
});