sqli-lab靶场学习记录
自己开始涉足web,于是从sql注入开始,记录一下sqli-lab靶场的学习过程。以及使用Macos的新芯片M1,遇见的坑和一些安装过程。
实验环境
Docker
Install Docker Desktop on Mac | Docker Documentation Docker的下载地址。
M1芯片的,选择Mac with apple chip版本下载。
下载之后双击安装就可以。
安装成功后,在打开终端,查看安装结果
1 | docker --version |
更换镜像源
由于国外docker搭建太慢,国外的安装文档也很全面,所以建议更换为国内的镜像源。
在菜单栏打开偏好设置,preference。找到docker engine,修改一下配置,把下面的内容加进去。
1 | "registry-mirrors": [ |
上面的是中科大的源(我个人觉得是最好用的),以下是其他的源,做备用选择
1 | http://hub-mirror.c.163.com //网易 |
sqli-labs靶场
GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based.Sqli-labs 是一个开源且全面的 SQL 注入练习靶场,手工注入必备的练习环境
本次采用docker进行环境的搭建。
直接在 dockerhub 搜索,找下载量比较高(acgpiano/sqli-labs)的来安装。
1 | docker pull acgpiano/sqli-labs |
安装成功后开启,并访问
1 | docker run -dt --name sqli-lab -p 8888:80 acgpiano/sqli-labs:latest |
docker的基本使用
在dockerhub上下载镜像
1 docker pull <镜像名字>运行一个容器
-d 分离模式。 为了使容器继续运行,必须将终端窗口保持打开状态。关闭终端窗口会停止正在运行的容器。这是因为,默认情况下,容器在前台运行,并像从终端调用的任何其他普通程序一样将其自身附加到终端。为了覆盖此行为并保持容器在后台运行,可以在
run
命令中包含-d
选项-p 8888:80 这意味着发送到主机系统端口8888 的任何请求都将转发到容器内的端口 80。现在要在浏览器上访问该应用程序,只需访问
http://127.0.0.1:8888
–name 给容器命名
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
1
2 docker run -dt --name <自己对容器命名> -p <主机系统端口>:<容器内端口> <pull下来的容器名字>
docker run -dt --name sqli-lab -p 8888:80 acgpiano/sqli-labs:latest //例如停止一个容器
其中
container identifier
可以是容器的 ID 或名称。
1 docker stop <container identifier>查看正在运行的容器,以及相关信息
1
2 docker container ls --all
docker ps -a
靶场的初始化设置
这个容器默认是没初始化 SQLi-labs 数据库的,所以得自己初始化一下。
通过查看容器里面的配置文件,发现 MySQL 的 root 用户的密码为 空
,相关版本的细节如下:(从图形界面中找到命令行,并输入以下命令)
1 | mysql -e "select version(),user()" |
HackBar的使用
GitHub - fengwenhua/hackbar_crack: hackbar 之 Firefox 学习版【一个GitHub的破解项目】
sql注入的相关知识
可以参考我的另一篇Blog