Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

基于docker运行在单机上的awd平台,仅适用于小规模的队内练习使用

Notifications You must be signed in to change notification settings

imagemlt/tinyAWDplatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

37 Commits

Repository files navigation

tinyAWDplatform

基于docker运行在单机上的awd平台,仅适用于小规模的队内练习使用.

技术架构:

依赖:

  • flask
  • flask_wtf
  • flask_redis
  • redis
  • docker

使用方法

  • 运行
python serve.py

启动web服务,或者使用gunicorn启动:

gunicorn -b 127.0.0.1:5000 serve:app
  • 运行
python docker_serv.py

启动docker管理进程

  • 运行
python flag_serv.py

启动flag服务进程

  • 运行 python manager.py init_manager username password可添加一个管理员账号
  • 访问/admin即可登录,之后可添加用户等等

题目镜像要求

示例镜像dockerfile: https://github.com/susers/tinyAWD_chals

  • 开放ssh服务,并添加config.py中指定的user
  • 提供启动指令与更新flag指令,启动指令默认为空,只针对某些特殊镜像使用;其中更新flag指令中flag可以写flag{test},程序运行中将替换为flag,例: /bin/bash -c "echo flag{test}>/flag"
  • 镜像中起ssh服务的操作方法可以参考2018年ciscn buildit的模板https://github.com/CyberPeace/ciscn2018-template
  • 建议镜像最好可以直接不用添加命令参数启动

flag提交接口

请求/flag?from=攻击id&flag=YOUR FLAG即可,其中攻击id为登陆后个人信息栏的攻击id

配置文件说明

配置文件位于config.py,需要修改的地方有:

  • SECRET_KEY, 使用默认值可能会导致cookie伪造等。
SECRET_KEY = os.environ.get('SECRET_KEY') or '\xb1\xca\xb2\x00P\xd0\x14#\xff0\xe50d\x88\xc3\xf5\xcc\x90W!\x96\xf8%U'
  • 数据库,如果想要使用mysql或者其他数据库需修改此配置
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///{}/ctfd.db'.format(basedir)
  • redis连接地址,最好为redis添加密码以防未授权访问
 REDIS_URL='redis://localhost:6379/0'
  • docker_config相关
docker_config={
 'redis_host':'localhost',# redis相关配置
 'redis_port':6379,
 'redis_db':0,
 'redis_password':None,
 'baseurl':'unix://var/run/docker.sock', # docker api 连接地址,尽量避免未授权访问
 'network_name':'awd_test', # docker network名称
 'network_prefix':'192.25', # ip地址段
 'flag_prefix':'SUSCTF', # flag前缀
 'expire':60, # flag不能重复提交的锁定时间,尽量>=flag更新时间间隔,单位为秒
 'time_interval':60, # 多长时间换一轮flag,单位为秒
 'ssh_user':'ciscn' # ssh用户名,需要与题目镜像中的相同
}

tips

  • 目前版本尽量不要同一浏览器内同时登录管理员和用户
  • 由于某些队伍界面的接口直接从redis中获取数据,所以服务启动后请先登录管理员
  • 正式环境最好使用gunicorn启动
  • redis最好添加密码
  • 如有搭建问题请详询本人(QQ1223530366)

About

基于docker运行在单机上的awd平台,仅适用于小规模的队内练习使用

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /