Skip to content

DVWA安全测试报告

1. 概述

1.1 目的

本测试报告为 DVWA(Damn Vulnerable Web Application) 安全测试项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求。预期参考人员包括用户、测试人员、开发人员、项目管理者和需要其他需要阅读本报告的人员。

1.2 背景

DVWA (Damn Vulnerable Web Application) 是一个故意设计成易受攻击的 Web 应用程序,用于帮助安全专业人员和开发者了解常见的 Web 应用安全漏洞。本测试针对 DVWA 的安全测试版本,着重评估系统对 OWASP Top 10 和其他常见漏洞的防护情况。

主要测试点和特性:

  1. 攻击模拟:模拟常见攻击(如 SQL 注入、跨站脚本、跨站请求伪造等)以评估系统对攻击的防范能力
  2. 输入验证:验证系统对用户输入的有效性和安全性检查
  3. 访问控制:评估系统对敏感信息和功能的访问控制机制
  4. 密码安全:检查系统对用户密码存储、传输和管理的安全性
  5. 弱点扫描:扫描系统以检测可能的漏洞和安全弱点

1.3 范围

1.3.1 测试阶段

  1. 漏洞评估:针对已知漏洞和 OWASP Top 10 进行评估,以确定系统的安全状况
  2. 渗透测试:模拟攻击并尝试利用系统的弱点,以验证漏洞的实际影响和攻击可能性
  3. 安全加固建议:提供关于修复漏洞和加强系统安全的建议

1.3.2 测试类型

  1. 漏洞评估:对系统进行全面的漏洞扫描和评估,包括主动和被动漏洞探测
  2. 渗透测试:模拟攻击以验证系统对不同类型攻击的抵抗能力
  3. 安全建议:提供系统安全加固和改进的建议,以改善系统的安全性和稳定性

1.4 引用文档

下表列出了执行测试过程所引用的文档:

文档名称 版本号 作者或来源 备注
DVWA 安全测试报告.doc v1.0 测试团队 正式报告
DVWA 安全测试计划.doc v1.0 测试团队 测试计划
DVWA 安全测试用例.md v1.0 测试团队 测试用例
DVWA 需求分析.md v1.0 需求团队 需求分析

2. 测试概要

2.1 测试环境

2.1.1 硬件环境

下表描述测试该项目所需要的硬件环境:

设备名称 数量 型号 配置 备注
功能测试机1 1 Dell OptiPlex CPU:AMD Ryzen 7 4800H
内存:16GB
硬盘:512GB SSD
主要测试环境
功能测试机2 1 HP EliteBook CPU:Intel i7-10750H
内存:16GB
硬盘:1TB SSD
备用测试环境
网络设备 1 Cisco Switch 千兆交换机 网络连接

2.1.2 软件环境

下表描述测试该项目所需要的软件环境:

软件名称 版本号 用途 备注
Windows 10 21H2 操作系统 测试环境
Chrome 118.0.5993.88 浏览器 Web测试
Firefox 119.0 浏览器 Web测试
Python 3.10.11 开发环境 脚本执行
sqlmap 1.7.11 安全测试工具 SQL注入测试
OWASP ZAP 2.12.0 安全测试工具 Web安全扫描
Burp Suite 2023.10 安全测试工具 渗透测试
DVWA 1.10 测试目标 安全测试平台

2.2 人力资源

下表列出了所有参与此项目的测试人员:

角色 资源数量/具体人员 具体职责或注释
测试经理/测试项目经理 1 进行管理监督。职责:提供技术指导、获取适当的资源、提供管理报告
测试设计员 1 确定测试用例、确定测试用例的优先级并实施测试用例。职责:生成测试计划、生成测试模型、评估测试工作的有效性
测试员 1 执行测试。职责:执行测试、记录结果、从错误中恢复、记录变更请求
测试系统管理员 1 确保测试环境和资产得到管理和维护。职责:管理测试系统、授予和管理角色对测试系统的访问权
数据库管理员 1 确保测试数据(数据库)环境和资产得到管理和维护。职责:管理测试数据(数据库)
安全专家 1 提供安全测试技术指导。职责:安全威胁分析、漏洞评估、修复建议

2.3 测试工作量

2.3.1 计划工作量

任务 开始时间 结束时间 总计(天数) 总计(人时)
计划
测试计划 2023-10-08 2023-10-08 1 8
测试设计 2023-10-08 2023-10-09 1 8
测试执行 2023-10-09 2023-10-14 5 40
测试总结 2023-10-14 2023-10-15 1 8
总计 8 64

2.3.2 实际工作量

任务 开始时间 结束时间 总计(天数) 总计(人时)
实际
测试计划 2023-10-08 2023-10-08 1 8
测试设计 2023-10-08 2023-10-09 1 8
测试执行 2023-10-09 2023-10-17 8 64
测试总结 2023-10-17 2023-10-17 1 8
总计 11 88

2.4 测试版本

版本 测试开始时间 测试结束时间 回归测试次数 备注
版本 1.0 2023-10-08 2023-10-17 2 初始版本
版本 1.1 2023-10-18 2023-10-20 1 修复版本

2.5 测试功能点列表

需求编号 功能点概述 用例个数 是否通过 备注
SEC-001 SQL注入攻击测试 20 发现11个SQL注入漏洞
SEC-002 XSS跨站脚本攻击测试 15 发现8个XSS漏洞
SEC-003 CSRF跨站请求伪造测试 10 发现5个CSRF漏洞
SEC-004 文件上传安全测试 8 发现3个文件上传漏洞
SEC-005 命令注入测试 5 发现2个命令注入漏洞
SEC-006 访问控制测试 12 发现6个访问控制漏洞
总计 70 发现35个安全漏洞

3. 测试结果及缺陷分析

3.1 测试数据统计汇总

测试阶段/模块 基线测试用例数(个) 变更测试用例数(个) 用例总数(个) 用例执行成功数(个) 用例执行失败数(个) 未执行用例数(个) 用例执行率(%) 用例执行成功率(%) Bug按时处理数(个) Bug超时处理数(个) Bug总数(个) Bug按时处理率(%) 用例产生Bug率(%)
SQL注入攻击测试 20 0 20 9 11 0 100% 45% 8 3 11 72.7% 55%
XSS攻击测试 15 0 15 7 8 0 100% 46.7% 6 2 8 75% 53.3%
CSRF攻击测试 10 0 10 5 5 0 100% 50% 4 1 5 80% 50%
文件上传测试 8 0 8 5 3 0 100% 62.5% 2 1 3 66.7% 37.5%
命令注入测试 5 0 5 3 2 0 100% 60% 1 1 2 50% 40%
访问控制测试 12 0 12 6 6 0 100% 50% 4 2 6 66.7% 50%
合计 70 0 70 35 35 0 100% 50% 25 10 35 71.4% 50%

3.2 缺陷统计分析

3.2.1 按缺陷级别统计

缺陷级别 数量 占比 描述
致命 8 22.9% 系统完全被攻破、数据完全泄露
严重 15 42.9% 重要功能被攻破、敏感数据泄露
一般 10 28.6% 部分功能存在安全风险
轻微 2 5.7% 安全配置不当、提示信息问题
总计 35 100%

3.2.2 按缺陷类型统计

测试阶段/模块 功能 性能 界面 文档 接口 安全
SQL注入攻击测试 0 0 0 0 0 11
XSS攻击测试 0 0 0 0 0 8
CSRF攻击测试 0 0 0 0 0 5
文件上传测试 0 0 0 0 0 3
命令注入测试 0 0 0 0 0 2
访问控制测试 0 0 0 0 0 6
合计 0 0 0 0 0 35

3.2.3 按OWASP Top 10分类统计

OWASP Top 10 缺陷数量 占比 严重程度分布
A01:2021 - 访问控制失效 6 17.1% 致命:2, 严重:3, 一般:1
A02:2021 - 加密失效 3 8.6% 严重:2, 一般:1
A03:2021 - 注入 13 37.1% 致命:4, 严重:6, 一般:3
A04:2021 - 不安全设计 2 5.7% 严重:1, 一般:1
A05:2021 - 安全配置错误 4 11.4% 严重:2, 一般:2
A06:2021 - 易受攻击和过时的组件 2 5.7% 严重:1, 一般:1
A07:2021 - 身份识别和身份验证失效 3 8.6% 致命:1, 严重:2
A08:2021 - 软件和数据完整性失效 1 2.9% 一般:1
A09:2021 - 安全记录和监控失效 1 2.9% 轻微:1
A10:2021 - 服务器端请求伪造 0 0%
总计 35 100%

3.3 详细缺陷分析

3.3.1 SQL注入漏洞分析

漏洞数量:11个 严重程度:致命4个,严重6个,一般1个 主要问题: - 用户输入未进行有效过滤和验证 - 直接拼接SQL语句,未使用参数化查询 - 错误信息泄露数据库结构信息 - 缺乏输入长度限制

典型漏洞示例: - 用户ID查询功能存在SQL注入:1' OR '1'='1 - 联合查询注入:1' UNION SELECT username,password FROM users-- - 布尔盲注:1' AND (SELECT COUNT(*) FROM users)>0--

3.3.2 XSS漏洞分析

漏洞数量:8个 严重程度:致命2个,严重4个,一般2个 主要问题: - 用户输入未进行HTML编码 - 缺乏CSP(内容安全策略)保护 - 反射型XSS和存储型XSS并存 - 事件处理器XSS未过滤

典型漏洞示例: - 搜索功能反射型XSS:<script>alert('XSS')</script> - 评论功能存储型XSS:<img src=x onerror=alert('XSS')> - 编码绕过XSS:%3Cscript%3Ealert('XSS')%3C/script%3E

3.3.3 CSRF漏洞分析

漏洞数量:5个 严重程度:致命1个,严重3个,一般1个 主要问题: - 缺少CSRF Token验证 - 敏感操作未进行二次确认 - 缺乏Referer检查 - 会话管理不当

典型漏洞示例: - 用户信息修改CSRF攻击 - 密码修改CSRF攻击 - 权限提升CSRF攻击

3.4 残留缺陷汇总

缺陷ID 缺陷标题 严重程度 状态 原因
SEC-001 用户查询SQL注入漏洞 致命 未修复 需要重构输入验证逻辑
SEC-002 搜索功能XSS漏洞 严重 未修复 需要实现HTML编码
SEC-003 用户信息修改CSRF漏洞 严重 未修复 需要添加CSRF Token
SEC-004 文件上传安全漏洞 严重 未修复 需要加强文件类型检查
SEC-005 命令注入漏洞 致命 未修复 需要重构命令执行逻辑

4. 测试结论与建议

4.1 测试结论

4.1.1 整体评估

  • 安全等级:低(存在大量高危漏洞)
  • 测试覆盖率:100%(覆盖所有安全功能模块)
  • 漏洞发现率:高(发现35个安全漏洞)
  • 修复完成率:28.6%(10个漏洞已修复)

4.1.2 主要发现

  1. SQL注入漏洞:存在于用户输入的不当过滤,导致数据库中的数据容易受到恶意攻击
  2. XSS漏洞:用户输入未进行有效编码,存在跨站脚本攻击风险
  3. CSRF漏洞:缺少跨站请求伪造防护机制
  4. 文件上传漏洞:文件上传功能存在安全风险
  5. 命令注入漏洞:系统命令执行存在注入风险
  6. 访问控制漏洞:权限控制机制存在缺陷

4.1.3 系统局限性

DVWA在某些方面存在一些设计上的限制,可能导致安全风险和性能瓶颈:

  • 故意设计:DVWA本身就是故意设计成易受攻击的应用程序
  • 教学目的:主要用于安全学习和测试,不是生产环境应用
  • 功能限制:某些安全功能可能被故意弱化以便于测试

4.2 安全建议

4.2.1 立即修复建议

  1. SQL注入防护
  2. 使用参数化查询替代字符串拼接
  3. 实施输入验证和过滤
  4. 限制数据库用户权限
  5. 实施SQL注入检测和防护

  6. XSS防护

  7. 对所有用户输入进行HTML编码
  8. 实施CSP(内容安全策略)
  9. 使用安全的输出编码
  10. 实施XSS过滤器

  11. CSRF防护

  12. 实施CSRF Token验证
  13. 检查Referer头
  14. 敏感操作二次确认
  15. 使用SameSite Cookie属性

4.2.2 安全加固建议

  1. 输入验证
  2. 实施严格的输入验证规则
  3. 使用白名单验证方法
  4. 限制输入长度和格式
  5. 实施输入过滤和清理

  6. 访问控制

  7. 实施最小权限原则
  8. 加强身份认证机制
  9. 实施会话管理安全
  10. 定期权限审查

  11. 数据保护

  12. 实施数据加密存储
  13. 使用HTTPS传输
  14. 实施数据备份和恢复
  15. 加强数据访问控制

4.2.3 监控和检测

  1. 安全监控
  2. 实施安全事件监控
  3. 建立安全告警机制
  4. 定期安全扫描
  5. 实施入侵检测

  6. 日志管理

  7. 完善安全日志记录
  8. 实施日志分析
  9. 建立日志审计机制
  10. 保护日志完整性

4.3 质量评估

4.3.1 测试质量

  • 测试用例质量:优秀(覆盖全面,设计合理)
  • 测试执行质量:良好(执行规范,记录完整)
  • 缺陷报告质量:优秀(描述详细,复现清晰)
  • 测试报告质量:良好(分析深入,建议实用)

4.3.2 改进建议

  1. 测试方法改进
  2. 增加自动化测试比例
  3. 实施持续安全测试
  4. 加强安全测试工具使用
  5. 建立安全测试标准

  6. 团队能力提升

  7. 加强安全测试培训
  8. 提升安全威胁识别能力
  9. 加强安全工具使用技能
  10. 建立安全测试知识库

4.4 最终结论

本版本于 2023 年 10 月 17 日完成测试,客户端安全未达到上线标准,遗留问题请尽快修复。

主要问题: - 存在35个安全漏洞,其中8个致命漏洞 - SQL注入、XSS、CSRF等关键漏洞未修复 - 系统安全防护机制不完善 - 需要全面的安全加固

建议: - 立即修复致命和严重漏洞 - 实施全面的安全加固措施 - 建立持续安全监控机制 - 加强安全测试和评估

点击下载测试报告