sqli-lab介绍和phpshudy环境安装

发布于 2020-07-06  241 次阅读


一、sqli-lab介绍

Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程。主要包括的内容有:

  • 基于错误的注入(Union Select)
  • 基于误差的注入(双查询注入)
  • 盲注入(01、基于Boolian数据类型注入, 02、基于时间注入)
  • 更新查询注入(update )
  • 插入查询注入(insert )
  • Header头部注入(01、基于Referer注入, 02、基于UserAgent注入,03、基于cookie注入)
  • 二阶注入,也可叫二次注入
  • 绕过WAF
  • 绕过addslashes()函数
  • 绕过mysql_real_escape_string()函数(在特殊条件下)
  • 堆叠注入(堆查询注入)
  • 二级通道提取

安装好以后大概是这样的:
Page-1(Basic Challenges)

Page-2(Adv Injections)

Page-3(Stacked Injections)

Page-4(Challenge)

二.准备

1.SQLi-Labs 下载下载地址:https://github.com/Audi-1/sqli-labs

2.下载phpstudy(www.phpstudy.net)。

3.如果是phpstudy2018,还需要下载vc运行库

具体解决看这个文章

三.开始搭建

需要安装以下环境
apache+mysql+php
这里我们为了方便就使用phpstudy

1.安装phpstudy2019

打开软件,启动apache和mysql服务

再配置PHP环境

这里要注意一下:安装完里面默认的php版本是php7.3.4nts,而php7版本不再支持mysql_xxx函数,而是支持mysqli_xxx函数,所以我们们要安装PHP版本低于7.x的(这里我使用的是PHP5.4.45nts)

2020032709351856

也可以将sqli-labs源码里的所有mysql_xxx(包括mysql-concent,mysql-error等)函数全部改为高版本适用的mysqli_xxx函数。数量比较多,当然也可以使用某些工具一键替换,但是不建议,鬼知道有没有替换出错

或者也可以使用别人的修改版的sqli-labs,支持PHP7.x,其实原理就是修改了mysql_xxx函数为mysqli_xxx,下载地址:https://github.com/Rinkish/Sqli_Edited_Version

2.将下载好的sqli-labs源码解压并拷贝到你安装phpstudy的www目录下

3、配置db-creds.inc里代码

修改数据库的账号和密码。数据库的账号和密码可以在主界面上看到,默认是root。
db-creds.inc配置文件路径是在sqli-labs文件夹的sql-connections里

4、然后在浏览器打开127.0.0.1/sqli-labs打开首页,并点击“Setup/reset Database”以创建数据库,创建表并填充数据。

若提示下面这个报错信息则是PHP版本没有切换到7.x以下,去切换就行

若是下图表示创建成功

四.使用问题

1.单引号不报错

不报错原因

在配置sqli-labs时,因为使用的是新版phpstudy,PHP版本选择的是5.2,但是在进行第一关单引号报错的时候,始终无法成功报错,爬了一会坑,才发现是因为phpstudy对于引号的保护。

解决方法

打开配置文件php.ini,找到Magic quotes,将magic_quotes_gpc=On 修改为 magic_quotes_gpc=Off 

1985_3VANWYVHN88D4V4


一个热爱技术的白帽子