awd文件服务器,AWD线下环境手册.md

AWD线下环境启动说明

by Hence Zhang @Lancet

###比赛的环境介绍:

服务器全部以docker形式部署在同一台虚拟机上。

Check_server:

服务检查服务器,用于判定选手维护的服务是否可用,如果不可用,则会扣除相应的分数。不开启任何端口。需要与flag服务器通信。

Flag_server:

选手提交flag的服务器,并存储选手的分数。开启80端口。

Web_server:

选手连接的服务器,选手需要对其进行维护,并尝试攻击其他队伍的机器。通常开启80端口,22端口,并将端口映射到主机。

比赛逻辑拓扑:

%E6%AF%94%E8%B5%9B%E5%85%A5%E5%8F%A3%E6%9C%8D%E5%8A%A1%E5%99%A8.png

比赛启动

1.根据当前队伍数量copy所有的队伍的比赛文件夹: python batch.py web_dir team_number

​for example: python batch.py web_server 5

2.启动比赛:python start.py ./ team_number

​for example: python start.py ./ 5

3.启动check脚本:

​docker attach check_server

​python check.py

比赛参数

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服务器:

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

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

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

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

比赛规则(旧):

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

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

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

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

例如: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服务器上获取所有的攻击情况以及当前的分数:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个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分
以下是一个简单的Python脚本示例,可用于监控目录中的AWD文件,并在发现新文件时发送电子邮件通知: ```python import os import time import smtplib from email.mime.text import MIMEText # 监控目录 watch_dir = '/path/to/watchdir' # 接收通知的电子邮件地址 notify_email = '[email protected]' # SMTP服务器信息 smtp_server = 'smtp.email.com' smtp_port = 587 smtp_username = '[email protected]' smtp_password = 'your_password' # 上次检查的文件列表 last_files = set() while True: # 获取目录中的所有AWD文件 all_files = set() for filename in os.listdir(watch_dir): if filename.endswith('.awd'): all_files.add(filename) # 检查是否有新文件 new_files = all_files - last_files if new_files: # 发送电子邮件通知 msg = MIMEText('New AWD files found: %s' % ', '.join(new_files)) msg['Subject'] = 'AWD file notification' msg['From'] = smtp_username msg['To'] = notify_email server = smtplib.SMTP(smtp_server, smtp_port) server.ehlo() server.starttls() server.login(smtp_username, smtp_password) server.sendmail(smtp_username, notify_email, msg.as_string()) server.quit() # 更新上次检查的文件列表 last_files = all_files # 等待一段时间后再继续检查 time.sleep(60) ``` 要使用此脚本,请将“watch_dir”变量设置为要监视的目录的路径,并将“notify_email”变量设置为您要接收通知的电子邮件地址。还需要将SMTP服务器信息和凭据设置为正确的值。 然后,运行脚本并让它在后台运行。每当新的AWD文件出现在监视目录中时,您将通过电子邮件收到通知。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值