tshark,收集所有数据包流量后重新创建 post 请求

tshark, recreating a post request after collecting all packet traffic

使用 tshark,我捕获了 amazon.com 和 firefox webbrowser 之间的交互。
这是我的浏览器发送的 post 请求的描述。我通过记录所有流量然后打印出特定的帧号从 tshark 获得了这个。

POST / HTTP/1.1
Host: ...
User-Agent: Mozilla/5.0 ...
Accept: */*
Accept-Language: en-CA,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive

我想知道如何使用命令行重新创建此请求。到目前为止,这是我的尝试:

curl -X POST \
-F "Host=..." \
-F "User-Agent=Mozilla/5.0" \
-F "Accept=*/*" \
-F "Accept-Language=en-CA,en-US" \
-F "Accept-Encoding=gzip, deflate" \
-F "Content-Type=application/ocsp-request" \
-F "Content-Length=83" \
-F "Connection=keep-alive" \
https://www.amazon.com

然而,当我 运行 这个 post 请求时,我得到了一个错误。我想我一定是 post 请求的格式错误。

虽然可以捕获与 tshark/wireshark 的这种交互并从中创建卷曲,但使用浏览器的开发工具为您生成卷曲更简单。如果无法使用浏览器重新创建请求,您将需要使用@ofirule .

中的工具之一

举个例子,假设我们想要捕获 whosebug.com 的 HTML 文档的请求。

  1. 要打开 devtools,请右键单击浏览器页面上的任意位置,然后 select“检查”

  1. 打开网络选项卡并重新加载页面

  1. 找到您感兴趣的请求后,右键单击它以将其复制为 curl

  1. 粘贴你的卷曲。它看起来像这样
curl 'https://whosebug.com/' \
  -H 'authority: whosebug.com' \
  -H 'pragma: no-cache' \
  -H 'cache-control: no-cache' \
  -H 'dnt: 1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-user: ?1' \
  -H 'sec-fetch-dest: document' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'cookie: prov=bbcb7958-a656-3553-ecbc-b9ca84066339; _ga=GA1.2.460830356.1605569295; _gid=GA1.2.1542484921.1605569065; __qca=P0-1761616573-1605569091640; __gads=ID=4135cbf8a377f6b8-2238d1c4efc40140:T=1605562116:S=ALNI_MYMpJxjVdzYlZtHA_3Q99ludQAnMJ; _gat=1' \
  --compressed