介绍

此备忘录提供了在Web应用程序的黑盒安全测试期间要执行的检查列表。

目的

此列表旨在用作经验丰富的测试人员的备忘录,并建议与OWASP测试指南一起使用。

清单

信息收集

网站审查

  • 手动探索网站
  • 蜘蛛/抓取错误或隐藏的内容
  • 检查Web服务器文件以查找泄露内容的信息,例如robots.txt,sitemap.xml,.DS_Store
  • 利用搜索引擎发现/侦察检测信息泄露
  • 根据用户不同页面检查内容的差异(例如,移动网站,利益搜索引擎爬虫访问)
  • 检查信息泄漏的网页评论和METADATA数据

目标发展历史

  • 检查Web应用程序框架
  • 检查 Web应用程序指纹识别
  • 确定使用的技术
  • 识别用户角色
  • 确定应用程序入口点
  • 识别客户端使用的代码
  • 识别多个版本/渠道(例如网络,移动网络,移动应用程序)

业务托管平台审查

  • 确定Web服务
  • 确定共同托管和相关的应用程序
  • 确定所有主机名称和端口
  • 识别第三方托管的内容

配置管理

  • 检查常用的应用程序和管理网址
  • 检查旧的,备份和未被引用的文件
  • 检查支持的HTTP方法和跨站点跟踪(XST)
  • 测试文件扩展名处理
  • 测试RIA跨域策略
  • 测试HTTP headers信息(例如CSP,X-Frame-Options,HSTS)
  • 测试配置策略(例如Flash,Silverlight,robots)
  • 检查客户端代码中的敏感数据(例如API密钥,相关认证信息)

安全传输

协议和加密

  • 检查SSL版本,算法,密钥长度
  • 检查数字证书有效期(持续时间,签名)
  • 检查仅通过HTTPS传递的凭据
  • 检查登录表单是否通过HTTPS传送
  • 检查仅通过HTTPS传递的会话令牌
  • 检查是否使用HTTP严格传输安全(HSTS)
  • 测试伪造请求的能力
  • 测试Web消息(HTML5)
  • 检查CORS跨域信息(HTML5)

Web服务和REST

  • 测试Web服务问题
  • 测试REST

认证

应用程序密码功能

  • 测试密码质量规则
  • 测试记住我的功能
  • 测试密码重置/找回功能
  • 测试密码更改过程
  • 测试CAPTCHA
  • 测试多因素认证
  • 测试存在注销的功能
  • 测试默认登录
  • 测试帐户锁定和成功密码更改的消息
  • 使用共享身份验证模式/ SSO和备用渠道测试跨应用程序的身份一致性验证
  • 测试弱安全问题/答案

额外的认证功能

  • 测试用户枚举
  • 测试旁路验证
  • 测试暴力破解保护
  • 测试通过加密通道传输的凭证
  • 在HTTP上测试缓存管理(例如Pragma,Expires,Max-age)
  • 测试用户可访问的认证历史

会话管理

  • 确定如何在应用程序中处理会话管理(例如,Cookie中的令牌,URL中的令牌)
  • 检查会话令牌的cookie标志(httpOnly和secure)
  • 检查会话cookie作用域(路径和域)
  • 检查会话cookie持续时间(过期和最大限度)
  • 在最长使用期限后检查会话终止
  • 检查会话超时后会话相对终止
  • 注销后检查会话终止
  • 测试用户是否可以同时进行多个会话
  • 测试会话cookie的随机性
  • 确认在登录,角色更改和注销时发出新的会话令牌
  • 使用共享会话管理测试跨应用程序的一致会话管理
  • 测试会议令人困惑
  • 测试CSRF和点击劫持

鉴权

  • 测试路径遍历
  • 测试垂直访问控制问题(也称为权限提升)
  • 测试水平访问控制问题(在相同级别的两个用户之间越权)
  • 测试缺少的鉴定机制
  • 测试不安全的直接对象引用

加密

  • 检查应该加密的数据是否加密
  • 根据上下文检查错误的算法使用情况
  • 检查弱算法的使用情况
  • 检查是否正确使用盐分
  • 检查随机性功能

数据验证

注入

  • 测试HTML注入
  • 测试SQL注入
  • 测试LDAP注入
  • 测试ORM注入
  • 测试XML注入
  • 测试XXE注入
  • 测试SSI注入
  • 测试XPath注入
  • 测试XQuery注入
  • 测试IMAP / SMTP注入
  • 测试代码注入
  • 表达式语言注入测试
  • 测试命令注入
  • 测试NoSQL注入

其他

  • 测试反射跨站点脚本
  • 测试存储的跨站脚本
  • 测试基于DOM的跨站点脚本
  • 测试跨站点闪烁
  • 测试溢出(堆栈,堆和整数)
  • 测试格式字符串
  • 测试组合攻击的漏洞
  • 测试HTTP拆分
  • 测试HTTP Verb Tampering
  • 测试打开重定向
  • 测试本地文件包含
  • 测试远程文件包含
  • 比较客户端和服务器端验证规则
  • 测试HTTP参数污染
  • 测试自动绑定
  • 测试Mass Assignment
  • 测试NULL /无效会话Cookie
  • 测试数据的完整性
  • 测试工作流程的规避
  • 测试防止应用程序被误用
  • 测试一个功能或特性不能用于限制之外
  • 测试过程时间
  • Web存储SQL注入测试(HTML5)
  • 检查离线Web应用程序

拒绝服务

  • 测试反自动化
  • 测试帐户锁定
  • 测试HTTP协议DoS
  • 测试SQL通配符DoS

特定的风险功能

文件上传

  • 测试可接受的文件类型是否列入白名单,并且是否列入非白名单类型将被拒绝
  • 测试文件大小的限制,上传频率和总文件数量的定义和执行
  • 测试文件内容是否与定义的文件类型匹配
  • 测试所有文件上传是否具有反病毒扫描。
  • 测试上传的恶意文件
  • 测试不安全的文件名是否被清理
  • 测试上传的文件能不能直接在Web根目录下访问
  • 测试上传的文件在不在相同的主机名/端口上
  • 测试文件和其他媒体是否与身份验证和授权模式集成

支付

在Web服务器和Web应用程序上测试已知的漏洞和配置问题

  • 测试默认或可猜测的密码
  • 测试注入漏洞
  • 测试缓冲区溢出
  • 测试不安全的密码存储
  • 测试传输层保护不足
  • 测试不正确的错误处理
  • 测试CVSS v2得分> 4.0的所有漏洞
  • 测试身份验证和授权问题
  • 测试CSRF

错误处理

  • 检查错误代码
    检查堆栈

 

收集自SecPulse安全脉搏