| 姓名 | GitHub | 电子邮件 | 网站 | |
|---|---|---|---|---|
| Keyvan Arasteh | @keyvanarasteh | [email protected] | keyvanarasteh | qline.tech |
| 姓名 | 学号 |
|---|---|
| Batuhan Seydi Çelik | 2520****1006 |
| 课程名称 | 课程代码 | 学分 | 先修条件 | 学期 |
|---|---|---|---|---|
| 渗透测试与漏洞分析 | BGT006 | 3 ECTS | 网络基础、Linux CLI | 2025-2026 春季 |
本项目旨在以教育目的分析 CVE-2023-4863(libwebp 堆缓冲区溢出)漏洞,并实践展示在防御(蓝队)方面如何检测系统中的此类异常。
此漏洞直接影响了许多网络生态系统:
ReadHuffmanCodes 函数在内存中为表格分配了过少的空间。BuildHuffmanTable)过程中,发生越界写入(Out-Of-Bounds Write),写入超过已分配内存的范围。根据安全原则,系统中不包含真实的、武器化的红队代码(exploit)。漏洞以结构化的方式进行测试。
src/blue_team/webp_scanner.py:静态检查 WebP 数据块(chunk)结构,检测异常大小。src/blue_team/WebpValidator.java:模拟文件上传场景的 Java 防御性代码示例,使用快速失败(fail-fast)机制阻止大小伪造,并在处理损坏文件时不会崩溃(不抛出异常)。src/red_team/poc.py:不含真实 payload 的测试生成器,但故意报告 60MB 的伪造 chunk 大小,用于测试蓝队分析工具是否能够触发告警。libwebp-1.3.1 构建的完全隔离实验室环境。通过 analyze_memory.sh 脚本执行 Valgrind 动态分析,检查内存错误(Invalid Write)。安全发现通过创建的 JSON logger 基础设施记录,并通过 src/public 目录下的 Blue Team Dashboard(HTML/JS/CSS)进行异步、实时可视化。
