2024年最全搭建CTF-AWD训练平台_by hence zhang@lancet,2024年最新熬夜整理最新大厂C C++高频面试题

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

Flag 提交: 172.17.0.6:80/flag_file.php?token=teamx&flag=xxxx (x为你们的队伍号)
比赛规则(新):

1.每个队伍分配到一个docker主机,给定ctf用户权限,通过制定的端口和密码进行连接;

2.每台docker主机上运行一个web服务或者其他的服务,需要选手保证其可用性,并尝试审计代码,攻击其他队伍;

3.比赛开始后,前30分钟,选手维护各自的主机,在这个阶段,所有的攻击和服务不可用不影响分数;

4.选手可以通过使用漏洞获取其他队伍的服务器的权限,读取他人服务器上的flag并提交到指定的flag服务器:

http://flag服务器IP:端口/fflag_file.php?token=队伍token&flag=获取到的flag 来获得相应的分数。

例如:flag server地址为8.8.8.8,端口为8080,队伍token为team1,flag为40ed892b93997142e46124516d0f5ac0,则请求http://8.8.8.8:8080/fflag_file.php?token=team1&flag=40ed892b93997142e46124516d0f5ac0来获得相应分数。

每次成功攻击可获得2分,被攻击者扣除2分;有效攻击两分钟一轮;

5.选手需要保证己方服务的可用性,每次服务不可用,扣除1分,服务可用,加1分;服务检测两分钟一轮;

6.选手可以从flag服务器上获取所有的攻击情况以及当前的分数:

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

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

7.不允许使用任何形式的DOS攻击
比赛规则(旧):

1.每个队伍分配到一个docker主机,给定ctf用户权限,通过制定的端口和密码进行连接;

2.每台docker主机上运行一个web服务或者其他的服务,需要选手保证其可用性,并尝试审计代码,攻击其他队伍;

3.比赛开始后,前30分钟,选手维护各自的主机,在这个阶段,所有的攻击和服务不可用不影响分数;

4.选手可以通过使用漏洞获取其他队伍的服务器的权限,并在他人服务器上请求如下地址:

http://flag服务器IP:端口/flag.php?token=队伍token来获得相应的分数。

例如:flag server地址为8.8.8.8,端口为8080,队伍token为team1,则请求http://8.8.8.8:8080/flag.php?token=team1来获得相应分数。

每次成功攻击可获得2分,被攻击者扣除2分;有效攻击两分钟一轮;

5.选手需要保证己方服务的可用性,每次服务不可用,扣除1分,服务可用,加1分;服务检测两分钟一轮;

6.选手可以从flag服务器上获取所有的攻击情况以及当前的分数:

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

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

7.不允许使用任何形式的DOS攻击

配置

下载成功之后进入项目目录

cd awd-platform

项目目录,其中的web_xxxx为awd赛题
在这里插入图片描述
下载docker镜像

sudo docker pull zhl2008/web_14.04

紧接着就是修改docker镜像的名称(不改名称的话请去修改代码)

sudo docker tag zhl2008/web_14.04 web_14.04

然后就可以按照文档里面的说明进行操作
在这里插入图片描述
例如:我创建两个队伍,使用的赛题是web_yunnan_simple

python batch.py web_yunnan_simple 2

启动比赛

python start.py ./ 2

check模块有问题的,不能正常使用,需要的可以自行依据赛题环境修改check代码,规则大概是文件存在check通过,不存在check失败扣分。
在这里插入图片描述
然后就会在项目根目录下会生成以队伍名称命名的目录
在这里插入图片描述
靶机端口映射规则

team1 - 8801
team2 - 8802
...

ssh端口映射规则

team1 - 2201
team2 - 2201
...

ssh连接密码awd-platform/pass.txt

team1:ctf:6f1704cbabd4e013bcdbd979665f2a9b
team2:ctf:ab0253740d7974fefb474f2f7e2da2c9

至此,赛题环境全部搭建起来了,下面是效果演示:
web界面
在这里插入图片描述
ssh 登陆
在这里插入图片描述
提交flag
在这里插入图片描述
初始分数榜(如果提交flag之后分数没有变,请修改score.txt的权限),有点low,可以自己写一个排行榜。
在这里插入图片描述
比较懒直接使用dalao@夜莫离的模板直接修改了。
在这里插入图片描述
比赛或者练习结束之后,需要清除docker环境,可以使用下面的命令(注:初始项目执行会直接删除所有的CONTAINER,需要自己修改代码,血的教训)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

一个awd攻防比赛的裁判平台。 版本:beta v2.0 开发语言:python3 + django 平台分为两个部分 裁判机 靶机 通过特定接口,来实现靶机flag与服务器的通信 搭建流程 裁判机 安装所需环境 裁判机:python3+django 全局搜索woshiguanliyuan,并修改为随机字符串,此处为管理平台地址 /untitled/urls.py path('woshiguanliyuan/',views.admin,name='admin'), path('woshiguanliyuan/table/',views.admin_table,name='admin_table'), /app/views.py if 'woshiguanliyuan' not in request.META['HTTP_REFERER']: 第31和47换为你的目录 列:("/var/www/awd_platform/app/qwe.txt","a") 修改app/management/commands/init.py,添加用户 #['用户名','用户靶机token','用户靶机token'] user=[ ['123456','FF9C92C7SDFABB71566F73422C','FF9C92C7SDFABB71566F73422C'], ['aaabbb','311F8A54SV9K6B5FF4EAB20536','311F8A54SV9K6B5FF4EAB20536'] ] 修改/app/views.py第行d89f33b18ba2a74cd38499e587cb9dcd为靶机中设置的admin_token值的md5 if('d89f33b18ba2a74cd38499e587cb9dcd'==hl.hexdigest()): 运行 python3 manage.py init python3 manage.py manage.py runserver --insecure 靶机 安装所需环境 靶机:python+requests 修改send_flag.py参数,并将其放入靶机,设权限700。 靶机 sudo python send_flag.py。 靶机生成flag脚本,send_flag.py import requests import time import random import string import hashlib token='woshiwuxudong' # 红队 baji='311F8A54SV9K6B5FF4EAB20536' def getFlag(): #return ''.join(random.sample(string.ascii_letters + string.digits, 48)) m = hashlib.md5(''.join(random.sample(string.ascii_letters + string.digits, 48)).encode(encoding="utf-8")).hexdigest() return m while(1): f=open('/flag','w') flag=getFlag() f.write(flag) data={ 'flag':flag, 'token':token, 'baji':baji, } r=requests.post('http://127.0.0.1/caipanflag/',data=data) print(r.text) f.close() time.sleep(300) 重要须知 更新作者基础上: 1.增加flag验证一次性失效性,使得每个用户都并且仅可以提交一次flag 2.增加排名情况 3.flag改为MD5 4.增加丢失flag一轮扣100分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值