Wireshark 作为一款广泛使用的网络协议分析器,在 WEB 安全测试领域提供了基于流量层面的深度洞察能力。不在于主动扫描,而在于被动观察、记录和分析所有网络通信,为安全测试人员提供原始数据以进行漏洞验证和攻击复现。
数据包捕获:
1.捕获接口选择:选择正确的网络接口(如以太网卡、Wi-Fi 适配器)是第一步。在测试 WEB 应用时,若测试机与被测系统直接通信,通常选择本地局域网接口。
2.捕获过滤器应用:为减少无关流量干扰,可在捕获前设置过滤器。例如,针对 WEB 测试,常用过滤器 tcp port 80 或 tcp port 443 仅捕获 HTTP/HTTPS 流量。捕获主机 host [target_ip] 可聚焦特定服务器流量。
3.HTTPS 流量解密:现代 WEB 普遍采用 HTTPS,其流量默认加密。为分析其内容,需配置 Wireshark 解密 TLS。通常方法是在客户端设置 SSLKEYLOGFILE 环境变量,让浏览器将会话密钥写入文件,并在 Wireshark 中指定该文件路径。此举可解密客户端与服务器之间的预主密钥,从而解析明文。
漏洞分析和攻击识别
1.敏感信息泄露:
分析方法:使用 Wireshark 的搜索功能(Edit -> Find Packet),在报文详情中搜索关键词,如 password、token、credit、authorization 等。或直接过滤 HTTP 请求与响应 (http.request or http.response)。
特征识别:在未加密的 HTTP 请求或响应体中,明文传输用户凭证、会话令牌、身份证号、数据库连接字符串等信息。即使在 HTTPS 中,若配置错误或部分请求降级为 HTTP,也可能导致泄露。
2.注入类漏洞(如 SQLi、XSS)验证:
分析方法:在已知测试点发起注入攻击(如使用 SQLMap 或手动测试)的同时抓包。捕获后,过滤出指向目标 URL 的 HTTP POST 或 GET 请求 (http.request.method == POST && http contains "target_param")。
特征识别:在 HTTP 请求的 URI 参数或 POST 数据体中,观察是否包含典型的注入载荷。例如,单引号(')、逻辑语句(OR 1=1)、联合查询(UNION SELECT)、XSS 脚本标签(<script>alert(1)</script>)。通过分析请求包,可确认攻击载荷是否被正确发送;通过分析响应包,可查看是否包含数据库错误信息、执行结果或弹窗脚本,从而判断漏洞是否存在及利用成功与否。
3.会话安全缺陷:
分析方法:追踪 HTTP 流 (Follow -> HTTP Stream),观察整个会话交互过程。
特征识别:检查 Cookie 中的会话令牌是否在多个会话间重复使用、是否缺乏安全标志(如 Secure、HttpOnly)、是否通过非安全通道传输。观察登录过程是否在 HTTP 上完成,导致凭证被窃听。
4.业务逻辑漏洞辅助:
分析方法:对关键业务操作(如支付、更改邮箱、越权访问)进行抓包,并比较不同权限用户或不同操作阶段的请求差异。
特征识别:通过重放或修改数据包(结合如 Burp Suite 工具),观察服务器响应。Wireshark 可捕获到修改前后请求与响应的原始状态,用于分析是否存在参数篡改、顺序绕过、权限校验缺失等逻辑问题。
5.异常与攻击流量识别:
分析方法:观察统计信息(Statistics -> Conversations),查看哪些 IP 地址在频繁通信。使用过滤器排查大量错误响应 (http.response.code >= 400)。
特征识别:发现来自单一源IP的高频请求,可能指向暴力破解或DoS攻击。大量 404 Not Found 或 500 Internal Server Error 响应,可能映射了目录遍历、扫描器活动或应用程序错误。
Wireshark 是 WEB 安全测试中一个强大的诊断和取证工具。它将抽象的网络交互数据转化为可视化的数据流,使安全测试人员能够从底层验证漏洞、分析攻击模式并深刻理解应用程序的网络行为,从而提升安全测试的深度与准确。