漏洞赏金Web渗透测试Checklist
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/sehno/Bug-bounty/blob/master/bugbounty_checklist.md
Web 应用程序的错误赏金清单
这份清单可能会帮助您找到一个很好的漏洞赏金狩猎方法。
当您完成一项操作时,请不要忘记检查 ;)
狩猎愉快!
目录
侦察通配符域
- 大量运行
- 运行子查找器
- 运行资产查找器
- 运行 dnsgen
- 运行马赛克
- 使用httprobe
- 运行aquatone(活着的宿主截图)
单域
扫描
- Nmap扫描
- Burp爬虫
- ffuf(目录和文件模糊测试)
- hakrawler/gau/paramspider
- Linkfinder
- 带有 Android 应用程序的 URL
人工检查
- Shodan
- Censys
- Google dorks
- Pastebin
- Github
- 开源情报
信息收集
- 手动浏览网站
- 蜘蛛/抓取丢失或隐藏的内容
- 检查公开内容的文件,例如 robots.txt、sitemap.xml、.DS_Store
- 检查主要搜索引擎的缓存以查找可公开访问的站点
- 检查基于用户代理的内容差异(例如,移动站点,作为搜索引擎爬虫访问)
- 执行 Web 应用程序指纹识别
- 确定使用的技术
- 识别用户角色
- 确定应用程序入口点
- 识别客户端代码
- 识别多个版本/渠道(例如网络、移动网络、移动应用程序、网络服务)
- 确定共同托管和相关应用程序
- 识别所有主机名和端口
- 识别第三方托管内容
- 识别调试参数
配置管理
- 检查常用的应用程序和管理 URL
- 检查旧的、备份的和未引用的文件
- 检查支持的 HTTP 方法和跨站点跟踪 (XST)
- 测试文件扩展名处理
- 测试安全 HTTP 标头(例如 CSP、X-Frame-Options、HSTS)
- 测试策略(例如 Flash、Silverlight、机器人)
- 在实时环境中测试非生产数据,反之亦然
- 检查客户端代码中的敏感数据(例如 API 密钥、凭据)
安全传输
- 检查 SSL 版本、算法、密钥长度
- 检查数字证书的有效性(期限、签名和 CN)
- 检查仅通过 HTTPS 传送的凭据
- 检查登录表单是否通过 HTTPS 传送
- 检查仅通过 HTTPS 传送的会话令牌
- 检查是否使用了 HTTP 严格传输安全 (HSTS)
验证
- 测试用户枚举
- 验证绕过测试
- 测试暴力破解保护
- 测试密码质量规则
- 测试记住我的功能
- 测试密码表单/输入的自动完成
- 测试密码重置和/或恢复
- 测试密码更改过程
- 测试验证码
- 测试多因素身份验证
- 测试注销功能是否存在
- 测试 HTTP 上的缓存管理(例如 Pragma、Expires、Max-age)
- 测试默认登录
- 测试用户可访问的身份验证历史记录
- 测试帐户锁定和密码更改成功的通道外通知
- 使用共享身份验证模式/SSO 测试跨应用程序的一致身份验证
会话管理
- 建立会话管理在应用程序中的处理方式(例如,cookie 中的令牌、URL 中的令牌)
- 检查 cookie 标志的会话令牌(httpOnly 和安全)
- 检查会话 cookie 范围(路径和域)
- 检查会话 cookie 持续时间(过期和最大年龄)
- 在最大生命周期后检查会话终止
- 在相对超时后检查会话终止
- 注销后检查会话终止
- 测试用户是否可以同时进行多个会话
- 测试会话 cookie 的随机性
- 确认在登录、角色更改和注销时发出新的会话令牌
- 使用共享会话管理测试跨应用程序的一致会话管理
- 测试会话令人费解
- 测试 CSRF 和点击劫持
授权
- 测试路径遍历
- 测试绕过授权模式
- 测试垂直访问控制问题(又名特权升级)
- 测试水平访问控制问题(在同一权限级别的两个用户之间)
- 测试是否缺少授权
数据验证
- 反射跨站脚本测试
- 测试存储的跨站脚本
- 测试基于 DOM 的跨站脚本
- 测试跨站闪烁
- 测试 HTML 注入
- 测试 SQL 注入
- 测试 LDAP 注入
- ORM注入测试
- 测试 XML 注入
- XXE 注射剂测试
- SSI 注射测试
- XPath 注入测试
- 测试 XQuery 注入
- 测试 IMAP/SMTP 注入
- 测试代码注入
- 表达式语言注入测试
- 命令注入测试
- 溢出测试(堆栈、堆和整数)
- 测试格式字符串
- 测试孵化漏洞
- 测试 HTTP 拆分/走私
- 测试 HTTP 动词篡改
- 测试打开重定向
- 测试本地文件包含
- 测试远程文件包含
- 比较客户端和服务器端验证规则
- 测试 NoSQL 注入
- HTTP参数污染测试
- 测试自动绑定
- 质量分配测试
- 测试 NULL/无效会话 Cookie
拒绝服务
- 反自动化测试
- 测试帐户锁定
- 测试 HTTP 协议 DoS
- 测试 SQL 通配符 DoS
商业逻辑
- 测试功能滥用
- 缺乏不可否认性测试
- 测试信任关系
- 数据完整性测试
- 测试职责分离
密码学
- 检查应加密的数据是否未加密
- 根据上下文检查错误的算法使用情况
- 检查弱算法的使用
- 检查是否正确使用盐腌
- 检查随机函数
有风险的功能 - 文件上传
- 测试可接受的文件类型是否已列入白名单
- 测试是否定义并强制执行文件大小限制、上传频率和文件总数
- 测试文件内容是否与定义的文件类型匹配
- 测试所有上传的文件是否都进行了反病毒扫描。
- 测试不安全的文件名是否被清理
- 测试上传的文件不能在 web 根目录中直接访问
- 测试上传的文件是否在同一主机名/端口上提供服务
- 测试文件和其他媒体是否与身份验证和授权模式集成
有风险的功能 - 卡支付
- 测试 Web 服务器和 Web 应用程序上的已知漏洞和配置问题
- 测试默认或可猜测的密码
- 在实时环境中测试非生产数据,反之亦然
- 测试注入漏洞
- 测试缓冲区溢出
- 测试不安全的加密存储
- 测试传输层保护不足
- 测试错误处理不当
- 测试 CVSS v2 分数 > 4.0 的所有漏洞
- 测试身份验证和授权问题
- CSRF测试
HTML 5
- 测试网络消息
- 测试 Web Storage SQL 注入
- 检查 CORS 实施
- 检查离线 Web 应用程序
资料来源:
OWASP
标签:学习笔记, 渗透测试思路