首页/网络/抓包与流量分析速查/Wireshark contains 包含匹配
Wireshark 技巧75 条

Wireshark contains 包含匹配

contains 判断字段值是否包含子串或字节序列,适合搜索 URL、Host、User-Agent 等不确定完整值的内容。

contains 在做什么

contains 用来判断字段值里是否包含某段子串或字节序列,适合在不知道完整值的情况下检索内容,例如按域名片段找请求、按路径片段找接口、按关键字找密码或令牌的明文痕迹。它的大小写敏感,需要忽略大小写时改用正则匹配并加上忽略大小写标志。对二进制载荷可以直接写十六进制字节序列,比写字符串更稳,因为很多协议字段本身不是可读文本。

基本信息

字符串包含http.request.uri contains "/api/v2"
字节序列包含tcp contains 47:45:54(对应三个字节)
大小写区分大小写,忽略大小写需用正则加标志
适用范围STRING 与 BYTES 类型字段,以及报文整体
性能需要对每个报文做字符串扫描,开销高于精确比较

典型使用场景

  • 按接口路径片段筛请求:定位某个业务模块的调用
  • 按域名片段找访问:不记得完整域名时也能检索
  • 在明文流量里查找敏感字段:确认是否有人把凭证写在明文里
  • 按 User-Agent 片段区分客户端类型,例如区分浏览器与脚本调用
  • 在二进制载荷里检索固定协议标识,用于确认封装格式

常用示例

常用示例
http.request.uri contains "/api/v2"        # 接口路径片段
http.host contains "internal"              # 域名片段
dns.qry.name contains "cdn"                # 查询名片段
tcp contains "password"                    # 明文载荷里找关键字
http.user_agent contains "Go-http-client"  # 按客户端标识筛选
frame contains 47:45:54                    # 整个报文里找固定字节序列

contains 与相邻写法

写法匹配方式使用场景
contains "abc"字段值里包含子串不知道完整值时的模糊检索
contains 41:42:43包含固定字节序列二进制载荷与非文本协议
== "abc"完全相等已知完整值时的精确匹配
matches "abc.*"正则匹配,可忽略大小写需要模式组合时使用
字段 contains X && 字段 contains Y同时包含两个片段多关键字交叉筛选
contains 作用在整条报文上时可以匹配任意位置的字节,包括地址与端口等非文本区域,命中结果可能超出预期,尽量先用协议字段缩小范围再叠加。
contains 需要对每个报文做字符串扫描,大文件上开销明显。先按协议或端口粗筛一次,再叠加包含条件,可以显著缩短等待时间。

组合用法

组合用法
http.host contains "api" && http.response.code >= 500    # 某域名下的 5xx
http.request.uri contains "/login" && tcp.stream == 8     # 定位到具体一条流
dns.qry.name contains "example" && dns.flags.rcode == 3    # 该域名解析失败
http contains "Authorization" && !tls                     # 明文里出现的鉴权头

判读要点

  • 命中包含条件只说明出现过该片段,不代表它是协议字段的一部分,看上下文才能定性
  • 大小写不匹配是最常见的不命中原因,先在已知报文上验证表达式
  • 同一片段出现在请求与响应两侧时,用方向字段区分是哪一侧携带的
  • 字节序列写法要与实际编码一致,文本协议的字符与十六进制值需要对照确认

易错点

  • 以为 contains 忽略大小写,实际区分大小写,命中不到时应先怀疑这一条
  • 在未加密流量里做关键字检索得到命中的内容,不能直接当安全结论,需要看完整上下文
  • 对大文件直接使用包含条件会明显变慢,先用协议与端口条件缩小范围
  • 用整报文包含检索时可能命中非文本区域,结果看起来很奇怪,先确认落在哪个字段
  • 把字节序列与字符串混写,例如在需要十六进制的位置写明文,会永远匹配不到

数据来源与参考

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