渗透测试网站检查表

前期准备

0.侦查和分析

  • [ ]识别Web服务器和技术
  • [ ]枚举子域
  • [ ]目录枚举
  • [ ]查找泄漏的ID,电子邮件pwndb
  • [ ]识别WAF
  • [ ]在所有网站上搜寻有趣的关键字,例如密码,令牌等
  • [ ]测试调试参数
  • [ ]识别数据输入点
  • [ ]尝试找到/robots.txt /crossdomain.xml /clientaccesspolicy.xml /phpinfo.php /sitemap.xml和/.well-known/
  • [ ]查看有关源代码的注释
  • [ ]检查/.git
  • [ ]Shodan
  • [ ]Google dorking
  • [ ]检查waybackurls(gauwaybackurls
  • [ ]检查备份文件(bfac
  • [ ]找到管理员和登录面板

1.网络测试

  • [ ]检查允许的ICMP数据包
  • [ ]检查DMARC策略(欺骗检查)
  • [ ]在80和443以外的其他端口上查看服务
  • [ ]检查UDP端口(udp-proto-scanner或nmap)
  • [ ]测试SSLtestssl

2.准备

  • [ ]研究网站结构
  • [ ]列出所有可能的测试用例

用户管理

1.注册

  • [ ]重复注册
  • [ ]覆盖现有用户(现有用户接管)
  • [ ]用户名唯一
  • [ ]弱密码政策
  • [ ]电子邮件验证流程不足
  • [ ]实施注册功能薄弱或允许使用一次性电子邮件地址
  • [ ]创建用户后进行模糊检查,以检查是否有任何文件夹被覆盖或使用您的个人资料名称创建
  • [ ]仅在密码中添加空格

2.认证方式

  • [ ]用户名枚举
  • [ ]密码猜测能力
  • [ ]账户恢复功能
  • [ ]“记住我”功能
  • [ ]模拟功能
  • [ ]不安全的凭据分发
  • [ ]失效条件
  • [ ]多阶段机制
  • [ ]SQL注入
  • [ ]自动完成测试
  • [ ]更改电子邮件,密码或2FA时缺少密码确认
  • [ ]如果HTTP和HTTPS均可用,则登录功能较弱
  • [ ]暴力破解的用户帐户锁定机制
  • [ ]检查密码单词表(cewlburp-goldenNuggets
  • [ ]测试0auth的登录功能打开重定向
  • [ ]在SAML身份验证中测试响应篡改
  • [ ]在OTP中检查可猜测的代码和比赛条件
  • [ ]如果是JWT,请检查常见缺陷
  • [ ]浏览器缓存弱点(例如,语法,过期,最大年龄)

3.会话

  • [ ]会话处理
  • [ ]测试令牌的含义
  • [ ]测试令牌的可预测性
  • [ ]令牌传输不安全
  • [ ]日志中令牌的公开
  • [ ]令牌到会话的映射
  • [ ]会话终止
  • [ ]会话固定
  • [ ]跨站点请求伪造
  • [ ]Cookie范围
  • [ ]解码Cookie(Base64,十六进制,URL等)
  • [ ]Cookie有效期
  • [ ]检查HTTPOnly和安全标志
  • [ ]使用来自不同有效IP地址或系统的相同Cookie
  • [ ]访问控制
  • [ ]使用多个帐户进行控制的有效性
  • [ ]不安全的访问控制方法(请求参数,Referer标头等)
  • [ ]通过不同的机器/ IP检查并发登录
  • [ ]绕过AntiCSRF令牌
  • [ ]生成的安全性问题较弱
  • [ ]Cookie上的路径遍历

4.个人资料/帐户详细信息

  • [ ]查找具有用户ID的参数,并尝试篡改以获取其他用户的详细信息
  • [ ]创建仅与用户帐户有关的功能列表,然后尝试CSRF
  • [ ]更改电子邮件ID并使用任何现有的电子邮件ID更新。检查其是否在服务器上得到验证。
  • [ ]检查任何新的电子邮件确认链接,如果用户不确认该怎么办。
  • [ ]文件上传eicar,无大小限制,文件扩展名,过滤器绕过,brup扩展
  • [ ]CSV导入/导出:命令注入,XSS,宏注入
  • [ ]检查个人资料图片的网址并查找电子邮件ID /用户信息或EXIF地理位置数据
  • [ ]图片个人资料上传中的imagetragick
  • [ ]元数据的所有下载文件的
  • [ ]帐户删除选项,然后尝试使用“忘记密码”功能重新激活
  • [ ]更改任何用户唯一参数时,请尝试使用bruteforce枚举。
  • [ ]检查应用程序请求重新认证以进行敏感操作
  • [ ]尝试参数污染以将相同字段的两个值相加
  • [ ]检查其他角色政策

5.忘记密码

  • [ ]注销和重置密码时使会话无效
  • [ ]忘记密码重置链接/代码的唯一性
  • [ ]重置链接过期时间
  • [ ]在重置链接中找到用户ID或其他敏感字段并对其进行篡改
  • [ ]请求2个重置密码链接并使用较旧的
  • [ ]检查许多请求是否具有顺序令牌
  • [ ]使用email@burp_collab并分析回调

输入处理

  • [ ]模糊所有请求参数
  • [ ]识别所有反射数据
  • [ ]反射XSS
  • [ ]GET&POST(X转发主机)中的HTTP标头注入
  • [ ]任意重定向
  • [ ]储存攻击
  • [ ]操作系统命令注入
  • [ ]路径遍历,LFI和RFI
  • [ ]脚本注入
  • [ ]文件包含
  • [ ]SMTP注入
  • [ ]本机软件缺陷(缓冲区溢出,整数错误,格式字符串)
  • [ ]SOAP注入
  • [ ]LDAP注入
  • [ ]SSI注射
  • [ ]XPath注入
  • [ ]XXE在任何请求,改变内容类型为text / xml
  • [ ]存储的XSS
  • [ ]SQL注入
  • [ ]NoSQL的注入
  • [ ]HTTP请求走私
  • [ ]开放式重定向
  • [ ]代码注入
  • [ ]SSRF在以前发现的开放端口
  • [ ]xmlrpc.php DOS和用户枚举
  • [ ]HTTP危险方法选项删除
  • [ ]尝试发现隐藏的参数(arjunparameth

错误处理

  • [ ]访问自定义页面,如/whatever_fake.php(.aspx、.html等)
  • [ ]使用不同的值在GET和POST请求中添加多个参数
  • [ ]在Cookie值和参数值中添加“ []”,“]]”和“ [[”以创建错误
  • [ ]通过在URL末尾输入“ /〜randomthing /%s”来产生错误
  • [ ]在输入中使用Burp入侵者“ Fuzzing Full”列表来生成错误代码
  • [ ]尝试使用其他HTTP动词(例如PATCH,DEBUG)或错误的(例如FAKE)

应用逻辑

  • [ ]识别逻辑攻击面
  • [ ]通过客户端测试数据传输
  • [ ]测试对客户端输入验证的依赖
  • [ ]胖客户端组件(Java,ActiveX,Flash)
  • [ ]多阶段处理逻辑缺陷
  • [ ]处理不完整的输入
  • [ ]信任界限
  • [ ]交易逻辑
  • [ ]以电子邮件形式实施CAPTCHA以避免泛滥
  • [ ]篡改产品ID,价格或数量值的任何操作(添加,修改,删除,放置,支付…)
  • [ ]篡改礼物或折扣代码
  • [ ]重复使用礼品代码
  • [ ]尝试参数污染在同一请求中两次使用礼品代码
  • [ ]尝试将XSS存储在非受限字段(例如地址)中
  • [ ]检查付款表格中的CVV和卡号是否为纯文本或带掩码
  • [ ]检查是由应用本身处理还是发送到第三部分
  • [ ]其他用户的IDOR详细信息机票/购物车/货运
  • [ ]检查IDINT的PRINT或PDF创建
  • [ ]使用用户枚举检查退订按钮
  • [ ]社交媒体共享链接上的参数污染
  • [ ]CORS(corsy
  • [ ]将POST敏感请求更改为GET

其他检查

1.主机

  • [ ]共享基础架构中的隔离
  • [ ]ASP托管的应用程序之间的隔离
  • [ ]Web服务器漏洞
  • [ ]危险的HTTP方法
  • [ ]代理功能
  • [ ]虚拟主机配置错误
  • [ ]检查请求中的内部数字IP
  • [ ]检查外部数字IP并解决
  • [ ]测试存储
  • [ ]检查是否存在其他渠道(www.web.com与m.web.com)

2.验证码

  • [ ]发送旧的验证码值。
  • [ ]发送带有旧会话ID的旧验证码值。
  • [ ]请求验证码的绝对路径,例如www.url.com/captcha/1.png
  • [ ]使用任何adblocker删除验证码,然后再次请求
  • [ ]用OCR工具绕过(简单的一种

3.安全HTTP头

  • [ ]X-XSS-Protection
  • [ ]Strict-Transport-Security
  • [ ]Content-Security-Policy
  • [ ]Public-Key-Pins
  • [ ]X-Frame-Options
  • [ ]X-Content-Type-Options
  • [ ]Referer-Policy
  • [ ]Cache-Control
  • [ ]Expires