SQL注入系统学习——(2)环境搭建及简单SQL命令
文章目录
在SQL注入的学习中,博主极其推荐使用 《MYSQL注入天书》 这本书,本教程也会跟着这个流程来走。会给出一些个人的理解和感慨,我们一起加油学习
对应这个文章的靶场叫做 sqli-labs 的靶场
docker 的安装
1.使用官方脚本自动安(不推荐)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2.使用国内的 daocloud 一键安装命令(推荐)
curl -sSL https://get.daocloud.io/docker | sh
3.启用docker
systemctl stop firewalld
systemctl disable firewalld
systemctl restart docker
systemctl enable docker
systemctl status docker
如下图所示就成功了
安装 sqli-labs
**查找 sqli-labs **
docker search sqli-labs
选择第一个或者第二个都可以,然后拉取镜像
docker pull c0ny1/sqli-labs:0.1
启动镜像
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
-dt 后台运行
--name 给其命名
-p 本地端口:docker中的端口
--rm 当其关闭后将删除开启的资源
这里给我报了一个小小的错误,不要慌
错误提示:WARNING: IPv4 forwarding is disabled. Networking will not work.
意思就是:IPv4转发被禁用。网络将不起作用。
解决方法如下:
这里要注意的是。我重启网络和 docker 后,我原来的容器也没有了。所以我重新起了一下。问题不大
进入网页
http://ip:端口
进入网页后点击:箭头所指的地方(Setup/reset Database for labs))
这个地方是重置 sqli-labs 数据库的地方,不重置的话就会出现数据库不可用的情况
如上图所示,这样就完全的安装好 sqli-labs 环境
简单SQL语句介绍
1.进入容器和数据库
docker ps -a
docker exec -it 681b93d3e8c8 /bin/bash
mysql -uroot -p // 因为数据库密码为空所以敲两下回车就ok了
2.基础命令
show database; //查看数据库
use security; //进入名为 security 的数据库
show tables; //查看数据库中有哪些表
desc emails; //查看 emails 这张表的结构
use informatin_schema; //进入系统数据库,这个系统数据库是我们进行前台攻击的时候需要用到的
show tables; //查看 information_schema 数据库的表格
desc tables; //枚举 tables 这张表
information_schema 数据库
information_schema 是 mysql 的系统数据库,存储所有数据库相关信息。所以可以利用这个数据库进行一次完整的注入。流程如下:
select schema_name from information_schema.schema; //猜数据库
select table_name from informatin_schema.tables where table_schema='xxxxxxx' //猜此库的数据表
select column_name from information_schema.columns where table_name='xxxxxxx' //猜此表的所有列
select xxxxx from xxxx //猜某列内容
上图就是一个 sql 注入的一个流程
总结
万事开头难,不开头一直难。所以动起来,一起学习。这些都是一些常常能用到的 sql 注入的命令。虽然现在工具很牛逼,但是不可能永远当个脚本小子吧,工具是死的,人是活的。在实战中要灵活运用。诸君共勉。