基于PHPstudy部署SQLi-labs靶场

基于PHPstudy部署SQLi-labs靶场

一:SQLi-labs简介

        SQLi-labs是由一个印度程序员开发,专门用于练习SQL注入的靶场,其中包含各种注入姿势,并适用于GET和POST等场景。

主要内容有:

1:基于错误的注入

        (1)字符注入     (2)数值注入

2:报错注入

3:盲注

        (1)基于Bool数据注入    (2)基于时间注入

4:MySQL读写文件

5:更新查询注入

6:插入查询注入

7:Header头部注入

        (1)基于Referer注入    (2)基于UserAgent注入             

        (3)基于Cookie注入

8:二次注入

9:绕过WAF

        (1)绕过黑名单/过滤器/注释剥离or & and 剥离空格和注释剥离 union 和 select

10:绕过addslashes()函数

11:绕过mysql_real_escape_string( )函数(在特殊条件下)

12:堆叠注入(堆查询注入)

二:WEB环境搭建

1:下载安装及配置PHPstudy

            进入PHPstudy官网下载(https://www.xp.cn),将下载地安装包进行解压。然后点击安装(安装过程中如需要改变PHPstudy运行文件存储位置,则需点自定义安装),安装完成PHPstudy之后,打开页面(图1-1),在软件管理模块下载相对应版本的Apache、Mysql、PHP等应用版本(图1-2),若需更改Mysql密码,则在数据库模块更改(图1-3)【初始账号和密码密码均为root】。

                                                                                                                                        图 1-1

                                                                                                                                    图 1-2

                                                                                                                                       图 1-3

查看PHPstudy是否搭建成功:

1:测试Apache是否安装成功:运行Apache软件,再点击网站模块,进入管理 —> 点击打开网站,出现“站点创建成功”即为安装成功。

2:测试MySQL数据是否安装成功:运行MySQL软件(注意:如本地已经安装MySQL数据库,需进行卸载,避免端口冲突,造成MySQL无法正常启动),打开本地MS-DOS界面,输入 mysql -hlocalhost -uroot -proot (命令解释: -h 表示登陆主机,远程登录则输入IP,本地登录输入localhost(可省略); -u 表示用户名; -p 表示相对应得密码)【使用MS-DOS登录之前需进行环境变量配置(将PHPstudy文件下得MySQL文件下的bin文件目录复制到环境变量中(过程如:图 1-4 、图 1-5、图1-6)。若MySQL安装成功,则如图1-7

                                                                                                                                 图 1-4

                                                                                                                                   图 1-5

              

                                                                                                            图1-6

                                                                                                                                 图 1-7

三:SQLi-labs靶场部署

   下载SQLI-labs源码,并将文件放置于PHPstudy下的WWW目录中。

 重要步骤:配置数据库连接参数

     打开sqli-labs-master/sql-connections/db-creds.inc,适用文本编辑器编辑文件db-creds.inc。

编辑内容:

  $dbuser =‘ ’; 在引号内填入所需要连接的数据库的名称。

  $dbpass =‘ ’; 在引号内填入所需要连接的数据库的密码。

   接下来,进入SQLi-labs站点。出现如下图内容,点击: setup/reset  Databse  for  labs 。  

  

进入下图内容,则表示搭建成功。

四:可能出现的问题

问题1:无法启动PHPstudy

   问题产生原因:端口冲突。检查本地是否安装了Mysql数据库,造成默认端口3306使用冲突。

解决方案:不建议在MySQL.ini文件中更改端口;最直接有效的处理方案便是卸载本地Mysql数据库。

问题2:进入SQLi-labs中主页显示正常,进入具体关卡出现 error 提示字样。

问题产生原因:可能存在PHP环境不匹配。(SQLi-labs靶场源文件是使用的是PHP 5.X的版本进行开发,连接数据库的函数是Mysql_connect( ) ,PHPstudy默认下载的MySQL版本为7.x,使用的数据库连接函数是Myqli_connect(),且在PHP7.0之后的版本并不兼容5.x的代码连接数据库的函数Mysql_connect( ),但这里并不建议初学者更改函数,因为需要更改函数的地方很多,并且可能引发并发症,可以在熟悉之后进行函数更改尝试)

解决方案:需要在PHPstudy中的软件管理模块在线下载PHP 5.x的版本进行运行。但在运行站点的时候一定要将版本更改为php5.x。

问题3:进入具体关卡出现如下图报错(前提是PHPstudy中的MySQL服务正常开启)

    

问题产生原因:配置问题

    解决方案:

第一步: 打开SQLi-labs的文件 sqli-labs – master 下的sql – connections ,使用记事本打开 db_creds.inc文件(内容如下图)。配置$dbpass = “   “ (密码为PHPstudy中Mysql的密码,如未设置则为初始密码:root)

                     

    第二步:在PHPstudy中运行SQLi-labs下的文件 sqli-labs – master,进入网站首页,点击setup/reset  Database for labs,自动创建数据库,创建数据表并填充数据。(如图)

正常运行关卡:

问题4:进入首页,点击setup/reset Database for labs;出现:SETTING UP THE DATABASE SCHEMA AND POPULATING DATA IN TABLES:

Fatal error: Call to undefined function mysql_connect() in E:\phpstudy_pro\WWW\sqllab\sqli-labs-master\sql-connections\setup-db.php on line 29 的报错信息(如图)

原因:PHP版本不兼容问题,PHP5.x版本时,php5.x连接Mysql数据库使用mysql_connect()连接,PHP7.x版本连接数据库使用mysqli_connect()连接。

解决方式1:在PHPstudy中的软件管理模块下载php 5.x版本,在开启站点时,将php运行版本设置为php5.x。

解决方式2:前往Php官网下载php5.x版本(前提:PHPstudy软件管理模块下载时可能出现“网络不稳定,无法下载”的提示,导致下载失败)

步骤:第一步:前往php官网下载php5.x版本,将下载包解压并放置在:phpstudy安装包路径下的php文件内(具体路径:如图)。

  

第二步:将下载的php5.x文件打开,将文件下的php.ini-development改为php.ini文件。

第三步:打开php.ini文件,将 extendion_dir =“ ”内容编辑为php5.x文件下的ext文件的绝对路径(如:extendion_dir =“E:\phpstudy_pro\Extensions\php\php5.3.29nts\ext”

            

第四步:保存php.ini文件,重启PHPstudy.

第五步:在phpstudy网站模块下点击管理—>PHP扩展—>勾选php_sql。

到了这一步,基本就是可以正常打开站点了。

但这里我使用的是“基本”,那不基本的情况是:当打开SQLi-labs站点,点击“setup/reset Database for labs”时,有出现了:“php startup:unable to load dynamic library  "C:\php\php_mysql"-找不到指定的模块”的报错信息。

这个报错信息的出现主要是因为:PHP扩展目录模块中功能(如php_sql)需要依赖一些基础的dll文件(路径:php/ext),若系统没有找到这些基础的dll文件就会使扩展模块产生错误。

解决的方案有两种:(1)将Php内的dll文件拷贝放置在system32目录下(Windows 操作系统的系统文件夹,是操作系统的神经中枢,文件夹中包含了大量的用于Windows操作系统的文件。system32文件夹里主要用于存储 DLL 文件。目录路径:C:\Windows\System32)。 (2):将dll文件的路径在环境变量中进行设置。【path代表可执行文件的搜索路径,默认为windows目录和系统目录system32】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值