Burp Suite 无法拦截 wget 和 curl HTTP 请求

Burp Suite 无法拦截 wget 和 curl HTTP 请求

我使用 Burp Suite 作为代理监听 127.0.0.1:8080,并且还将 HTTP 代理设置为 127.0.0.1:8080。

现在 Burp Suite 可以拦截我 Mac 上的所有浏览器(例如 Firefox、Safari、Chrome)和应用程序(例如字典): 在此处输入图片描述


但无法拦截wgetcurl的请求。

例如:

curl www.apple.com

curl和wget不是使用HTTP协议请求吗?


编辑-01

  1. 为什么我将 macOS 偏好设置 HTTP 代理设置为127.0.0.1:8080,所有浏览器和应用程序都会默认使用此代理?我没有在每个浏览器中设置。

  2. 为什么 curl 和 wget 默认不使用代理?即使我设置了 --proxy 仍然不起作用。

wget www.cloud123.com --proxy 127.0.0.1:8080

答案1

如果你查看wgetcurlcurl你会注意到--proxy,但wget事实并非如此。两者都使用环境变量,甚至名称相同:

Wget:8.1 代理

Wget 支持 HTTP 和 FTP 检索的代理。Wget 识别的指定代理位置的标准方法是使用以下环境变量:

  • http_proxy
  • https_proxy

如果设置,http_proxyhttps_proxy变量应该分别包含 HTTP 和 HTTPS 连接的代理的 URL。

CURL:环境

使用环境变量设置代理与使用-x,--proxy选项具有相同的效果。

  • http_proxy [protocol://]<host>[:port]设置用于 HTTP 的代理服务器。

  • HTTPS_PROXY [protocol://]<host>[:port]设置用于 HTTPS 的代理服务器。

这意味着,除了罗普诺普示例 1 - 代理 curl 和 wget

export http_proxy=localhost:8080
export https_proxy=localhost:8080
curl example.com
wget -O /dev/null example.com

## or ##

http_proxy=localhost:8080 https_proxy=localhost:8080 curl example.com
http_proxy=localhost:8080 https_proxy=localhost:8080 wget -O /dev/null example.com

你也可以使用

curl --proxy localhost:8080 example.com

但相同的语法不适用于 Wget。

答案2

对于 curl 和 wget,您可以使用http_proxyhttps_proxy环境变量。请参阅代理和拦截 CLI 工具也许你设置了一个但没有设置另一个?

请分享您如何设置浏览器使用的代理。

答案3

您的浏览器和应用程序会自动使用您设置的系统代理设置。

curl并且wget不会自动使用您的系统设置;您需要通过查找这些设置的文档来手动设置它们。

相关内容