关于CTF 线下赛的一些科普:
https://ctf-wiki.github.io/ctf-wiki/introduction/mode-zh/
平台项目地址
https://github.com/zhl2008/awd-platform
by Hence Zhang @Lancet
网络拓扑结构
环境搭建流程
1)下载平台文件到云服务器
1 | git clone https://github.com/zhl2008/awd-platform |
2)切换到目录下awd-platform目录下 pull docker 镜像
1 | cd awd-platform |
1 | sudo docker pull zhl2008/web_14.04 |
1 | sudo docker tag zhl2008/web_14.04 web_14.04 |
这里用 tag 改名,由docker 源码中的名字决定
3)建立队伍
比如,这里建立web_yunnan_simple 这个赛题,启用4支队伍
1 | python batch.py web_yunnan_simple 4 |
是一个全自动化的, 节约时间在搭建环境上, 专注于安全
4)启动比赛
4 表示 4 支队伍
1 | python start.py ./ 4 |
也可以启动 check 脚本
但是这个check 好像用不了,嗯,反正也是练习,知道down 了就修就好了 0.0
1 | sudo docker exec check_server python check.py |
- 查看队伍网络映射情况
队伍ID | 靶机地址 |
---|---|
Team 1 | VPS ip:8081 |
Team 2 | VPS ip:8082 |
Team 3 | VPS ip:8083 |
Team 4 | VPS ip:8084 |
Flag bot | VPS ip:8080 |
SSH 密码在项目文件夹下的 pass.txt 中
队伍ID | SSH端口号 |
---|---|
team1 | 2201 |
team2 | 2202 |
team3 | 2203 |
team4 | 2204 |
在项目的
flag_server
中,要设置score.txt 和 result.txt 777 权限, 进行分数变化同步
flag 提交方式:
1 | VPS ip:8080/flag_file.php?token=teamx&flag=**** (x 为队伍号) |
新的比赛规则中
1 | http://flag服务器IP:端口/flag_file.php?token=队伍token&flag=获取到的flag 来获得相应的分数。 |
查看攻击情况和当前分数
1 | 攻击情况url地址:http://flag服务器IP:端口/result.txt |
到这里,AWD环境也就基本差不多搭建好了(提交flag 还存在一些问题,比如不同的练习,要改flag,提交flag的不正确,flag并不是每两分钟刷新的,被攻击的队伍的分数也并不会减为负的). 当然还可以美化一下界面.
我这里就以练习为主了,能打出flag就行了,所以并不想修上面的一些问题( 懒
结束练习
1 | sudo python stop_clean.py |
Enjoy ~