首页/网络/抓包与流量分析速查/tcpdump 字节匹配抓 HTTP GET
本包目录(400 条)
tcpdump 过滤实战51 条
Wireshark 技巧75 条TCP 流分析82 条应用层报文判读71 条丢包与时延定位60 条抓包工具链61 条

tcpdump 字节匹配抓 HTTP GET

用 TCP 载荷首字节匹配精确抓取 HTTP GET 请求(0x47455420 即 "GET "),比只过滤 80 端口更干净,直击请求流量。

用途按载荷字节匹配抓 HTTP 请求方法
原理TCP 头长 tcp[12] 高 4 位 ×4 = 偏移,匹配 4 字节 "GET "=0x47455420

常用示例

常用示例
tcpdump -i eth0 -nn -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
tcpdump -i eth0 -nn -s 0 'dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x48454144'  # HEAD
POST 为 0x504f5354,即 4 字节 "POST";这种写法对 HTTP/1.x 有效,加密流量无法匹配。

易错点

  • 表达式依赖 TCP 选项长度计算,写错偏移会什么都匹配不到;先用一条已知请求验证表达式
  • HTTP/2 与 TLS 之后用此写法无效,需要解密或改用端口级过滤

数据来源与参考

  • man 8 pcap-filter(字节偏移示例)
  • RFC 9112(HTTP/1.1 报文格式)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌