SQL注入系统学习——(2)环境搭建及简单SQL命令

9 篇文章 0 订阅
5 篇文章 0 订阅

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

如下图所示就成功了

image-20221127184731193

安装 sqli-labs

**查找 sqli-labs **

docker search sqli-labs

image-20221127192836381

选择第一个或者第二个都可以,然后拉取镜像

docker pull c0ny1/sqli-labs:0.1

image-20221127193130307

启动镜像

docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs

-dt      后台运行
--name  给其命名
-p      本地端口:docker中的端口
--rm    当其关闭后将删除开启的资源

image-20221127193839665

这里给我报了一个小小的错误,不要慌

错误提示:WARNING: IPv4 forwarding is disabled. Networking will not work.

意思就是:IPv4转发被禁用。网络将不起作用。

解决方法如下:

image-20221127194237910

这里要注意的是。我重启网络和 docker 后,我原来的容器也没有了。所以我重新起了一下。问题不大

进入网页

http://ip:端口

image-20221127194459980

进入网页后点击:箭头所指的地方(Setup/reset Database for labs))

这个地方是重置 sqli-labs 数据库的地方,不重置的话就会出现数据库不可用的情况

image-20221127194703338

如上图所示,这样就完全的安装好 sqli-labs 环境

简单SQL语句介绍

1.进入容器和数据库

docker ps -a
docker exec -it 681b93d3e8c8 /bin/bash
mysql -uroot -p   // 因为数据库密码为空所以敲两下回车就ok了

image-20221127195619601

2.基础命令

show database;    //查看数据库
use security;     //进入名为 security 的数据库
show tables;      //查看数据库中有哪些表
desc emails;      //查看 emails 这张表的结构

image-20221127200202447

image-20221127200224304

use informatin_schema;   //进入系统数据库,这个系统数据库是我们进行前台攻击的时候需要用到的
show tables;             //查看 information_schema 数据库的表格
desc tables;             //枚举 tables 这张表

image-20221127200542618

image-20221127200558429

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                                                            //猜某列内容

image-20221127201549926

image-20221127201607165

上图就是一个 sql 注入的一个流程

总结

万事开头难,不开头一直难。所以动起来,一起学习。这些都是一些常常能用到的 sql 注入的命令。虽然现在工具很牛逼,但是不可能永远当个脚本小子吧,工具是死的,人是活的。在实战中要灵活运用。诸君共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H_kiwi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值