goreplay 是一個可以抓包和重放包的工具,好用的很.
首先下載 點我下載
抓包
- 抓取指定埠的包
./goreplay --input-raw :8000 --output-stdout
抓取8000的包, 並將請求列印到控制檯
複製程式碼
- 抓取響應包
預設沒有將響應包也一起抓取,可以使用--input-raw-track-response 抓取響應包
./goreplay --input-raw :8000 --input-raw-track-response--input-raw-track-response --output-stdout
複製程式碼
- 新增ip地址 經過goreplay重發之後, 伺服器端就拿不到原來的ip地址,可以使用 --input-raw-realip-header 來新增ip地址
./goreplay --input-raw :8000 --input-raw-realip-header "X-Real-IP" ...
複製程式碼
- 請求過濾 抓取指定埠的包,可能內容比較多,這時候可以使用請求過濾功能
正規表示式過濾,只允許
goreplay --input-raw :8080 --output-http staging.com --http-allow-url /api
複製程式碼
正規表示式過濾,禁止
goreplay --input-raw :8080 --output-http staging.com --http-disallow-url /api
複製程式碼
基於header的正規表示式過濾
# only forward requests with an api version of 1.0x
goreplay --input-raw :8080 --output-http staging.com --http-allow-header api-version:^1\.0\d
# only forward requests NOT containing User-Agent header value "Replayed by Gor"
goreplay --input-raw :8080 --output-http staging.com --http-disallow-header "User-Agent: Replayed by Gor"
複製程式碼
基於http 方法的過濾
goreplay --input-raw :80 --output-http "http://staging.server" \
--http-allow-method GET \
--http-allow-method OPTIONS
複製程式碼