sqli-lab靶场学习记录

自己开始涉足web,于是从sql注入开始,记录一下sqli-lab靶场的学习过程。以及使用Macos的新芯片M1,遇见的坑和一些安装过程。

实验环境

Docker

Install Docker Desktop on Mac | Docker Documentation Docker的下载地址。

M1芯片的,选择Mac with apple chip版本下载。

下载之后双击安装就可以。

安装成功后,在打开终端,查看安装结果

docker --version

更换镜像源

由于国外docker搭建太慢,国外的安装文档也很全面,所以建议更换为国内的镜像源。

在菜单栏打开偏好设置,preference。找到docker engine,修改一下配置,把下面的内容加进去。

"registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn"
  ],

上面的是中科大的源(我个人觉得是最好用的),以下是其他的源,做备用选择

http://hub-mirror.c.163.com  //网易
https://mirror.ccs.tencentyun.com  //腾讯
https://reg-mirror.qiniu.com  //华为
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors  //阿里云需要注册后分配
http://f1361db2.m.daocloud.io   //DaoCloud镜像

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)的来安装。

docker pull acgpiano/sqli-labs

安装成功后开启,并访问

docker run -dt --name sqli-lab -p 8888:80 acgpiano/sqli-labs:latest 
http://127.0.0.1:8888   //浏览器访问

docker的基本使用

在dockerhub上下载镜像

docker pull <镜像名字>

运行一个容器

-d 分离模式。 为了使容器继续运行,必须将终端窗口保持打开状态。关闭终端窗口会停止正在运行的容器。这是因为,默认情况下,容器在前台运行,并像从终端调用的任何其他普通程序一样将其自身附加到终端。为了覆盖此行为并保持容器在后台运行,可以在 run 命令中包含 -d 选项

-p 8888:80 这意味着发送到主机系统端口8888 的任何请求都将转发到容器内的端口 80。现在要在浏览器上访问该应用程序,只需访问 http://127.0.0.1:8888

–name 给容器命名

-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用

 docker run -dt --name <自己对容器命名> -p <主机系统端口>:<容器内端口> <pull下来的容器名字> 
 docker run -dt --name sqli-lab -p 8888:80 acgpiano/sqli-labs:latest  //例如

停止一个容器

其中 container identifier 可以是容器的 ID 或名称。

docker stop <container identifier>

查看正在运行的容器,以及相关信息

docker container ls --all  
docker ps -a

靶场的初始化设置

这个容器默认是没初始化 SQLi-labs 数据库的,所以得自己初始化一下。

通过查看容器里面的配置文件,发现 MySQL 的 root 用户的密码为 ,相关版本的细节如下:(从图形界面中找到命令行,并输入以下命令)

mysql -e "select version(),user()"
php --version
cd /etc/init.d/ && apache2 -v
uname -a

HackBar的使用

GitHub - fengwenhua/hackbar_crack: hackbar 之 Firefox 学习版【一个GitHub的破解项目】

sql注入的相关知识

可以参考我的另一篇Blog

评论