SQL注入之sqli-labs(安装与配置)
2021-06-02 13:30:55 Author: www.freebuf.com(查看原文) 阅读量:164 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

前言

最近才做完sqli-labs这个靶场,顺便来写个教程总结回顾一下,因为靶场关卡比较多,打算分成几篇文章来写,这篇先写一下靶场简介和安装配置吧。靶场中的一些关卡可能不止一种解法,由于自己也正在学习当中,可能做不到面面俱到,文章不尽完美,请见谅。

sqli-labs的介绍

先简单介绍一下这个靶场,sqli-labs是一个印度程序员写的一个关于SQL注入的靶场,一共有65个关卡,其中关卡的类型有但不限于联合查询注入,报错注入,布尔盲注,延时盲注,POST注入,Cookie注入,WAF绕过......可以看出,涵盖的范围还是很广的,对于我们初学注入的小菜来说很友好。
附上这个作者的博客地址,有兴趣的朋友可以去看一看:
http://dummy2dummies.blogspot.com/

sqli-labs的安装与配置

1.安装配置web环境

要把我们的靶场搭建好还需要有个前置条件,需要先在本地有一个web环境。推荐用phpstduy,因为这个软件可以很快速方便的帮助我们配置好环境,省去了我们自己配置环境的时间,这里贴一下phpstduy的官网地址,有需要的朋友可以直接去官网下载:https://www.xp.cn/
下载安装好后是这样一个页面,这里我们直接运行MYSQL和NGINX服务,如下图:

phpstduy界面

打开数据库这个模块可以查看我们的数据库用户名和密码,默认都是root,密码可以更改,但是一定要记得修改后的密码,因为在配置靶场时需要用到。(不建议更改密码,因为靶场只是在本地测试用,没有必要改密码)

phpstduy数据库页面

2.安装配置sqli-labs

sqli-labs是开源的,可以直接在github上下载:https://github.com/Audi-1/sqli-labs
下载完成后,直接将压缩包全部解压到我们本地网站的根目录下,如下图:

根目录

如果不知道根目录位置,可以直接在phpstduy的网站模块直接打开,如下图:

打开根目录

解压完毕后就需要去修改sqli-labs的配置文件,让靶场可以正常连接到我们的数据库,配置文件位于sqli-labs/sql-connections/db-creds.inc,如下图:

配置文件目录

打开配置文件后,可以看到几个变量,大致解释一下,dbuser和dbpass分别表示数据库的用户名和密码,host表示本机ip地址,dbname和dbname1都表示数据库名称,其中我们要将dbuser和dbpass的值改为我们数据库正确的的用户名和密码(如果没有修改过的话就都是root),注意不要填错,不然靶场会出错。修改完成后的状态如下图,记得保存修改。

修改配置文件

修改完成后,就可以访问靶场了,我们直接点击Setup/reset Database for labs,让靶场连接数据库,如下图:

初始化靶场

如果连接成功的话,应该可以看到如下画面:

1

到此,我们就可以开始愉快的打靶场之旅了。

3.可能遇到的问题

什么,你说你数据库连接失败了?别着急,配置环境的过程中遇到问题是很正常的,下面我列出了自己在配置环境中遇到的几个问题,可以看看是否和你所碰到的问题一样,以作参考。
a.数据库连接失败:
配置文件出错:靶场配置文件中的用户名密码错误会导致连接失败(sqli-labs/sql-connections/db-creds.inc)。
php版本不兼容:检查你的php版本,若你php版本是7.x,将其修改到5.x即可。因为在php的7.x之后,就不再支持mysql_connect(),而是mysqli_connect(),但是我们的phpstudy的php版本默认可能是7.x的。php版本可以直接在phpstduy的网站模块中修改,如下图:

php版本

b.MYSQL版本过低:
MYSQL版本太低的话似乎是没有information_schema这个库的,不方便后面的靶场测试,所以MYSQL版本建议在5.7以上。
c.抓不到包:
这里提一下,平时访问靶场时最好不要用127.0.0.1/sqli-labs去访问,因为用127.0.0.1的话,到之后做到post类型的注入时,可能会出现抓不到包的情况。解决办法是打开命令行,用ipconfig命令去查看一下自己的内网ip,用内网ip去访问,比如我的是http://192.168.1.163/sqli-labs/ ,如下图:

内网地址

结尾

就先写到这里吧!


文章来源: https://www.freebuf.com/articles/web/271772.html
如有侵权请联系:admin#unsafe.sh