Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

渗透测试方法

本指南汇总常见的 Web/APP 渗透测试思路与检查点,包含认证鉴权、信息泄露、文件操作、输入验证、逻辑漏洞、组件安全与其他辅助测试方法与推荐工具。

目录


一、认证鉴权

1. 用户/密码

  • 测试用户名是否可被穷举或猜解(弱口令、默认账号)。
  • 登陆/注册/找回密码功能测试:判断是否有信息回显或异常提示泄露用户存在性。
  • 批量注册保护:批量注册是否存在缺乏校验的情况(是否有验证码、频率限制等)。
  • 密码在传输/存储阶段是否被明文处理:抓包查看 Password 字段是否为明文或可逆加密。
  • 修改密码流程是否验证旧密码:尝试在不知旧密码的情况下修改密码,判断是否存在逻辑缺陷。

2. 二次验证

  • 判断是否存在短信验证码、动态口令(TOTP)等二次验证机制。
  • 验证码有效性检测:判断后端对验证码的校验与前台是否一致(工具:Burp 插件建议:captcha-killer-modified)。 1

3. Cookie

  • 本地 Cookie 是否包含敏感信息(用户名、密码、手机号、权限字段等)。
  • Cookie 的安全标志:是否设置了 Secure、HttpOnly、SameSite 等属性。

二、信息泄露

  • 检查中间件/框架错误页面是否泄露版本、安装目录、堆栈信息等。
  • 修改请求参数或 URL,观察异常处理页面是否暴露敏感信息。
  • 目录遍历与敏感页面发现:对网站目录进行模糊扫描与爆破(推荐工具:ffuf、gobuster)。 2
  • 检查数据包中是否存在明文敏感信息(推荐 Burp 插件:Unexpected_information)。 3

三、文件操作

1. 文件上传/下载

  • 对上传点进行抓包和 fuzz 测试,检查是否能上传可执行文件或敏感文件(web shells、配置文件等)。
  • 检查下载接口是否未做权限校验或路径处理导致任意文件泄露(路径穿越)。
  • 推荐模糊/上传字典工具:upload-fuzz-dic-builder。

2. 文件包含(LFI/RFI)

  • 抓包定位可能存在包含的参数,尝试本地文件包含、远程文件包含与绕过过滤(推荐Burp插件:LFIScanner.jar)。 4

四、数据验证

1. SQL 注入

  • 常规手工/自动化测试:注入单引号、布尔盲注、时间盲注等。
  • 推荐 Burp 插件:xia_sql(用于快速检测)与 sqlmap4burp-plus-plus(Burp 联动 sqlmap)。 image

2. XSS

  • 反射型 XSS:常规手工测试,在可控输入中注入脚本(推荐插件:Reflector)。 7
  • DOM 型 XSS:检测前端 JavaScript 对输入的处理(推荐插件:DOMXSSHilight)。 8
  • 存储型 XSS:关注留言板、评论、反馈等可保存显示内容的功能;注意纯数字输入框通常无法直接插入 XSS,有时需在允许字母输入处测试。

3. URL 跳转

  • 关注登录、分享、OAuth 回调等会进行跳转的功能点。
  • 常见参数:url、redirect、callback 等;篡改参数判断是否发生任意重定向或开放重定向漏洞。

4. CSRF

  • 使用 Burp CSRF poc 生成功能或手工构造 CSRF 测试用例,修改后端数据并确认是否存在跨站请求伪造漏洞。 1

5. SSRF

  • 找出会请求远程资源的点(图片下载、URL preview、爬虫抓取等),结合 dnslog/ceye 等平台验证 SSRF。 2

五、逻辑漏洞

1. 横向越权

  • 尝试修改基于参数的用户标识(如 user_id、account_id)以访问或修改其他用户数据,观察权限控制是否完善(推荐 Burp 插件:AuthMatrix)。 10

2. 垂直越权

  • 检查普通用户是否可访问管理员或高权限接口与功能,方法与横向越权类似,重点在角色/权限边界测试。

3. 未授权访问

  • 在不携带或删除 session/cookie 的情况下访问接口与页面,检测是否存在未授权访问的漏洞(推荐插件:burp-unauth-checker)。 11

4. 账户逻辑

  • 注册:检测能否重复注册相同账号、是否存在账号遍历漏洞。
  • 验证码:检测是否可重复发送导致短信轰炸;验证码强度与可复用性(是否易于爆破)。

5. 交易逻辑

  • 检查订单/支付流程是否可以篡改价格、商品 ID、金额、数量或支付状态,验证交易一致性与后端校验。

    12

六、组件安全

关注常见框架、中间件与组件的已知漏洞与安全配置:

  • 框架:Spring、Struts2、ThinkPHP 等
  • 中间件:Apache、Tomcat、IIS、Nginx、WebLogic 等
  • 组件库:log4j、Shiro、Fastjson、Jackson 等

对这些组件应做版本识别与已知漏洞对比,必要时结合依赖扫描工具或手动验证漏洞利用链。


七、其他

  • 通过 site 的 JavaScript 文件查找未暴露但可调用的接口(推荐 Burp 插件:BurpJSLinkFinder)。
  • 接口参数深入测试:推荐工具 https://github.com/s0md3v/Arjun 用于发现隐藏参数与可注入点。 3
  • APP 渗透测试:测试方式与 Web 类似,在模拟器或真机上挂 Burp 抓包即可。APK 静态敏感信息获取工具:https://github.com/TheKingOfDuck/ApkAnalyser
  • 公众号与小程序:与 Web 测试类似,挂 Burp 代理抓包;小程序 JS 文件获取可参考:https://github.com/DC3x6/Unpack

推荐工具与资源(简要)

  • Fuzz:ffuf、gobuster、upload-fuzz-dic-builder
  • Burp插件:captcha-killer-modified、Unexpected_information、LFIScanner.jar、xia_sql、sqlmap4burp-plus-plus、Reflector、DOMXSSHilight、AuthMatrix、burp-unauth-checker、BurpJSLinkFinder
  • 自动化:sqlmap、Arjun
  • DNS平台:dnslog、ceye

About

常见的 Web/APP 渗透测试思路与推荐工具

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors