BurpSuite基础教程第二发:Proxy模块(代理模块)

2018年3月6日10:41:59
  • A+
所属分类:BurpSuite

代理模块作为BurpSuite的核心功能,拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。


Module 1:interceptBurpSuite基础教程第二发:Proxy模块(代理模块)

用于显示修改HTTP请求及响应内容,并可以将拦截的HTTP请求快速发送至其他模块处理。


  • Forward:用于发送数据。当把所需要的HTTP请求编辑编辑完成后,手动发送数据。
  • Drop:将该请求包丢弃。
  • Intercept is off/on:拦截开关。当处于off状态下时,BurpSuite会自动转发所拦截的所有请求;当处于on状态下时,BurpSuite会将所有拦截所有符合规则的请求并将它显示出来等待编辑或其他操作。
  • Action:功能菜单,与右键菜单内容相同,在这可以将请求包发送到其他的模块或者对数据包进行其他的操作,菜单中的详细功能我们会在后续课程中陆续说明。

Module 2:http history

这里将记录经过代理服务器访问的所有请求,即使当Intercept is off时也会记录。


(请求索引号)、Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、Status(状态)、Length(响应字节长度)、MIME type(响应的MLME类型)、
Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标IP地址)、Cookies、Time(发出请求时间)、Listener port(监听端口)。
BurpSuite基础教程第二发:Proxy模块(代理模块)
下方窗口可以显示请求的详细内容(Request)及其响应内容(Response),通过右键菜单也可以将请求发送至其他模块。
双击某个请求即可打开详情,通过Previous/next可以快速切换请求,并且Action也可以将请求发送至其他模块。
BurpSuite基础教程第二发:Proxy模块(代理模块)

Module 3:WebSockets history
BurpSuite基础教程第二发:Proxy模块(代理模块)

这个版块用于记录WebSockets的数据包,是HTML5中最强大的通信功能,定义了一个全双工的通信信道,只需Web上的一个 Socket即可进行通信,能减少不必要的网络流量并降低网络延迟。


Module 4:Options

该版块主要用于设置代理监听、请求和响应,拦截反应,匹配和替换,ssl等。


选项1:Proxy Listeners
BurpSuite基础教程第二发:Proxy模块(代理模块)

代理侦听器是侦听从您的浏览器传入的连接本地HTTP代理服务器。它允许您监视和拦截所有的请求和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监听12.0.0.1地址,端口8080。要使用这个监听器,你需要配置你的浏览器使用127.0.0.1:8080作为代理服务器。此默认监听器是必需的测试几乎所有的基于浏览器的所有Web应用程序。
  • add:添加一个新的代理地址。

    • binding:新建一个代理,bind to port-绑定端口号 ,bind to address -绑定ip地址
    • request hadning:这些设置包括选项来控制是否BurpSuite重定向通过此侦听器接收到的请求:

      • Redirect to host - 如果配置了这个选项,Burp会在每次请求转发到指定的主机,而不必受限于览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹配/替换规则重写的主机中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。
      • Redirect to port - 如果配置了这个选项,Burp会在每次请求转发到指定的端口,而不必受限于浏览
      • Force use of SSL - 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP。您可以使用此选项,在与SSL相关的响应修改选项结合,开展sslstrip般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过BurpProxy代理。
    • Certificate:这些设置控制呈现给客户端的SSL服务器的SSL证书。

      • Generate CA-signed per-host certificate-这是默认选项。安装后,BurpSuite创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用,每次BurpSuite运行。当你的浏览器发出SSL连接到指定的主机,Burp产生该主机,通过CA证书签名的SSL证书。您可以安装BurpSuite的CA证书作为在浏览器中受信任的根,从而使每个主机的证书被接受,没有任何警报。您还可以导出其他工具或Burp的其他实例使用CA证书。
      • Generate a CA-signed certificate with a specific hostname---||这类似于前面的选项;然而,Burp会产生一个单一的主机证书与每一个SSL连接使用,使用您指定的主机名。在进行无形的代理时,此选项有时是必要的,因为客户端没有发送连接请求,因此Burp不能确定SSL协议所需的主机名。你也可以安装BurpSuite的CA证书作为受信任的根。
      • Use a custom certificate---||-此选项使您可以加载一个特定的证书(在PKCS#12格式)呈现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证书链)的客户端应该使用这个选项。


  • edit:编辑选中的代理地址。相关选项类似于add,不再叙述。
  • remove:删除选中代理地址。

选项2:Intercept Client Requests
BurpSuite基础教程第二发:Proxy模块(代理模块)

配置拦截规则,设置拦截的匹配规则。 当Intercept request based on the following rules为选中状态时,burpsuite会配置列表中的规则进行拦截或转发。
注意:如果该复选框未选中,那么即使Intercept is on也无法截取数据包。
  • 规则可以通过Enabled列中的复选框选择开启或关闭。
  • 规则可以是域名, IP地址,协议, HTTP方法, URL,文件扩展名,参数,cookie ,头/主体内容,状态代码,MIME类型, HTML页面标题等。
  • 规则按顺序处理,并且使用布尔运算符AND和OR组合。

如图,我们创建一个规则:只拦截请求头中匹配DVWA的数据包。在实际使用过中我们可能需要创建更多更复杂的规则,来找到我们想要的数据包。
BurpSuite基础教程第二发:Proxy模块(代理模块)
选项3:Intercept Server Responses
BurpSuite基础教程第二发:Proxy模块(代理模块)

功能类似与选项2,配置拦截规则,设置拦截的匹配规则,不过这个选项是基于服务端拦截,当选小的Intercept request based on the following rules为选中状态时,burpsuite会匹配响应包。


如图,开启规则后burpsuite会过滤响应头中存在DVWA关键字的HTTP数据包。

BurpSuite基础教程第二发:Proxy模块(代理模块)BurpSuite基础教程第二发:Proxy模块(代理模块)

选项4:Intercept WebSockets Messages
BurpSuite基础教程第二发:Proxy模块(代理模块)

功能类似与选项2,用于设置拦截WebSockets数据。个人感觉很少用到,这里不做详细说明。
  • Intercept client-to-server messages:拦截客户端到服务器的信息
  • Intercept server-to-client messages:拦截服务器到客户端的信息

选项5:Response Modification
BurpSuite基础教程第二发:Proxy模块(代理模块)

用于执行响应的自动修改。可以使用这些选项来自动修改HTML应用程序响应中匹配的内容。
  • unhide hidden form fields:显示隐藏的表单。在html中type为hidden的表单。

    • prominently highlight unhidden fields:高亮隐藏部分


开启隐藏表单并且高亮后的效果
BurpSuite基础教程第二发:Proxy模块(代理模块)

  • enable disabled form fields:开启禁用表单字段
  • remove input field length limits:删除字段长度限制。当input的标签中存在maxlength时删除该限制。

左边为正常请求,右边为开启过滤后的请求,其中的maxlength已经被删除
BurpSuite基础教程第二发:Proxy模块(代理模块)

  • remove javascipt form validation:删除javascript表单验证。某些站点通过JavaScript过滤表单的内容,如字符串长度、文件后缀、字符串格式等,开启后删除验证javascript。
  • remove all javascript:删除所有javascript。开启后将过滤掉所有script代码段。

左边为正常请求,右边为开启过滤后的请求,其中所有的script已经被删除
BurpSuite基础教程第二发:Proxy模块(代理模块)

  • remove tags:删除对象标签。
  • convert https links to http:将HTTPS请求转换成HTTP请求
    开启前后对比

BurpSuite基础教程第二发:Proxy模块(代理模块)

  • remove secure flag from cookie:删除cookie中的安全标志。为保证cookie的安全性,一般在向客户端写入cookie时会设置有效期及httponly(为保证安全不允许javascript读取cookie的一种基址),在开启后将删除这部分。

选项6:Match and replace
BurpSuite基础教程第二发:Proxy模块(代理模块)

用于自动替换请求和响应通过代理的部分。对于每一个HTTP消息,已启用的匹配和替换规则依次执行,选择适用的规则进行匹配执行。
规则可以分别被定义为请求和响应,对于消息头和身体,并且还特别为只请求的第一行。每个规则可以指定一个文字字符串或正则表达式来匹配,和一个字符串来替换它。对于邮件头,如果匹配条件,整个头和替换字符串匹配留空,然后头被删除。如果指定一个空的匹配表达式,然后替换字符串将被添加为一个新的头。有可协助常见任务的各种缺省规则 - 这些都是默认为禁用。 匹配多行区域。您可以使用标准的正则表达式语法来匹配邮件正文的多行区域。


选项7:SSL Pass Through
BurpSuite基础教程第二发:Proxy模块(代理模块)

指定WEB服务器在经过burpsuite连接时使用SSL连接。


点击add,在弹出的对话框中 Host or ip range为IP Potr为端口

选项8:Miscellaneous
BurpSuite基础教程第二发:Proxy模块(代理模块)

其他选项,这些选项控制着Burp代理的行为的一些具体细节。
  • use http/1.0 in requests to sever:是否强制在请求服务器时使用HTTP/1.0协议
  • use http/1.0 in responses to client:是否强制在客户端响应时使用HTTP1.0协议
  • set response header "Connection:close":设置响应头Connection:close
  • strip proxy headers in incoming requests:在传入请求中的带代理标题
  • unpack gzip/ deflate in requests:是否解压请求消息体。
  • unpack gzip/ deflate in requests:是否自动解压响应体。
  • disable web interface at http://burp:是否禁用http://burp.
    http://burp/ 是web的burp,在配置完浏览器代理后直接访问即可,在这可以查看代理记录 下载浏览器证书 配置浏览器等操作。
  • allow requests to web interface using fully-qualified dns hostnames:允许使用完全限定DNS主机名的请求的Web界面。
  • suppress burp error messages in browser:阻止burp在浏览器中显示错误消息。
  • disable logging to history and site map:不记录历史和站点地图日志。
  • enable interception at startup:启动时拦截

    • alwaya enable:始终拦截
    • always disable:始终关闭
    • restore setting from when burp was last closed:恢复到上次关闭burpsuite时的状态


proxy作为burpsuite中的核心部分,众多的选项中多数我们在使用过程中可能很少会用到,但是有些选项的使用需要有一定的其他知识做基础,后续的模块介绍我们也会以proxy开头。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: