基于docker运行在单机上的awd平台,仅适用于小规模的队内练习使用
基于docker运行在单机上的awd平台,仅适用于小规模的队内练习使用.
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
config.py
中指定的userflag{test}
,程序运行中将替换为flag,例:
/bin/bash -c "echo flag{test}>/flag"
请求/flag?from=攻击id&flag=YOUR FLAG
即可,其中攻击id为登陆后个人信息栏的攻击id
配置文件位于config.py
,需要修改的地方有:
SECRET_KEY = os.environ.get('SECRET_KEY') or '\xb1\xca\xb2\x00P\xd0\x14#\xff0\xe50d\x88\xc3\xf5\xcc\x90W!\x96\xf8%U'
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///{}/ctfd.db'.format(basedir)
REDIS_URL='redis://localhost:6379/0'
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用户名,需要与题目镜像中的相同
}