sqli-labs靶场通关攻略

1.sqli-labs第一关

1.1判断是否存在sql注入

提示我们输入数字值的ID作为参数,我们输入?id=1

此时页面返回出id=1时的数据,接下来我们判断sql语句是否是拼接,且是字符型还是数字型。

根据我们测试后,根据图片结果可知是字符型且存在sql注入漏洞。

1.2 联合注入

首先我们要知道表格有几列,根据order by函数来测试

如果报错未找到就是超过列数,如下图

如果显示正常就是没有超出列数。如下图

然后我们要确定回显点在哪(?id=-1'union select 1,2,3--+)

由图可知,回显点只有2和3,1是不回显的

再确定回显点后,我们就可以获取当前数据库的一些信息了

比如库名和版本号?id=-1'union select 1,database(),version()--+

2.sqli-labs第二关

和第一关是一样,提示我们输入数字值的ID作为参数,我们输入?id=1

现在开始进行判断

显示报错语法错误,证明不是字符型,接下来我们尝试数字型

根据尝试我们发现sql语句是数字型注入,那接下来的步骤和我们第一关是一样的

3.sqli-labs第三关

首先我们按照第一关第二关的方法判断它是什么注入类型的

根据尝试我们发现他既不是数字型也不是我们常用的 ' 和 " 的字符型

接了下来我们再尝试一些用的比较少的带% )等字符型注入

经过尝试我们发现他是 ') 的字符型注入,接下来的步骤和我们上面两关是一样的

**************************************************************************************************************

补充:

1.查出网站的数据库里面的所有表名:                                                            http://127.0.0.1/Less-1/?id=-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

2.查出users表里面的所有列:                                                                                   http://127.0.0.1/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+

3.查询表中所有的数据:                                                                                 http://127.0.0.1/Less-1/?id=-1' union select 1,2,group_concat(id,username,password) from users --+

**************************************************************************************************************

4.sqli-labs第四关

首先我们按照前面的方法判断它是什么注入类型的

根据尝试我们发现他是 ")字符类型注入,接下来的步骤和我们上面两关是一样的

5.sqli-labs第五关

首先我们还是按照前面的方法判断它是什么注入类型的

此时我们发现不管我们怎么尝试不是语句报错就是只只显示You are in......                                    

既然有报错那我们就使用报错注入,下面以 ' 为例

单引号引起报错 说明页面有报错语句的位置

尝试闭合 闭合成功

http://127.0.0.1/Less-5/?id=1%27and%20updatexml(1,1,1)--+使用报错函数,报错函数里面三个参数,写三个1占位置,这里我们可以操控的是第二个参数的位置

所以第二个参数的位置换成concat()函数,这个函数也有两个参数,写两个1占位置,如下

这里,我们可以操控的地方也是第二个参数的位置,把第二个参数的位置换成(),里面写我们的子查询语句,成功查出数据库名,后面查什么在子查询括号里面查就可以了

例如查该数据库中的表名

显示超过一行报错,我们给table_name 加上group_concat成一个集合

如图所示我们就注入成功啦!

6.sqli-labs第六关

首先我们还是老样子,按照前面的方法判断它是什么注入类型的,以及闭合方式

因为页面只有ture和flase两种情况,所以接下来我们使用布尔盲注来获取信息

首先使用length()函数判断数据库长度

如上图利用函数结合 < > = 号来进行判断数据库长度,最终可以确定数据库名长度为8

然后使用ASCII码来确定数据库字符:用ascii码截取数据库的第一位字符 判断第一位字符的ascii码是否大于某个数值,如果页面显示正常,说明数据库第一位字符ascii码大于这个数值

例如115

得到ascii码后我们找一个ascii码十进制在线转译网站来进行转译得到115对应的字母是S

以此类推,最终可确定数据库名为 security

利用此方法我们还可以进行进行表名的查询等等。

7.sqli-labs第七关

第七关我们也采用布尔盲注的方式,步骤和第六关相同如下(笔者认为可以还可以使用报错注入)

8.sqli-labs第八关

这里第八关我同样使用的布尔盲注

9.sqli-labs第九关

这一关我们使用DNSlog外带注⼊

首先我们打开网址dnslog.cn,随机获取一个三级域名

进入第九关和之前的步骤一样,但是此时我们要利用dnslog.cn记录下我们的DNS请求

参考:深度剖析DNSLog注入原理&本地实例测试_dnslog.cn-CSDN博客

同时利用联合查询在第九关带上我们索要查询的信息来访问zjl2mo.dnslog.cn这个子域名

这里我们点击就可以可以看到我们所查询的信息啦

**************************************************************************************************************

注意:我们需要先在phpstudy_pro\Extensions\MySQL5.7.26\my.ini 文件中如下图位置添加语句

secure_file_priv = ''

否则dnslog.cn无法正常显示记录

**************************************************************************************************************

10.sqli-labs第十关

这一关我们使用时间盲注

使用条件:1.页面没有回显位置        2.页面不显示数据库的报错信息        3.页面只响应一种结果

我们利用if判断语句来判断闭合方式

如图页面有5秒的响应时长证明闭合成功,反之则闭合失败

接下来使用length()函数确定数据库长度

利用我们设置的响应时长来判断语句是否正确进而判断数据库长度

同理按照此法便可以得到我们所需要的数据啦!

11.sqli-labs第十一关

进入第11关我们发现这一关与前面十关不一样,多了两个输入框

这一关我们在输入框内进行注入类型的判断

如图可得知该关卡为字符型注入,下面我们进行数据库信息的获取

首先输入数据库内没有的用户名和密码,使其报错,然后使用联合查询把数据库名接到网页回显的地方

查得数据库名为security,接下来查询表

然后产看表内具体内容

这样就完成啦!

12.sqli-labs第十二关

进入第十二关后我们发现和第十一关一样

同理开始判断它的闭合方式 ") 

接下来进行数据库信息的获取,步骤和第十一关完全相同啦!

13.sqli-labs第十三关

还是一样先判断闭合方式,这关的闭合方式为 ')

但是此时网页并没有返回任何信息,所以这关我们使用布尔盲注

步骤以及代码同第六关相同

14.sqli-labs第十四关

经过尝试第十四关可以报错,这里我们可以使用报错注入

闭合方式为 “ 

接下来和十一关和第十二关的步骤一模一样

15.sqli-labs第十五关

判断注入类型,发现网页没有回显,所以这关使用布尔盲注,接下来和第十三关步骤想通啦!

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值