前言
最近才做完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服务,如下图:
打开数据库这个模块可以查看我们的数据库用户名和密码,默认都是root,密码可以更改,但是一定要记得修改后的密码,因为在配置靶场时需要用到。(不建议更改密码,因为靶场只是在本地测试用,没有必要改密码)
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,让靶场连接数据库,如下图:
如果连接成功的话,应该可以看到如下画面:
到此,我们就可以开始愉快的打靶场之旅了。
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的网站模块中修改,如下图:
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/ ,如下图:
结尾
就先写到这里吧!