⚠️ 故意存在漏洞。仅在本地运行。切勿暴露到互联网或共享网络。
其他语言版本: Português (Brasil)
里程碑 — v1.0: atomicvulns 现已覆盖 OWASP Top 10 2021 全部十个类别(A01–A10),共 38 个原子。参见 v1.0 发布。
atomicvulns 是一系列原子化 Web 应用——每一个都小巧、隔离,并专注于 OWASP Top 10 中的单一漏洞。每个原子都附带漏洞应用、修复版本、两者之间带注释的 diff,以及动手实操的漏洞利用演练。
这不是另一个 DVWA 或 Juice Shop。单体漏洞应用早已存在。atomicvulns 的独特之处在于:每个缺陷一个应用,阅读快、探索快。你无需先理解整个应用,就能梳理代码成因 → 请求/响应 → 漏洞利用。
OWASP Top 10 2021 全部十个类别均已覆盖——共 38 个原子:
| 类别 | 原子 |
|---|---|
| A01 — 失效的访问控制 | idor-numeric-id, path-traversal-basic, idor-uuid-guessable, bola-rest, csrf-basic, open-redirect, mass-assignment |
| A02 — 加密机制失效 | jwt-none-alg, jwt-weak-secret, jwt-key-confusion, crypto-weak-hash, crypto-ecb-mode |
| A03 — 注入 | sqli-union-basic, xss-reflected, sqli-blind-boolean, sqli-blind-time, xss-stored, command-injection-basic, ssti-jinja, xss-dom, nosql-injection-mongo, ldap-injection, sqli-second-order |
| A04 — 不安全设计 | race-condition-basic |
| A05 — 安全配置错误 | xxe-basic, xxe-blind-oob, debug-enabled, cors-wildcard |
| A06 — 易受攻击和过时的组件 | cve-demo |
| A07 — 身份识别和认证失败 | session-fixation, weak-password-reset |
| A08 — 软件和数据完整性失败 | deserialization-pickle, prototype-pollution, deserialization-node |
| A09 — 安全日志记录和监控失败 | logging-failures-demo |
| A10 — 服务器端请求伪造(SSRF) | ssrf-basic, ssrf-blind-oob, ssrf-cloud-metadata |
已经掌握 HTTP 和终端基础知识、使用(或正在学习使用)Burp Suite,并希望拥有一个专注实验环境的渗透测试学生和 AppSec 学习者,其中每个练习都足够短,可以一次完成。这些材料是为将在渗透测试职业生涯中应用这些知识的人编写的——Burp 是主要工具,UI 只是背景。
每个原子位于 atoms/A0X-<category>/<atom-id>/ 下自己的文件夹中,并附带一个 docker-compose.yml。根目录的包装脚本 ./atom 负责驱动它们:
./atom list # show all available atoms
./atom up <atom-id> # start the vulnerable + fixed pair
./atom down <atom-id> # stop and remove containers
./atom doctor # sanity-check your local setup
例如,启动第一个原子:
./atom up sqli-union-basic
# vulnerable → http://127.0.0.1:8001
# fixed → http://127.0.0.1:8101
每个原子仅绑定到 127.0.0.1。切勿更改这一点——这些应用是故意设计为存在漏洞的。
基于 MIT 许可证 发布。如果你将此仓库 fork 用于教学材料,必须注明出处。