matthaioum/WebGoat-Security-Assessment
GitHub: matthaioum/WebGoat-Security-Assessment
一份基于 GitHub CodeQL 对 OWASP WebGoat 进行静态安全分析的实践报告,记录了 XXE、SSRF、不安全反序列化和 SQL 注入等漏洞的发现与修复方案。
Stars: 0 | Forks: 0
# WebGoat 安全评估 — CodeQL 静态分析
**课程:** 计算机安全与数据保护
**学期:** 第 4 学期
**学生:** Marinos Matthaiou — inf2023004
**日期:** 2025 年 5 月
## 关于本仓库
本仓库包含了我对 [OWASP WebGoat](https://github.com/WebGoat/WebGoat) 的个人安全评估报告,这是一个由 OWASP 维存的、故意设计为不安全的 Java Web 应用程序,用于学习常见的 Web 应用程序漏洞。
**注意:** WebGoat 本身不是我的作品——它是 OWASP 的一个开源项目。对于本次作业,我克隆了官方仓库,在其上启用了 GitHub 的 Code Scanning(CodeQL 分析),并基于分析结果生成了下方的漏洞报告。
## 完成的工作
1. 克隆了官方的 [WebGoat/WebGoat](https://github.com/WebGoat/WebGoat) 仓库
2. 通过 GitHub Security 标签页启用了 Code Scanning,使用了 CodeQL 分析工作流
3. 审查并记录了已识别的关键和高严重性漏洞
4. 针对每个漏洞:确定了其 CWE 分类,解释了利用场景,并提出了具体的代码级修复方案
## 识别出的漏洞
| 严重性 | 漏洞 | CWE | 位置 |
|----------|---------------|-----|----------|
| Critical | XML External Entity Injection (XXE) | CWE-611 | `src/xxe/CommentsCache.java:79` |
| Critical | Server-Side Request Forgery (SSRF) | CWE-918 | `src/ssrf/SSRFTask2.java:36` |
| Critical | Insecure Deserialization | CWE-502 | `src/vulnerablecomponents/VulnerableComponentsLess.java:42`, `src/deserialization/InsecureDeserializationTask.java:45` |
| High | SQL Injection | CWE-89 | `src/mitigation/Servers.java:51` |
| High | SQL Injection | CWE-89 | `src/introduction/SqlInjectionLesson8.java:62` |
完整的详细信息——包括代码片段、利用场景和修复方案——都在 [`Report.pdf`](Report.pdf) 中。
## 关键要点
- 诸如 CodeQL 之类的静态分析工具能够发现严重的、可利用的漏洞(SQL injection、XXE、insecure deserialization),如果不采用安全编码实践,这些漏洞很容易被引入。
- 这些问题大多数都有直接且成熟的修复方案:针对 SQL injection 使用参数化查询(`PreparedStatement`),针对 XXE 禁用外部实体解析,以及针对 insecure deserialization 进行对象输入过滤。
- 安全审查应贯穿整个开发生命周期,而不仅仅是事后补充。
## 工具
- [OWASP WebGoat](https://github.com/WebGoat/WebGoat) — 目标应用程序
- GitHub Code Scanning / CodeQL — 静态分析引擎
标签:CISA项目, CodeQL, JS文件枚举, Web安全, 反取证, 安全专业人员, 安全评估, 安全评估工具, 蓝队分析, 错误基检测, 静态代码分析