sqli-labs是什么
以下信息粗浅翻译自:sqli-labs
SQLI-LABS是一个学习SQL注入的平台:
-
基于错误的注入 (Union Select)
- String 字符型
- Intiger 数字型
-
基于错误的注入 (基于双注入)
-
盲注: 1.基于布尔型的 2.基于时间的
-
更新查询注入.
-
插入查询注入.
-
头注入. 1.基于Referer的. 2.基于UserAgent的. 3.基于Cookie的.
-
二次注入
-
绕过WAF
- 绕过黑名单, Stripping comments, Stripping OR & AND ,Stripping SPACES and COMMENTS, Stripping UNION & SELECT
- Impidence mismatch
-
绕过addslashes()
-
绕过mysql_real_escape_string. (under special conditions)
-
Stacked SQL injections.
-
次级通道提取
配置环境
系统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\,点击安装数据库