首页/网络/抓包与流量分析速查/Wireshark 全帧搜索 frame contains
Wireshark 技巧75 条

Wireshark 全帧搜索 frame contains

frame contains 在整个报文(含载荷)里搜索字节串,适合定位任意位置的文本,如错误页关键字、敏感串、特定 JSON 字段。

全帧搜索是什么

frame contains 在整个报文范围(含各种头部与载荷)里查找字节串,不受具体协议字段限制。凡是不知道字段名、或者内容出现在自定义位置时,它都能命中:错误页关键字、响应体里的敏感串、特定业务字段名、某个自定义协议的魔数。代价是它只做字节比较,不做语义判断,命中之后仍需人工确认。

基本信息

适用工具Wireshark 3.x / 4.x 显示过滤器
语法frame contains "字符串" 或 frame contains 47:45:54
字段范围整帧;若只要载荷可改用 tcp.payload contains
大小写区分大小写,需忽略时用 matches 加 (?i)
十六进制写法两个十六进制字节用冒号分隔

典型使用场景

  • 在明文 HTTP 中定位错误信息或堆栈关键字
  • 验证某接口是否真的返回了指定业务码
  • 寻找自定义协议里的固定魔数,确认流量属于哪种业务
  • 排查证书或配置文件内容是否在明文流量中泄露

常用示例

常用示例
frame contains "Invalid"                       # 关键字搜索
frame contains "Exception"                     # 异常堆栈提示
frame matches "(?i)error"                      # 忽略大小写
frame contains 47:45:54                         # 十六进制写法匹配 GET
tcp.payload contains "callback"                 # 只在 TCP 载荷里搜

写法与适用面

写法搜索范围适用情况
frame contains "abc"整帧可打印字节明文应用层内容
frame contains 47:45:54整帧原始字节二进制或含不可打印字符
tcp.payload contains仅 TCP 载荷排除头部偶然命中
frame matches 正则整帧按正则需要灵活模式时
加密流量搜不到明文是正常现象,需要先导入密钥或协商到会话密钥后再搜。
关键字越短越容易误命中,先用较长且唯一的字符串缩小范围,再用其他条件过滤。

进阶要点

  • 先用协议字段过滤缩小范围,再搜关键字,避免在大文件里做全量扫描
  • 响应体被压缩时搜不到明文,需要关闭压缩或另行解压后比对
  • 命中结果要回到完整会话里看上下文,单包命中可能只是分片的一部分
  • 把常用关键字保存成过滤器按钮,重复排查时一键复用
  • 搜索与协议字段统计结合:先用字段定位范围,再用内容确认事实
需要统计命中数量时用显示过滤器配合状态栏的包数显示,比逐条翻找更快。

易错点

  • 只在加密流量上搜索明文然后断言「服务没返回该字段」,加密场景必须先解密
  • 字符串过短造成大量误命中,把无关包当成问题证据
  • 跨包搜索无效:一条应用消息被拆到多个 TCP 段时单纯搜索关键字可能全部落空,需要先重组(Follow Stream 或启用重组)

数据来源与参考

  • Wireshark User's Guide(frame contains)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌