搭建sqli-labs环境来练习SQL注入

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ONS_cukuyo/article/details/82863382

sqli-labs是什么

以下信息粗浅翻译自:sqli-labs

SQLI-LABS是一个学习SQL注入的平台:

  1. 基于错误的注入 (Union Select)

    1. String 字符型
    2. Intiger 数字型
  2. 基于错误的注入 (基于双注入)

  3. 盲注: 1.基于布尔型的 2.基于时间的

  4. 更新查询注入.

  5. 插入查询注入.

  6. 头注入. 1.基于Referer的. 2.基于UserAgent的. 3.基于Cookie的.

  7. 二次注入

  8. 绕过WAF

    1. 绕过黑名单, Stripping comments, Stripping OR & AND ,Stripping SPACES and COMMENTS, Stripping UNION & SELECT
    2. Impidence mismatch
  9. 绕过addslashes()

  10. 绕过mysql_real_escape_string. (under special conditions)

  11. Stacked SQL injections.

  12. 次级通道提取

配置环境

系统Ubunbu 18.04 , 以下命令中肯定有多余的命令,不过为了以防万一还是安了

配置Apache:

sudo apt install apache2

sudo apt install apache2-dev  

打开浏览器,输入localhost可验证是否安装成功

配置mysql:

sudo apt install mysql-server mysql-client

sudo apt install php-mysql

sudo apt install php7.2-mysql

我下的这个默认版本是mysql 5.7,安装的时候root默认密码是空,同时,如果是你直接mysql -uroot -p然后按空格的话会提示你access denied的,原因是进行了权限检查

解决办法是:

sudo mysql //这个命令可以直接进去,另一个进去的方法是使用/etc/mysql/debian.cnf这个文件自动生成的账号密码

UPDATE mysql.user SET authentication_string=PASSWORD('root'), PLUGIN='mysql_native_password' WHERE USER='root';

//设置root密码为root,PLUGIN='mysql_native_password'意思是关闭access denied的ya验证

配置PHP:

sudo apt install php 

sudo apt install php-mysql

sudo apt install libapache2-mod-php

//sudo apt install php 现在是下载7.2版本,所以下面都是7.2

sudo apt-get install libapache2-mod-php7.2 php7.2-gd php7.2-mbstring php7.2-xml php7.2-mysql php7.2-dev

下载和使用sqli-libs:

现在的时间是2018/9/27,sqli-libs的源码是基于PHP5的和PHP7的兼容有问题,详细请看https://github.com/Audi-1/sqli-labs/issues/11。在Issue里已经有人对这个兼容问题已经做了解决,“MySQL functions were removed in PHP 7, but we can use MySQLi functions instead.”,并且贴出了兼容后的代码,所以直接使用:

cd /var/www/html   // /var/www/html是apache的路径

git clone https://github.com/Rinkish/Sqli_Edited_Version.git     //@Rinkish的贡献

然后更改sqli-libs用的默认数据库用户名和密码

sudo vim /sqli-labs/sql-connections/db-creds.inc

使用浏览器打开localhost\sqli-labs\,点击安装数据库

Enjoy it

阅读更多
换一批

没有更多推荐了,返回首页