信息收集:手动浏览站点
用于查找丢失或隐藏内容的爬行器
检查是否存在公开内容的文件,如robots.txt、sitemap.xml、.DS_Store检查主要搜索引擎的缓存中是否存在可公开访问的站点
检查基于用户代理的内容差异(例如,移动站点、作为搜索引擎爬虫的访问)
执行Web应用程序指纹
识别使用的技术识别用户角色
确定应用程序入口点
识别客户端代码
识别多个版本/渠道(例如web、移动web、移动应用程序、web服务)
确定共同托管和相关的应用程序
识别所有主机名和端口
识别第三方托管的内容
配置管理:
检查常用的应用程序和管理URL
检查旧文件、备份文件和未引用文件
检查支持的HTTP方法和跨站点跟踪(XST)
测试文件扩展名处理
测试安全HTTP头(例如CSP、X-Frame-Options、HST)
政策测试(例如flash、Silverlight、机器人)
在实时环境中测试非生产数据,反之亦然
检查客户端代码中的敏感数据(例如API密钥、凭据)
安全传输:
检查SSL版本、算法、密钥长度
检查数字证书的有效性(过期时间、签名和CN)
检查仅通过HTTPS传递的凭据
检查登录表单是否通过HTTPS传递
检查仅通过HTTPS传递的会话令牌
检查是否正在使用HTTP严格传输安全性(HSTS)
身份验证:
用户枚举测试
身份验证旁路测试
强力保护试验
测试密码质量规则
测试“remember me”功能
密码表单/输入上的自动完成测试
测试密码重置和/或恢复
测试密码更改过程
测试验证码
测试多因素身份验证
测试是否存在注销功能
HTTP上的缓存管理测试(例如Pragma、Expires、Max age)
测试默认登录名
测试用户可访问的身份验证历史记录
测试帐户锁定和成功更改密码的通道外通知
使用共享身份验证架构/SSO测试应用程序之间的一致身份验证
会话管理:
确定应用程序中如何处理会话管理(例如,Cookie中的令牌、URL中的令牌)
检查会话令牌的cookie标志(httpOnly和secure)
检查会话cookie作用域(路径和域)
检查会话cookie持续时间(过期和最长期限)
在最长生存期后检查会话终止
检查相对超时后的会话终止
注销后检查会话终止
测试用户是否可以同时拥有多个会话
随机性测试会话cookie
确认在登录、角色更改和注销时发布了新会话令牌
使用共享会话管理跨应用程序测试一致的会话管理
会话困惑测试
CSRF和clickjacking测试
Authorization:
路径遍历测试
绕过授权架构的测试
垂直访问控制问题测试(又称权限提升)
水平访问控制问题测试(在相同权限级别的两个用户之间)
缺少授权的测试
数据安全测试:
反射式跨站点脚本测试
测试存储的跨站点脚本
基于DOM的跨站点脚本测试
跨场地泛水试验
HTML注入测试
SQL注入测试
LDAP注入测试
ORM注射试验
XML注入测试
XXE注射试验
SSI注入试验
XPath注入测试
XQuery注入测试
IMAP/SMTP注入测试
代码注入测试
表达式语言注入测试
命令注入测试
溢出测试(堆栈、堆和整数)
测试孵化的漏洞
HTTP拆分/走私测试
HTTP动词篡改测试
开放重定向测试
本地文件包含测试
远程文件包含测试
比较客户端和服务器端验证规则
NoSQL注射试验
HTTP参数污染测试
自动绑定测试
质量分配测试
测试是否存在空/无效的会话Cookie
拒绝服务测试:
反自动化测试
帐户锁定测试
HTTP协议DoS测试
SQL通配符DoS的测试
业务逻辑:
功能误用测试
不可否认性测试
信任关系测试
数据完整性测试
测试职责分离
加密技术:
检查应加密的数据是否未加密
根据上下文检查错误的算法用法
检查弱算法的使用情况
检查是否正确使用salt
检查随机性函数
风险功能-文件上传:
测试文件大小限制、上载频率和文件总数是否已定义并强制执行
测试文件内容是否与定义的文件类型匹配
测试所有文件上传是否有防病毒扫描。
测试是否清除了不安全的文件名
测试上载的文件在web根目录中不能直接访问
测试上传的文件是否不在同一主机名/端口上提供
测试文件和其他媒体是否与身份验证和授权模式集成
风险功能-支付:
测试Web服务器和Web应用程序上的已知漏洞和配置问题
测试默认密码或可猜测密码
在实时环境中测试非生产数据,反之亦然
测试注入漏洞
缓冲区溢出测试
不安全加密存储的测试
测试传输层保护是否不足
测试错误处理是否不当
测试CVSS v2分数>4.0的所有漏洞
验证和授权问题的测试
CSRF测试
HTML 5:
测试Web消息传递
Web存储SQL注入测试
检查CORS的实现
检查脱机Web应用程序