No title

关于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

启动比赛队伍数量.png

是一个全自动化的, 节约时间在搭建环境上, 专注于安全

4)启动比赛

4 表示 4 支队伍

1
python start.py ./ 4

也可以启动 check 脚本

但是这个check 好像用不了,嗯,反正也是练习,知道down 了就修就好了 0.0

1
sudo docker exec check_server python check.py

  1. 查看队伍网络映射情况

队伍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
2
3
4
5
http://flag服务器IP:端口/flag_file.php?token=队伍token&flag=获取到的flag 来获得相应的分数。

例如:flag server地址为8.8.8.8,端口为8080,队伍token为team1,flag为40ed892b93997142e46124516d0f5ac0,则请求http://8.8.8.8:8080/flag_file.php?token=team1&flag=40ed892b93997142e46124516d0f5ac0来获得相应分数。
每次成功攻击可获得2分,被攻击者扣除2分;有效攻击两分钟一轮;
选手需要保证己方服务的可用性,每次服务不可用,扣除1分,服务可用,加1分;服务检测两分钟一轮

查看攻击情况和当前分数

1
2
3
攻击情况url地址:http://flag服务器IP:端口/result.txt

得分情况地址:http://flag服务器IP:端口/score.txt

到这里,AWD环境也就基本差不多搭建好了(提交flag 还存在一些问题,比如不同的练习,要改flag,提交flag的不正确,flag并不是每两分钟刷新的,被攻击的队伍的分数也并不会减为负的). 当然还可以美化一下界面.

我这里就以练习为主了,能打出flag就行了,所以并不想修上面的一些问题( 懒

结束练习

1
sudo python stop_clean.py

Enjoy ~

Author: m0nk3y
Link: https://hack-for.fun/fa95.html
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.