首页
社区
课程
招聘
[原创]CTF训练平台CTFD源码路由简析
发表于: 2021-5-25 21:00 9401

[原创]CTF训练平台CTFD源码路由简析

2021-5-25 21:00
9401

CTFD源码路由简析

源地址:CTFd

 

框架:Flask

 

尝试用flask搭建CTF训练平台,先参照CTFD整理了路由,具体功能的实现还没有分析(在看了在看了

 

框架

根目录:

1
2
3
4
5
6
7
8
9
10
__init__.py
 
class CTFdRequest(Request):劫持原始的Flask请求路径
class CTFdFlask(Flask):覆盖的Jinja构造函数设置一个自定义的jinja_environment
class SandboxedBaseEnvironment(SandboxedEnvironment):模仿Flask BaseEnvironment的SandboxEnvironment。
class ThemeLoader(FileSystemLoader):主题结构和配置  
#小收获
#关于import numpy 和 from numpy import *
#不推荐使用import \*,其没有明确地指出你使用了模块中的哪些类。
#并且,如果导入了一个与程序文件中其他东西同名的类,会引发难以发现的错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
auth.py
 
#确认配置模块
@auth.route("/confirm", methods=["POST", "GET"])
#注册模块
@auth.route("/register", methods=["POST", "GET"])
#登录模块
@auth.route("/login", methods=["POST", "GET"])
#注销模块
@auth.route("/logout")
#修改密码模块
@auth.route("/reset_password", methods=["POST", "GET"])
#配置
@auth.route("/oauth")
 
challenges.py
#题目信息页
@challenges.route("/challenges", methods=["GET"])
 
config.py
#具体配置信息
 
error.py
#意外报错信息
 
scoreboard.py
#计分板
@scoreboard.route("/scoreboard")
 
teams.py
#队伍创建,加入,邀请等细节处理
@teams.route("/teams")
 
user.py
#用户信息
@users.route("/users")
 
views.py
#项目部署时比赛信息的设置
@views.route("/setup", methods=["GET", "POST"])
 
config.ini
#配置文件,自带完整的注释

/admin:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
__init__.py
#验证管理员身份
@admin.route("/admin", methods=["GET"])
 
#配置config.html
@admin.route("/admin/plugins/<plugin>", methods=["GET", "POST"])
 
#导入admin配置
@admin.route("/admin/import", methods=["POST"])
#导出admin配置
@admin.route("/admin/export", methods=["GET", "POST"]):
#重置CTFD实例
@admin.route("/admin/reset", methods=["GET", "POST"])
 
challenges.py
#challenges管理
@admin.route("/admin/challenges")
 
notifications.py
# 公告管理
@admin.route("/admin/notifications")
 
pages.py
#新建页面
 
scoreboard.py
# 记分牌页面
@admin.route("/admin/scoreboard")
 
statistics.py
# 后台统计数据
@admin.route("/admin/statistics", methods=["GET"])
 
submissions.py
# 队伍提交记录的页面
@admin.route("/admin/submissions", defaults={"submission_type": None})
 
teams.py
#队伍信息详情
@admin.route("/admin/teams")
 
users.py
#用户信息界面
@admin.route("/admin/users")

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-5-26 13:57 被kon_Inten编辑 ,原因: 补充图片
收藏
免费 3
支持
分享
最新回复 (1)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
师傅您好,我最近也在看CTFd源码,在网上看到了师傅的帖子,不知道师傅后续有没有继续研究呢,想和师傅交流一下,万分感谢!
2022-1-13 16:16
0
游客
登录 | 注册 方可回帖
返回