目录:
- 一、过滤关键词:
- 二、一些小trick,思路:
-
-
- 1. 关于bool盲注的正确与否
- 2. 关于二次注入外显数据
- 3. 不行直接猜测 select flag from flag 或者select * from flag,,,md
- 4. 如果需要session验证的话,
- 5.关于闭合`单引号`,
- 6. sql注入,首先考虑 联合查询注入:union select 这些,然后再去思考 bool盲注,time盲注这些。
- 7. 闭合`select * from users where name=''and pw=''`
- 8. load_file(), into out_file(),的利用在 二次注入中出现较多。
- 9. load_file()分 长度读取 flag。
- 10 .当PHP的版本较低的时候,可以和mysql结合,考虑`;%00`当作注释符,进行截断
-
- 三、一些payload:
- 四 、 万能密码:
字符是 32 - 128 。
还在补充中:…
一、过滤关键词:
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 {}
这个测试过滤,不能够用括号来代替空格。。。
4. 过滤了,information_schema.schemata这些,—无列名注入
当information_schema等杯过滤的时候,能够查询出来数据库的名字,但是查找不到表的名字,这时候可以用这个:sys.x$schema_flattened_keys
或者sys.schema_table_statistics_with_buffer
来爆出表明,这个也能爆表明:mysql.innodb_table_stats
然后列明也没办法查么,可以用无列明注入
表明下面这个两个能爆出来,但是列名就要 用 无列名注入了。
select/**/group_concat(table_name)/**/from/**/ mysql.innodb_table_stats
。
select group_concat(table_name) from sys.x$schema_flattened_keys where table_schema=database()
5. 过滤了 union 的无列名注入: ----- ascii 偏移
BUUCTF:[GYCTF2020]Ezsqli --过滤了information_schem ------ 无列明注入之过滤了union 使用ascii偏移来做