- 实现能通过
checker.py
检查的web程序,确保基本功能完整,web程序实现示例在template
文件夹下,使用docker-compose
一键启动即可 - 必须包含预设的Web应用安全漏洞(创新性安全挑战即为对预设安全漏洞的某种检测和利用技巧),不限制Web应用安全漏洞类型
- 用户注册、登录和找回密码功能需要实现人机识别验证码的特性,其中人机识别验证码必须采用附件中的验证码数据集;
- 业务逻辑上设计防止“薅羊毛”的特性,植入创新性网络安全挑战,比如必须要进行某些绕过防止“薅羊毛”特性的攻击操作后,才能到达漏洞利用条件(如某些高等级用户才具备的功能特性,其中才包含网络安全挑战预设安全漏洞)
- 采用PHP/Python/Java等语言实现,运行在Apache或Nginx等Web服务器;后段必须有数据库,如mysql、sqlite、mongodb等
- 赛题环境提供
Dockerfile
+docker-compose
容器环境,主办方使用docker-compose up -d
启动选手提供的环境(docker环境内初始只包含源码,不要node_modules,mysql data之类的数据,运行命令写入Dockerfile,由Docker自动编译和运行) - web端口统一为 80,不要使用其他端口
- Flag可即时更新,不接受固定Flag的赛题,在文档中提供更新flag的命令,
sed -i 's/CISCN{xxxx}/CISCN{123456}/g' flag.php
格式为CISCN{xxxxxxxflag}
template
文件夹为题目格式模板deploy
文件夹为部署环境,使用docker打包www
文件夹下为完整源码,不需要包含数据文件requirement.pip
模板程序运行所需要的依赖包Dockerfile
与docker-compose.yml
按照要求,使用docker打包
writeup.md
完整的解题步骤,如果需要使用exp则必须包含expREADME.md
题目的完整说明,包括功能介绍等
checker
文件夹为功能检查脚本脚本ans
目录为验证码答案文件checker.py
为进行校验的检查脚本,通过通过则没有任何报错且打印xxx Success
,出现Failed
或Exception
则说明功能检查未通过
- checker主要检查以下功能(基本功能,必须实现)
- 用户(登录 / 注册 / 修改密码 / 重置密码 / 邀请注册)
- 商品(商品列表 / 购物车 / 结算 / 限时秒杀)
- checker 程序支持自定义csrf name
- checker 程序通过验证返回页面中是否存在
class="alert alert-success"
与class="alert alert-danger"
的div
内容判断功能是否正常,数据操作功能则通过验证操作前后数据变化进行检查,如购买商品后检查用户积分是否减少或商品数量是否减少
在 checker 程序中提供了一份路由列表
登录: /login
注册: /register
登出: /logout
重置密码: /pass/reset
修改密码: /user/change
用户信息: /user
商品列表: /shop
商品信息: /info/(id)
结账: /pay
秒杀活动: /seckill
购物车: /shopcar
加入购物车: /shopcar/add
验证码: /captcha
基本功能应遵循该路由,否则 checker 程序可能将检查失败
各个请求参数应遵循checker脚本中所提交的参数,可以进行功能与参数扩展,不允许删减功能与参数
程序进行功能性操作时,应显示操作成功与失败提示,遵循checker校验规则
资金或商品操作时,校验操作后的资金额度与商品数量是否减少
消息成功与失败应使用类为 alert alert-sucess
和 alert alert-danger"
的div
提示
模板程序为 tornado
+ sqlite
的商城应用程序
模板程序启动时将填充一部分测试数据,启动后可直接使用 checker 程序进行功能校验
基本功能已经实现基本逻辑,可在此基础上进行完善
不限开发框架,语言,Web服务器,数据库,必须存在数据库交互
基于以上要求,实现自己的电商应用场景