专业的社区

Burp代理:隐形代理

  • 最近更新时间:2022年4月12日

  • 阅读时间:4分钟

Burp对隐形代理的支持允许非Proxy-Aware客户直接连接到代理听众。如果您要定位的应用程序使用浏览器外部运行的厚客户端组件,或者是在浏览器框架外在浏览器框架之外提出自己的HTTP请求,则此选项有时很有用。通常,这些客户端不支持HTTP代理,或者不提供简单的方法来配置它们以使用一个。

重定向入站请求

您可以通过修改DNS分辨率以重定向相关的主机名,并在应用程序使用的端口(s)上设置隐形代理侦听器,从而有效地强制迫使非Proxy-Aware客户端连接到BURP。

例如,如果应用程序使用域名example.org,并在标准端口上使用HTTP和HTTPS,您需要在主机文件中添加一个条目,将域名重定向到本地计算机:

127.0.0.1 example.org

要接收重定向请求,您还需要在127.0.0.1:80127.0.0.1:443。然后,非Proxy-Aware客户端将将域名解析到您的本地IP地址,并将请求直接发送给您的接口上的听众。

隐形代理模式

使用DNS将客户端请求重定向到本地侦听器已经足够容易了,但是需要出现特殊的隐形代理模式,因为所得的请求不会以HTTP代理通常预期的形式。

使用普通HTTP时,代理风格的请求如下:

获取http://example.org/foo.php http/1.1主机:example.org

而相应的非毒性请求看起来像这样:

get /foo.php http /1.1主机:example.org

通常,Web代理需要beplay体育能用吗在请求的第一行中接收完整的URL,以确定将请求转发到哪个目标主机(他们不查看主机标头以确定目的地)。如果启用了不可见的代理,则当Burp收到任何非Proxy风格的请求时,它将解析主机标头的内容,并将其用作该请求的目标主机。

当将HTTP与代理使用HTTP时,客户端发送连接请求,以识别他们希望连接的目标主机,然后执行TLS协商。但是,不知情的客户将直接进行TLS谈判,并认为他们直接与目的地主机进行沟通。如果启用了隐形代理,BURP将容忍客户直接谈判TLS,并将再次从解密的请求中解析主机头的内容。

重定向出站请求

当以隐形模式运行时,默认情况下,BURP将根据从每个请求中解析的主机标头发送到目标主机。但是,由于您已经修改了相关域的主机文件条目,因此BURP本身将把主机名解析到本地侦听器地址,除非采用不同的配置,否则会将请求转发回到自身,创建无限循环。

有两种解决此问题的方法:

  • 如果所有不可见的代理流量都进入一个域(即,如果非Proxy-Aware Aware Client仅与单个域联系),则可以使用代理侦听器的重定向选项迫使传出流量转到正确的IP地址。
  • 如果代理流量到达多个域,您可以自己使用Burp主机名分辨率选项要覆盖主机文件,然后将每个域分别重定向到其正确的原始IP地址。

如果非警告客户客户端在其请求中不包含主机标头,则会出现相关问题。如果没有此标头,则在处理非Proxy风格的请求时,BURP无法确定应将请求转发到哪个目的地主机。

同样,有两种解决此问题的方法。如果应将所有请求转发到同一目的地主机,则可以使用代理侦听器的重定向选项迫使传出流量转到正确的IP地址。

如果应将不同的请求转发给不同的主机,则需要使用多个代理侦听器:

  • 为每个目标主机创建一个单独的虚拟网络接口。(大多数操作系统允许您创建具有类似环回的属性的其他虚拟接口。或者,在虚拟化环境中这是可能的。)
  • 为每个接口创建一个单独的代理侦听器(如果使用HTTP和HTTP,则为两个侦听器)。
  • 使用您的主机文件,将每个目标主机名重定向到其他网络接口(即,转换为其他侦听器)。
  • 在每个接口上配置侦听器,以将所有流量重定向到主机的IP地址,其流量将其重定向到它。

处理TLS证书

配置各种选项服务器TLS证书由Burp代理听众使用。自动为每个目标主机生成证书的默认选项,有时可能无法与隐形代理使用。非Proxy-Aware-Aware客户直接与听众协商TLS,而无需先发送连接请求,以识别客户寻求联系的目标主机。许多客户端(包括浏览器)支持客户端Hello消息中的“ server_name”扩展名,该消息标识了客户端希望与之协商的目标主机。如果存在此扩展名,则BURP使用它以正常方式为该主机生成证书。但是,如果客户端Hello消息中不存在扩展名,则BURP将无法使用静态自签名证书。

与出站请求的重定向一样,有两种解决此问题的方法:

  • 如果所有HTTPS请求均为同一域,则可以配置隐形侦听器以生成CA签名的证书,并使用应用程序使用的特定主机名。
  • 如果不同的HTTPS请求适用于不同的域,则需要为每个目标主机创建一个不同的隐形代理侦听器,每个侦听器使用不同的虚拟网络接口,如重定向出站请求所述。然后,您将需要配置每个侦听器,以生成带有特定主机名的CA签名证书,其流量正在重定向到它。