本次使用的环境

Linux kali 5.3.0-kali2-amd64 #1 SMP Debian 5.3.9-3kali1 (2019-11-20) x86_64 GNU/Linux
docker
docker-compose
mysql #kali自带的mysql,需要自己启动
注:docker docker-compose必须要有,不然后面搭建靶机不成功。

使用的Cardina版本

https://github.com/vidar-team/Cardinal/releases
在这里插入图片描述

使用的靶机

https://github.com/glzjin/20190511_awd_docker
在这里插入图片描述

先将文件下载到本地,然后通过Xshell上传到kali上

用Xshell连接kali,可以先创建一个文件夹,
mkdir AWD
然后进入文件夹
cd AWD
上传并解压刚刚下载的Cardina
上传:rz
解压:tar -zxvf Cardinal_v0.7.3_linux_amd64.tar.gz
在这里插入图片描述

给Cardinal权限:chmod +x Cardinal

启动MySQL,创建数据库

启动数据库service mysql start
登入数据库mysql -u root -p
如果密码忘了或者没有密码的话,可以先改个密码
alter user ‘root’@‘localhost’ identified by ‘newpassword’;
newpassword是要设的新密码。
如果提示设置成功,则输入: flush privileges; 。完成后Ctrl+Z退出mysql,使用新密码重新登录即可。
在这里插入图片描述
创建数据库:
CREATE DATABASE cardinal DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查看是否创建成功:
show databases;
在这里插入图片描述

搭建Cardinal平台

运行Cardinal

./Cardinal
在这里插入图片描述
在这里插入图片描述

根据提示选择安装即可

是否自行另外部署前端?(true / false,默认值:false)
这里必须选择false,不然后面会出错。看个人需求来把,建议选择默认
注:如果使用的是服务器,必须保证需要使用的端口是在控制台打开的,不然无法访问。(虚拟机kali不用管)
IP:19999端口是选手登入页面
IP:19999/manager 是管理员页面

登入后台

IP:19999端口是选手登入页面
IP:19999/manager 是管理员页面
eg:192.168.137.133:19999/manager(kali的IP)

管理后台

添加队伍并保存密码

在这里插入图片描述

添加题目,设置可见

在这里插入图片描述

更新Flag Shell:
echo {{FLAG}} > /flag
在根目录创建flag文件,并写入东西。
根据需要更改比赛名称,flag标识
在这里插入图片描述

靶机搭建

https://github.com/glzjin/20190511_awd_docker

下载并解压

像之前一样把文件下载到本地然后上传到虚拟机
在这里插入图片描述

解压:unzip 20190511_awd_docker-master.zip
在这里插入图片描述

文件名太长,那就把文件名重新命名一下
mv 20190511_awd_docker-master web1_1

容器搭建

进入 web1_1
修改 docker-compose.yml 文件
在这里插入图片描述

修改前:
在这里插入图片描述

修改后:
在这里插入图片描述

启动docker

docker-compose up -d --build
在这里插入图片描述

ps:如果出现以下报错,原因可能是因为端口被占用所以导致容器无法启动,可能是被正在运行的容器占用了端口,可以通过修改端口或者停止正在运行的容器的方法解决。
在这里插入图片描述

查看docker
查看镜像:docker images
查看正在运行的容器:docker ps
在这里插入图片描述

访问靶机

IP:8801
在这里插入图片描述

获取docker容器的SSH root用户密码

docker exec -it 容器id passwd
在这里插入图片描述

此密码也是该靶机的root用户密码

在cardinal上部署靶机

添加靶机

在这里插入图片描述

选择题目和队伍,IP为靶机IP,端口为靶机端口,密码为刚刚设置的靶机密码。
注意的是这里的Flag SSH 就是我们设定的容器root的账户密码,必须要有足够的权限,因为这里需要写入flag进容器。如果权限不够,无法写入Flag

测试ssh连接

在这里插入图片描述

生成flag

在这里插入图片描述
在这里插入图片描述

说明:一个动态的flag,如果不是后台被拿下,选手是不可能提前知道flag的

查看选手登入账号和密码

在这里插入图片描述
在这里插入图片描述
账号是glzjin 密码是123456

测试连接

用Xshell连接靶机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
切换为root用户之后,可以看到flag。
本文借鉴:
https://cloud.tencent.com/developer/article/1744139

https://www.yuque.com/docs/share/b5d53ae0-08dd-45bc-bfb0-3b7c446c87b5?#%20%E3%80%8AAWD%E5%B9%B3%E5%8F%B0%E6%90%AD%E5%BB%BA%E3%80%8B

https://www.yuque.com/docs/share/8a945ec3-3126-4bd0-ad05-9a5acddb8ed6?#kLE8Y

后续

1.忘记后台管理员密码的解决方法

假如不小心忘记了Cardinal的管理员密码,或者登入不了,可以删除创建的cardinal数据库,然后重新建立一个cardinal数据库,这样就可以重新设置管理员账号。

2.更改数据库密码、比赛开始和结束的时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.未开启数据库导致报错

在这里插入图片描述

Logo

更多推荐