Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SecureCodingDojo — Secure Coding Dojo 是一个用于传授安全编码知识的平台。 | Kitploit
工具/GitHubGitHub/owasp/securecodingdojo
漏洞分析代码分析Web安全CTF渗透测试DevSecOps身份验证学习与教育实验室与实践
GitHubowasp/securecodingdojo

SecureCodingDojo

Secure Coding Dojo 是一个用于传授安全编码知识的平台。

查看仓库
6071599个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

关于 Secure Coding Dojo

Secure Coding Dojo 是一个用于提供安全编码培训的平台。 虽然它自带存在漏洞的培训应用(Insecure.Inc 网站),但该培训门户也可以与其他培训应用结合使用。 该平台的优势在于其可扩展性,以及与常用的开发协作平台 Slack 的集成。 培训门户可以轻松地在云中设置,AWS Elastic Beanstalk 的设置说明见下文。

请务必也查看 wiki,了解有关部署和安装 Dojo 的更多详细信息。

演示

下载 demo 以体验培训门户和 Insecure.Inc 应用。

还可以查看 /screenshots 替代文本

试用

以下步骤将为你提供 Dojo 的基本配置。有关高级配置和集成,请查看 wiki

  • 安装最新版本的 Docker。

  • git clone 该仓库

  • 切换到仓库根目录

  • 配置一个环境变量 DATA_DIR 作为 dojo 文件的挂载点。在 *nix/mac 系统上,按如下方式修改 .bash_profile

    export DATA_DIR="/YOUR_DATA_DIR"

  • 在 Mac 上,你必须在 Docker > Preferences > File Sharing 中允许 Docker 访问此目录

  • 重启你的终端

  • 使用以下命令运行

    docker-compose up

为什么还需要另一个安全培训网站?

用于教授应用安全概念的开源培训网站并不新鲜,但这些网站的目标受众一直是渗透测试人员和道德黑客。 Secure Coding Dojo 主要旨在作为面向开发人员的交付平台,原因如下:

  • 它与 Slack 集成以进行身份认证
  • 它允许根据参与者的开发团队对其进行分组
  • 它允许团队跟踪进度并相互竞争
  • 每个课程都构建为攻击/防御对。开发人员可以通过执行攻击来观察软件弱点,并在解决挑战后学习相关的软件防御(代码块)
  • 预定义课程基于 MITRE 最危险的软件错误(也称为 SANS 25),因此重点是软件错误而非攻击技术
  • 预定义的黑客挑战为入门级而设,并使开发人员保持参与
    • 在其他培训网站或 CTF 中,挑战带有谜题性质,这对渗透测试人员受众来说很棒,但可能会让一些开发人员失去兴趣。在 Secure Coding Dojo 中,重点是演示漏洞。
    • 提供了一些提示,帮助开发人员在利用问题时不至于卡住。

SecureCodingDojo 与合规性要求

虽然我们不保证合规性,但该培训可用于满足 PCI 6.5.a 等合规性要求。请参阅 Insecure.Inc 课程文档中关于映射到 SANS 25/ OWASP Top 10 / PCI 6.5 的内容。

开发前置要求

培训门户

  • 安装 VS Code
  • node/npm(使用 v10 开发)
  • 可选:MySQL 服务器 + MySQL Workbench(使用 MySQL 5.7 开发)

Insecure.Inc

  • 使用 Java EE 开发
  • 使用最新版本的 Eclipse Java EE(使用 Neon 开发)+ Java 1.8 + Tomcat 8,用于 Insecure.Inc 培训应用

开发环境设置说明

培训门户

  • 更多详细信息请参阅 wiki

Insecure.inc

  • 更多详细信息请参阅 wiki

构建

培训门户

  • 运行 ./buildTrainingPortal.sh 脚本。它将构建一个 Docker 镜像和一个 AWS Elastic Beanstalk 包

Insecure.Inc

  • 右键单击项目,将其导出为 .war 文件,然后放入你的 Tomcat 8 安装目录的 /webapps 文件夹中。

托管 Insecure.Inc

请查看 wiki。

部署培训门户

更多信息请参阅 wiki。

Slack 设置说明

你需要创建一个 Slack 应用用于身份认证。

  • 前往 https://api.slack.com/
  • 点击 Start Building,然后按照提示在你的开发 Slack 团队中创建一个 Slack App
  • 应用创建完成后,你将能够获取你的 App Credentials(应用凭据)来配置你的 config.json
  • 在 OAuth & Permissions 下配置重定向 URL。例如,对于 localhost 设置,重定向 URL 为:http://localhost:8081/public/slack/callback

Google 设置说明

也可以在 config.json 中配置 Google 身份认证。你需要一个 Google 开发者帐户,并从 Google API 控制台获取 OAuth 凭据:https://console.developers.google.com

在同一个地方,你将设置你的域和授权重定向 URI。例如,对于 localhost 设置,重定向 URL 为:http://localhost:8081/public/google/callback

本地身份认证设置说明

对于小型团队或预配置镜像,Slack 或 Google 身份认证可能不可用。对于这种场景,你可以配置使用本地平面文件进行身份认证。

查看 wiki 以了解更多信息。

  • 将 localUsers.json.sample 复制为 localUsers.json
  • 在 config.json 中添加指定 localUsersPath 的行
  • 本地身份认证存在一些注意事项,例如缺少帐户锁定、密码过期等。

数据库设置说明

如果你不配置数据库,培训门户将仅使用本地 SQLite 数据库。

你也可以安装 MySQL,并为此数据库创建数据库和凭据。请注意你的用户名和密码,稍后需要用到。

加密密钥种子和环境变量

你必须将加密密钥设置为操作系统环境变量。在 *nix/mac 系统上,按如下方式修改 .bash_profile

root@kitploit:~
export ENC_KEY="put something random here"
export ENC_KEY_IV="put something random here"

以下内容用于防止参与者自行生成挑战代码。

root@kitploit:~
export CHALLENGE_MASTER_SALT="put something random here"

扩展 Secure Coding Dojo

你可以按照现有课程的模式添加新课程。

挑战

挑战定义在 ./trainingportal/static/lessons 中 文件 definitions.json 通过代码块 ID 指向相应的 HTML 挑战描述、播放链接和相应的代码块。 按照已定义的示例创建新挑战。

root@kitploit:~
.
+-- /trainingportal/static/lessons
|   +-- modules.json //configuration file where lesson modules are defined
|   +-- /attack-grams //visual representations of attacks included in challenge descriptions
|   +-- /blackBelt //lesson module
|       +--definitions.json //individual lesson definitions
|       +--cwe494.md // html or markdown file including the lesson description
|       +--cwe494.sol.md //solution for the lesson
|       ....
|       +--quiz.html 
|   +-- /secondDegreeBlackBelt

代码块

代码块定义在 ./trainingportal/static/codeBlocks 中。此文件夹具有类似的结构,包含一个定义 JSON 和每个挑战的一组 HTML 文件。

root@kitploit:~
.
+-- /trainingportal/static/codeBlocks
|   +-- codeBlocksDefinitions.json //configuration file where code blocks are defined
|   +-- authenticationByDefault.html //code block description html
|   ...
|   +-- useStrongDataEncryption.html
下载工具