
做 Web 安全培训时,缺一个能稳定复现 JWT 漏洞的练习靶场;安全工具测完,又缺一个统一基准来验证检出效果。本篇讲清一个为安全研究而生的故意脆弱应用——它把多类认证与接口缺陷打包成一个可运行的项目,方便在本地反复做漏洞验证和工具测试。关键词:brokencrystals
项目信息
| 项目名 | Broken Crystals |
| 仓库地址 | https://github.com/BrightSec/brokencrystals |
| 技术栈 | TypeScript / React / Node.js / NestJS / PostgreSQL |
| 运行平台 | 本地 Docker 环境(容器化一键启动) |
| 许可证 | MIT |
核心功能
- JWT 缺陷全家桶:通过多个认证端点集中演示算法绕过、签名失效、弱密钥等典型问题,一次搭好就能练完一整套 JWT 攻击面。
- 头部与密钥攻击场景:覆盖 KID、X5U、X5C、JKU 等与 JWT 头部、密钥发现相关的攻击路径,适合做安全培训的实战课件。
- 三套接口入口:服务端同时提供 REST、OpenAPI 与 GraphQL 接口,配套 Swagger 文档和 GraphiQL 调试台,手动探索与自动化测试都方便。
- 安全测试基准:内置 Jest 测试目录,可配合 SecTester 对部署后的目标地址执行自动化安全测试,验证工具检出能力。
- 完整应用形态:带 React Web 客户端,配合 Postgres 与 MailCatcher 组成接近真实业务的本地开发环境,漏洞场景有上下文、不孤立。
上手指南
- 按仓库 README 的容器化方式启动应用、Postgres 与 MailCatcher,默认应用地址为 localhost:3000。
- 先用 Swagger(REST)与 GraphiQL(GraphQL)把接口跑通,确认两套入口的认证流程。
- 对照 README 的漏洞场景清单,逐个在 JWT 端点上复现,记录请求与响应的差异点。
- 需要做工具基准测试时,配置 Bright API key 与 SEC_TESTER_TARGET 环境变量,再跑 Jest 测试目录。
同类对比:为什么选它做练习靶场
| 维度 | Broken Crystals | 通用靶场(如 DVWA) |
| 漏洞主题 | 聚焦 JWT 与 API 接口缺陷 | 覆盖 OWASP Top 10 通用漏洞 |
| 接口形态 | REST + GraphQL 双入口 | 多为传统表单/REST |
| 技术栈 | 现代前后端分离(React+NestJS) | 偏老旧技术栈 |
| 工具基准 | 原生支持 SecTester 自动化验证 | 多需自行编写测试脚本 |
如果你的目标就是 JWT 与接口安全这一块,这个项目的主题集中度明显更高;如果要练的是 XSS、SQL 注入这类通用漏洞,再去找通用靶场。
注意事项 / FAQ
这是真实业务系统能用的代码吗?
不是。这是故意植入高风险漏洞的基准应用,只用于安全研究、培训与工具验证,绝不能部署到公开网络或接入真实业务数据。
运行环境有什么要求?
项目面向本地 Docker 环境运行。跑 SecTester 自动化测试需要 Bright API key,并在环境变量里配置测试目标地址。
GraphQL 和 REST 的漏洞场景完全一样吗?
不完全一样。README 明确 GraphQL 尚未覆盖 REST 的全部端点,做对比测试时要以实际接口清单为准。
适合什么人练手?
适合安全工程师、应用安全团队、渗透测试人员,以及想理解认证实现常见错误的后端开发者。
适用人群
一句话:需要可控脆弱应用来做 JWT 与接口安全培训、工具验证的安全从业者与开发者。
开源地址
GitHub 国内访问较慢,如打不开可多刷新几次
推广

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
版权与使用提示
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›
文章推荐
标签推荐
正文完







