安全测试===burpsuit指南

网址:

https://www.gitbook.com/book/t0data/burpsuite/detailscss

引子

 

 

刚接触web安全的时候,很是想找到一款集成型的渗透测试工具,找来找去,最终选择了Burp Suite,除了它功能强大以外,还有就是好用,易于上手。因而就从网上下载了一个破解版的来用,记得那时候好像是1.2版本,功能也没有如今这么强大。在使用的过程当中,慢慢发现,网上系统全量的介绍BurpSuite的书籍太少了,大可能是零星、片断的讲解,不成体系。后来慢慢地出现了很多介绍BurpSuite的视频,现状也变得愈来愈好。但往往遇到不知道的问题时,仍是不得不搜寻BurpSuite的官方文档和英文网页来解决问题,也正是这些问题,慢慢让我以为有必要整理一套全面的BurpSuite中文教程,算是为web安全界作尽本身的一份微薄之力,也才有了大家如今看到的这一系列文章。html

我给这些文章取了IT行业图书比较通用的名称: 《BurpSuite实战指南》,您能够称我为中文编写者,文章中的内容主要源于BurpSuite官方文档和多位国外安全大牛的经验总结,我只是在他们的基础上,结合个人经验、理解和实践,编写成如今的中文教程。本书我也没有出版成纸质图书的计划,本着IT人互联分享的精神,放在github,作免费的电子书。于业界,算一份小小的贡献;于本身,算一次总结和锻炼。java

以上,是为小记。git

感谢您阅读此书,阅读过程当中,若是发现错误的地方,欢迎发送邮件到 t0data@hotmail.com,感谢您的批评指正。github

本书包含如下章节内容:web

第一部分 Burp Suite 基础

  1. Burp Suite 安装和环境配置
  2. Burp Suite代理和浏览器设置
  3. 如何使用Burp Suite 代理
  4. SSL和Proxy高级选项
  5. 如何使用Burp Target
  6. 如何使用Burp Spider
  7. 如何使用Burp Scanner
  8. 如何使用Burp Intruder
  9. 如何使用Burp Repeater
  10. 如何使用Burp Sequencer
  11. 如何使用Burp Decoder
  12. 如何使用Burp Comparer

第二部分 Burp Suite 高级

  1. 数据查找和拓展功能的使用
  2. BurpSuite全局参数设置和使用
  3. Burp Suite应用商店插件的使用
  4. 如何编写本身的Burp Suite插件

第三部分 Burp Suite 综合使用

  1. 使用Burp Suite测试Web Services服务
  2. 使用Burp, Sqlmap进行自动化SQL注入渗透测试
  3. 使用Burp、PhantomJS进行XSS检测
  4. 使用Burp 、Radamsa进行浏览器fuzzing
  5. 使用Burp 、Android Killer进行安卓app渗透测试

 

 

第一章 Burp Suite 安装和环境配置

Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使咱们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。在渗透测试中,咱们使用Burp Suite将使得测试工做变得更加容易和方便,即便在不须要娴熟的技巧的状况下,只有咱们熟悉Burp Suite的使用,也使得渗透测试工做变得轻松和高效。正则表达式

Burp Suite是由Java语言编写而成,而Java自身的跨平台性,使得软件的学习和使用更加方便。Burp Suite不像其余的自动化测试工具,它须要你手工的去配置一些参数,触发一些自动化流程,而后它才会开始工做。chrome

Burp Suite可执行程序是java文件类型的jar文件,免费版的能够从免费版下载地址进行下载。免费版的Burp Suite会有许多限制,不少的高级工具没法使用,若是您想使用更多的高级功能,须要付费购买专业版。专业版与免费版的主要区别有windows

  1. Burp Scanner
  2. 工做空间的保存和恢复
  3. 拓展工具,如Target Analyzer, Content Discovery和 Task Scheduler

本章主要讲述Burp Suite的基本配置,包含以下内容:浏览器

  • 如何从命令行启动Burp Suite</br>
  • 如何设置JVM内存 大小</br>
  • IPv6问题调试

如何从命令行启动Burp Suite

Burp Suite是一个无需安装软件,下载完成后,直接从命令行启用便可。但Burp Suite是用Java语言开发的,运行时依赖于JRE,须要提早Java可运行环境。

若是没有配置Java环境或者不知道如何配置的童鞋请参考win7电脑上的Java环境配置 配置完Java环境以后,首先验证Java配置是否正确,若是输入java -version 出现下图的结果,证实配置正确且已完成。

java环境验证

这时,你只要在cmd里执行java -jar /your_burpsuite_path/burpSuite.jar便可启动Burp Suite,或者,你将Burp Suite的jar放入class_path目录下,直接执行java -jar burpSuite.jar也能够启动。

==注意:your_burpsuite_path为你Burp Suite所在路径,burpSuite.jar文件名必须跟你下载的jar文件名称一致==

如何设置JVM内存 大小

若是Java可运行环境配置正确的话,当你双击burpSuite.jar便可启动软件,这时,Burp Suite本身会自动分配最大的可用内存,具体实际分配了多少内存,默认通常为64M。当咱们在渗透测试过程,若是有成千上万个请求经过Burp Suite,这时就可能会致使Burp Suite因内存不足而崩溃,从而会丢失渗透测试过程当中的相关数据,这是咱们不但愿看到的。所以,当咱们启动Burp Suite时,一般会指定它使用的内存大小。 通常来讲,咱们一般会分配2G的内存供Burp Suite使用,若是你的电脑内存足够,能够分配4G;若是你的电脑内存足够小,你也能够分配128M。当你给Burp Suite分配足够多的内存时,它能作的工做也会更多。指定Burp Suite占用内存大小的具体配置方法是在启动脚本里添加以下命令行参数: 假设启动脚本的名称为burp_suite_start.bat,则该bat脚本的内容为

java -jar -Xmx2048M  /your_burpsuite_path/burpsuite.jar

其中参数-Xmx指定JVM可用的最大内存,单位能够是M,也能够是G,若是是G为单位的话,则脚本内容为:

java -jar -Xmx2G  /your_burpsuite_path/burpsuite.jar

更多关于JVM性能调优的知识请阅读 Oracle JVM Tuning

IPv6问题调试

Burp Suite是不支持IPv6地址进行数据通讯的,这时在cmd控制台里就会抛出以下异常

java.net.SocketException: Permission denied

同时,浏览器访问时,也会出现异常

Burp proxy error: Permission denied: connect

当出现如上问题时,咱们须要修改启动脚本,添加对IPv4的指定后,重启Burp Suite便可。

java -jar -Xmx2048M  -Djava.net.preferIPv4Stack=true  /your_burpsuite_path/burpsuite.jar

经过 -Djava.net.preferIPv4Stack=true参数的设置,告诉Java运行环境,使用IPv4协议栈进行数据通讯,IPv6协议将会被禁止使用。 这个错误最多见于64位的windows操做系统上,使用了32位的JDK

 

第二章 Burp Suite代理和浏览器设置

 

Burp Suite代理工具是以拦截代理的方式,拦截全部经过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦截http和https协议的流量,经过拦截,Burp Suite以中间人的方式,能够对客户端请求数据、服务端返回作各类处理,以达到安全评估测试的目的。

在平常工做中,咱们最经常使用的web客户端就是的web浏览器,咱们能够经过代理的设置,作到对web浏览器的流量拦截,并对通过Burp Suite代理的流量数据进行处理。

下面咱们就分别看看IE、Firefox、Google Chrome下是如何配置Burp Suite代理的。

IE设置

当Burp Suite 启动以后,默认分配的代理地址和端口是127.0.0.1 :8080,咱们能够从Burp Suite的proxy选项卡的options上查看。如图:

 

如今,咱们经过以下步骤的设置便可完成IE经过Burp Suite 代理的相关配置。

  1. 启动IE浏览器
  2. 点击【工具】菜单,选择【Internet】选项
  3. 打开【链接】选项卡,点击【局域网设置】,进行代理设置。
  4. 在代理服务器设置的地址输入框中填写127.0.0.1,端口填写8080,点击【肯定】,完成代理服务器的设置。
  5. 这时,IE的设置已经完成,你能够访问 http://burp 将会看到Burp Suite的欢迎界面。

FireFox设置

与IE的设置相似,在FireFox中,咱们也要进行一些参数设置,才能将FireFox浏览器的通讯流量,经过Burp Suite代理进行传输。详细的步骤以下:

  1. 启动FireFox浏览器,点击【工具】菜单,点击【选项】。
  2. 在新打开的about:preferences#advanced窗口中,依次点击【高级】-【网络】,咱们将会看到FireFox链接网络的设置选项。
  3. 点击【设置】,在弹出的【链接设置】对话框中,找到“http代理”,填写127.0.0.1,端口填写8080,最后点击【确认】保存参数设置,完成FireFox的代理配置。
  4. 固然,FireFox浏览器中,能够添加FireFox的扩展组件,对代理服务器进行管理。例如FireX Proxy、Proxy Swither都是很好用的组件,感兴趣的读者能够本身下载试用一下。

Google Chrome设置

Google Chrome使用Burp Suite做为代理服务器的配置步骤以下:

  1. 启动Google Chrome浏览器,在地址栏输入chrome://settings/,回车后即显示Google Chrome浏览器的配置界面
  2. 点击底部的【显示高级设置】,将显示Google Chrome浏览器的高级设置。
  3. 固然,你也能够直接在搜索框中输入“代理”,回车后将自动定位到代理服务器设置功能。
  4. 点击【更改代理服务器设置】,windows系统下将会弹出IE浏览器的代理设置,此时,按照IE浏览器的设置步骤,完成代理服务器的配置便可。

除了上述的三种经常使用的浏览器外,还有Safari浏览器也有很多的用户在使用,其代理配置请点击阅读进行查看。

 

 

第三章 如何使用Burp Suite代理

Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,经过代理模式,可让咱们拦截、查看、修改全部在客户端和服务端之间传输的数据。

本章主要讲述如下内容:

  • Burp Proxy基本使用
  • 数据拦截与控制
  • 可选项配置Options
  • 历史记录History

Burp Proxy基本使用

经过上一章的学习,咱们对Burp Suite代理模式和浏览器代理设置有了基本的了解。Burp Proxy的使用是一个按部就班的过程,刚开始使用时,可能并不能很快就获取你所指望的结果,慢慢地当你熟悉了它的功能和使用方法,你就能够用它很好地对一个产品系统作安全能力评估。 通常使用Burp Proxy时,大致涉及环节以下:

  1. 首先,确认JRE已经安装好,Burp Suite能够启动并正常运行,且已经完成浏览器的代理服务器配置。
  2. 打开Proxy功能中的Intercept选项卡,确认拦截功能为“Interception is on”状态,若是显示为“Intercept is off”则点击它,打开拦截功能。
  3. 打开浏览器,输入你须要访问的URL(以http://baike.baidu.com/为例)并回车,这时你将会看到数据流量通过Burp Proxy并暂停,直到你点击【Forward】,才会继续传输下去。若是你点击了【Drop】,则此次经过的数据将会被丢失,再也不继续处理。
  4. 当咱们点击【Forward】以后,咱们将看到此次请求返回的全部数据。
  5. 当Burp Suite拦截的客户端和服务器交互以后,咱们能够在Burp Suite的消息分析选项卡中查看此次请求的实体内容、消息头、请求参数等信息。消息分析选项视图主要包括如下四项:
  6. Raw 这是视图主要显示web请求的raw格式,包含请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。你能够经过手工修改这些信息,对服务器端进行渗透测试。
  7. params 这个视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、Cookie参数。渗透人员能够经过修改这些请求参数来完成对服务器端的渗透测试。
  8. headers 这个视图显示的信息和Raw的信息相似,只不过在这个视图中,展现得更直观、友好。
  9. Hex 这个视图显示Raw的二进制内容,你能够经过hex编辑器对请求的内容进行修改。

默认状况下,Burp Proxy只拦截请求的消息,普通文件请求如css、js、图片是不会被拦截的,你能够修改默认的拦截选项来拦截这些静态文件,固然,你也能够经过修改拦截的做用域、参数或者服务器端返回的关键字来控制Burp Proxy的消息拦截,这些在后面的章节中咱们会进一步的学习。 全部流经Burp Proxy的消息,都会在http history记录下来,咱们能够经过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证。同时,对于拦截到的消息和历史消息,均可以经过右击弹出菜单,发送到Burp的其余组件,如Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer、Extender,进行进一步的测试。以下图所示:


数据拦截与控制

Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/off、Action、Comment 以及Highlight构成,它们的功能分别是: Forward的功能是当你查看过消息或者从新编辑过消息以后,点击此按钮,将发送消息至服务器端。 Drop的功能是你想丢失当前拦截的消息,再也不forward到服务器端。Interception is on表示拦截功能打开,拦截全部经过Burp Proxy的请求数据;Interception is off表示拦截功能关闭,再也不拦截经过Burp Proxy的全部请求数据。 Action的功能是除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还能够作一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码,同时也能够改变请求消息的拦截设置,如再也不拦截此主机的消息、再也不拦截此IP地址的消息、再也不拦截此种文件类型的消息、再也不拦截此目录的消息,也能够指定针对此消息拦截它的服务器端返回消息。

Comment的功能是指对拦截的消息添加备注,在一次渗透测试中,你一般会遇到一连串的请求消息,为了便于区分,在某个关键的请求消息上,你能够添加备注信息。

Highlight的功能与Comment功能有点相似,即对当前拦截的消息设置高亮,以便于其余的请求消息相区分。

除了Intercept中能够对经过Proxy的消息进行控制外,在可选项设置选项卡Options中也有不少的功能设置也能够对流经的消息进行控制和处理。

可选项配置Options

当咱们打开可选项设置选项卡Options,从界面显示来看,主要包括如下几大板块(涉及https的功能不包含在本章内容里,后面会一章专门叙述):

  • 客户端请求消息拦截
  • 服务器端返回消息拦截
  • 服务器返回消息修改
  • 正则表达式配置
  • 其余配置项
客户端请求消息拦截

客户端请求消息拦截是指拦截客户端发送到服务器端消息的相关配置选项,其界面以下:

主要包含拦截规则配置、错误消息自动修复、自动更新Content-Length消息头三个部分。

  1. 若是intercept request based on the follow rules的checkbox被选中,则拦截全部符合勾选按钮下方列表中的请求规则的消息都将被拦截,拦截时,对规则的过滤是自上而下进行的。固然,咱们能够根据本身的需求,经过【Up】和【Down】按钮,调节规则所在位置和排序。同时,咱们能够点击【Add】添加一条规则,也能够选中一条规则,经过点击【Edit】进行编辑、点击【Remove】进行删除。当咱们点击【Add】按钮时,会弹出规则添加的输入对话框,以下图:
  2. 拦截规则添加时,共包含4个输入项。Boolean opertor表示当前的规则与其余规则是与的方式(And)仍是或的方式(Or)共存;Match type表示匹配类型,此处匹配类型能够基于域名、IP地址、协议、请求方法、URL、文件类型、参数, cookies, 头部或者内容, 状态码, MIME类型, HTML页面的title等。Match relationship表示此条规则是匹配仍是不匹配Match condition输入的关键字。当咱们输入这些信息,点击【OK】按钮,则规则即被保存。
  3. 若是Automatically fix missing的checkbox被选中,则表示在一次消息传输中,Burp Suite会自动修复丢失或多余的新行。好比说,一条被修改过的请求消息,若是丢失了头部结束的空行,Burp Suite会自动添加上;若是一次请求的消息体中,URl编码参数中包含任何新的换行,Burp Suite将会移除。此项功能在手工修改请求消息时,为了防止错误,有很好的保护效果。
  4. 若是Automatically update Content-Length的checkbox被选中,则当请求的消息被修改后,Content-Length消息头部也会自动被修改,替换为与之相对应的值。
服务器端返回消息拦截

服务器端返回消息拦截顾名思义是指拦截服务器端返回的消息的相关配置项,其界面以下:

它的功能主要包含intercept response based on the follow rules和Automatically update Content-Length header when the response edited两个选项,其功能分别与客户端请求消息拦截中的intercept request based on the follow rules、Automatically update Content-Length header when the request edited相对应,就不在赘述,请参上一节的内容。

服务器返回消息修改

服务器返回消息修改是指自动修改服务器端返回消息的相关设置项。其界面以下:

自上而下,每个选择项分别对应的功能是

  • 显示form表单中隐藏字段
  • 高亮显示form表单中隐藏字段
  • 使form表单中的disable字段生效,变成可输入域
  • 移除输入域长度限制
  • 移动JavaScript验证
  • 移动全部的JavaScript
  • 移除标签
  • 转换https超连接为http连接
  • 移除全部cookie中的安全标志

经过服务器返回消息修改可选择项的设置,能够方便渗透测试人员在安全评估过程当中突破原有的数据限制,更好、更快地检测服务器端的安全性。

正则表达式配置

此项配置主要用来自动替换请求消息和服务器端返回消息中的某些值和文本,它与前文的规则的不一样之处还在于支持正则表达式语言。

当点击【Add】按钮时,在弹出的匹配或替换规则输入对话框中咱们能够看到,它能够对请求和返回消息的消息头,消息体、请求参数名、请求参数值、请求的第一行进行匹配和替换。

例如,当咱们要替换全部返回消息中的邮箱地址为t0data@burpsuite.com时,能够参考下图的设置填写输入项并保存验证。

其余配置项

其余配置项主要是杂项设置。其界面以下:

自上而下依次的功能是

  • 指定使用HTTP/1.0协议与服务器进行通讯 这项设置用于强制客户端采用HTTP/1.0协议与服务器进行通讯,通常客户端使用的HTTP协议版本依赖于客户端浏览器,但某些服务器或者应用,必须使用HTTP/1.0协议,此时可勾选此项
  • 指定使用HTTP/1.0协议反馈消息给客户端 目前全部的浏览器均支持HTTP/1.0协议和HTTP/1.1协议,强制指定HTTP/1.0协议主要用于显示浏览器的某些方面的特征,好比,阻止HTTP管道攻击。
  • 设置返回消息头中的“Connection:close” 可用于某些状况下的阻止HTTP管道攻击。
  • 请求消息头中脱掉Proxy-* 浏览器请求消息中,一般会携带代理服务器的相关信息,此选项主要用于清除消息头中的代理服务器信息。
  • 解压请求消息中的压缩文件 某些应用在与服务器端进行交互时,会压缩消息体,勾选此选项,则Burp Suite 会自动解压消息体
  • 解压返回消息中的压缩文件 大多数浏览器支持压缩的消息体,勾选此选项,则Burp Suite 会自动解压被服务器端压缩的消息体
  • 禁用http://burp
  • 容许经过DNS和主机名访问web接口 即容许经过域名或主机名访问Burp Suite
  • 不在浏览器中显示Burp Suite错误 在咱们使用Burp Suite时,若是发生了Burp Suite自身的错误,会在浏览器中显示,若是勾选了此项,则不会在浏览器中显示此类错误。
  • 禁用日志到历史和网站地图中 此选项的做用是阻止记录日志到历史和网站地图,在某些状况下可能有用,好比说,经过上游服务器进行认证或者作正则表达式替换时,为了下降内存的消耗,减小日志的储存,你能够勾选此项。
  • 拦截功能开始设置
    这个选项主要用来配置intercept功能的生效方式,分为老是生效、 老是失效 、从上一次的Burp Suite中恢复设置3种方式。

历史记录History


Burp Proxy的历史记录由HTTP历史和WebSockets历史两个部分组成。

HTTP历史界面由筛选过滤器、历史记录列表、消息详情3个部分组成。

当咱们在某一条历史记录上单击,会在下方的消息详解块显示此条消息的文本详细信息。当咱们在某条消息上双击,则会弹出此条消息的详细对话框。

咱们能够点击对话框右上方的【Previous】、【Next】按钮,浏览上一条或下一条消息的内容,也能够修改Raw的请求参数,而后执行多种【Action】操做。

历史消息列表中主要包含请求序列号、请求协议和主机名、请求的方式、URL路径、请求参数、Cookie、是否用户编辑过消息、服务器端返回的HTTP状态码等信息。经过这些信息,咱们能够对一次客户端与服务器端交互的HTTP消息详情作出准确的分析,同时,在下方的详情视图中,也提供基于正则表达式方式的匹配查找功能,更好的方便渗透测试人员查找消息体中的相关信息。

当咱们在作产品系统的安全评估过程当中,会在HTTP历史中保存了大量的日志记录,为了更友好的消息管理,Burp提供了筛选过滤器功能。当咱们点击HTTP历史标签下发的Filter时,将弹出筛选过滤器界面。

按照过滤条件的不一样,筛选过滤器划分出7个子板块,分别是

  • 按照请求类型过滤 你能够选择仅显示当前做用域的、仅显示有服务器端响应的和仅显示带有请求参数的消息。当你勾选“仅显示当前做用域”时,此做用域须要在Burp Target的Scope选项中进行配置,详细请阅读Burp Target相关章节。
  • 按照MIME类型过滤 你能够控制是否显示服务器端返回的不一样的文件类型的消息,好比只显示HTML、css或者图片。此过滤器目前支持HTML、Script、XML、CSS、其余文本、图片、Flash、二进制文件 8种形式。
  • 按照服务器返回的HTTP状态码过滤 Burp根据服务器的状态码,按照2XX,3XX,4XX,5XX分别进行过滤。好比,若是你只想显示返回状态码为200的请求成功消息,则勾选2XX。
  • 按照查找条件过滤 此过滤器是针对服务器端返回的消息内容,与输入的关键字进行匹配,具体的匹配方式,你能够选择 1.正则表达式 2.大小写敏感 3.否认查找 3种方式的任何组合,前面两种匹配方式容易理解,第3种匹配方式是指与关键字匹配上的将再也不显示。
  • 按照文件类型过滤 经过文件类型在过滤消息列表,这里有两个选择可供操做。一是仅仅显示哪些,另外一个是不显示哪些。若是是仅仅显示哪些,在show only的输入框中填写显示的文件类型,一样,若是不显示哪些文件类型,只要在hide的输入框中填写不须要显示的文件类型便可。
  • 按照注解过滤 此过滤器的功能是指,根据每个消息拦截时候的备注或者是否高亮来做为筛选条件控制哪些消息在历史列表中显示。
  • 按照监听端口过滤 此过滤器一般使用于当咱们在Proxy Listeners中多个监听端口时,仅仅显示某个监听端口通讯的消息,通常状况下,咱们不多用到。

如今,咱们再看看WebSockets历史选项的功能,从界面上咱们能够看出,WebSockets历史所提供的功能和选项是HTTP历史的一个子集,只是由于采用的通讯方式的不一样,而被独立出来成为一个专门的视图。其功能的使用方式与HTTP历史雷同,此处就不在赘述。

经过本章的学习,你对Burp Suite的代理模式有了更深刻的理解,知道了做为中间人的Burp Proxy在消息拦截过程当中,能够对请求消息、应答消息作多方面的修改,并能够把消息传递给Burp的其余组件作进一步的测试。同时,Burp Proxy的历史日志功能和多种筛选过滤器让咱们在使用中,能快速地查找须要的数据和关键信息,这些,都极大地帮助你提升了工做效率。

 

第四章 SSL和Proxy高级选项

在前一章,咱们已经学习了HTTP消息如何经过Burp Proxy进行拦截和处理,本章咱们将继续学习HTTPS协议消息的拦截和处理。

HTTPS协议是为了数据传输安全的须要,在HTTP原有的基础上,加入了安全套接字层SSL协议,经过CA证书来验证服务器的身份,并对通讯消息进行加密。基于HTTPS协议这些特性,咱们在使用Burp Proxy代理时,须要增长更多的设置,才能拦截HTTPS的消息。

本章包含的主要内容有

  • CA证书的安装
  • CA证书的卸载
  • Proxy监听设置
  • SSL直连和隐形代理设置

咱们都知道,在HTTPS通讯过程当中,一个很重要的介质是CA证书,下面就咱们一块儿来看看Burp Suite中CA证书的安装。

CA证书的安装

通常来讲,Burp Proxy代理过程当中的CA主要分为以下几个步骤(以win7下IE9为例):

  1. 首先,根据前三章内容的学习,你已配置好Burp Proxy监听端口和IE的代理服务器设置。其次,你的IE浏览器中没有安装过Burp Suite的CA证书,若是已经安装,请先卸载证书。详细的卸载方法请参考CA证书的卸载章节。
  2. 以管理员身份,启动IE浏览器,在地址栏输入http://burp并回车,进入证书下载页面
  3. 点击上图所示的证书下载,另存为到本地目录。
  4. 点击浏览器上的【工具】菜单,打开【Internet选项】。
  5. 在弹出的证书对话框中,点击【内容】-【证书】。
  6. 在弹出的证书对话框中,选中【受信任的根证书颁发机构】,点击【导入】。
  7. 点击【下一步】,选择步骤3保存的证书文件,进行下一步操做。
  8. 指定证书的存储位置,如图
  9. 点击【下一步】,直至完成。这时,会提示安全警告,点击【是】,提示导入完成。
  10. 关闭IE,重启浏览器,CA证书即配置完成。

CA证书的卸载


CA证书的卸载的一般有两种方式,第一种方式在上一章节CA证书安装中的第6步,找到须要卸载的证书,点击【删除】便可。咱们这里主要描述第二种删除方式,主要是为了解决在第一种方式的基础上删除按钮失效或者证书列表里看不到的证书也一块儿删除的方法。

  1. 首先,咱们打开cmd,输入mmc,或者你在运行输入框里直接输入mmc回车,会弹出管理控制台。
  2. 点击【文件】菜单,打开【添加/删除管理单元】
  3. 找到证书,以下图1,点击【添加】按钮,以下图2
  4. 在弹出的对话框中默认选中【我当前的用户】,点击【完成】,一直到结束,这是会在控制台跟节点下多了一个证书的节点。
  5. 打开CA证书所在的位置,选择删除便可。
  6.  
  7. 这时,你再返回到IE浏览器的证书列表里,则不会再看到被删除的证书了。

除了IE以外,其余的浏览器如FireFox、Chrome、Sarifa等都证书的安装和卸载基本相似,操做时能够以IE的CA证书安装做为参考。

Proxy监听设置


当咱们启动Burp Suite时,默认会监听本地回路地址的8080端口,除此以外,咱们也能够在默认监听的基础上,根据咱们本身的需求,对监听端口和地址等参数进行自由设置。特别是当咱们测试非浏览器应用时,没法使用浏览器代理的方式去拦截客户端与服务器端通讯的数据流量,这种状况下,咱们会使用本身的Proxy监听设置,而不会使用默认设置。

  • Proxy监听设置

当咱们在实际使用中,可能须要同时测试不一样的应用程序时,咱们能够经过设置不一样的代理端口,来区分不一样的应用程序,Proxy监听即提供这样的功能设置。点击图中的【Add】按钮,会弹出Proxy监听设置对话框,里面有更丰富的设置,知足咱们不一样的测试需求。

Proxy监听设置主要包含3块功能:

  1. 端口和IP绑定设置Binding 绑定的端口port是指Burp Proxy代理服务监听的端口,绑定IP地址分仅本地回路、全部接口、指定地址三种模式,在渗透测试中,不管你选择哪一种模式,你须要明白一点,当你选择的非本地回路IP地址时,同局域网内的其余电脑也能够访问你的监听地址。
  2. 请求处理Request Handling 请求处理主要是用来控制接受到Burp Proxy监听端口的请求后,若是对请求进行处理的。
  3. 其具体配置可分为:端口的转发、主机名/域名的转发、强制使用SSL和隐形代理4个部分。当咱们配置了端口的转发时,全部的请求都会被转发到这个端口上;若是咱们配置了主机或域名的转发,则全部的请求会转发到指定的主机或域名上。同时,咱们能够指定,经过Burp Proxy的消息是否强制使用SSL,若是设置了此项,则请求如果http协议,经Burp proxy代理后将转换为https协议。隐形代理主要是用于测试富客户端应用或者是非浏览器代理方式的应用,当咱们设置了它,访问这些应用时,将经过非代理的方式,直接链接Burp Proxy的监听端口。
  4. SSL 证书 这些设置控制呈现给SSL客户端的服务器SSL证书。能够解决使用拦截代理时出现的一些SSL问题: 1.您能够消除您的浏览器的SSL警报,并须要创建SSL例外。其中,网页加载来自其余域的SSL保护的项目,能够确保这些正确的加载到浏览器,而不须要为每一个域手动接受代理的SSL证书。 2.能够与该拒绝无效的SSL证书链接到服务器胖客户机应用程序的工做。 它有下列选项可供设置:
  5. 使用自签名证书(Use a self-signed certificate ) —— 一个简单的自签名SSL证书呈现给您的浏览器,它老是会致使SSL警告。
  6. 生成每一个主机的CA签名证书(Generate CA-signed per-host certificates)—— 这是默认选项。在安装时,Burp创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用。当你的浏览器发出的SSL链接指定主机,Burp生成该主机的SSL证书,由CA证书签名。您能够安装Burp的CA证书做为浏览器中的受信任的根,从而使每一个主机证书没有任何警报接受。
  7. 生成与特定的主机名CA签发的证书(Generate a CA-signed certificate with a specific hostname)—— -是相似于前面的选项;不一样的是,Burp会生成一个主机证书与每个SSL链接使用,使用指定的主机名。
  8. 使用自定义证书(Use a custom certificate)—— 此选项能够加载一个特定的证书(在PKCS#12格式)呈现给浏览器。若是应用程序使用这须要一个特定的服务器证书(例如,与给定的序列号或证书链)的客户端应该使用这个选项。

SSL直连和隐形代理

SSL直连的设置主要用于指定的目的服务器直接经过SSL链接,而经过这些链接的请求或响应任何细节将在Burp代理拦截视图或历史日志中可见。经过SSL链接传递能够并非简单地消除在客户机上SSL错误的状况下有用。好比说,在执行SSL证书的移动应用。若是应用程序访问多个域,或使用HTTP和HTTPS链接的混合,而后经过SSL链接到特定的主机问题仍然使您可以以正常的方式使用Burp的其余方式进行通讯。若是启用自动添加客户端SSL协商失败的选项,当客户端失败的SSL协议检测(例如,因为不认可Burp的CA证书),并会自动将相关的服务器添加到SSL直统统过列表中去。其设置界面以下图所示:

有时候,在拦截富客户端软件时,咱们一般须要使用隐形代理。富客户端软件一般是指运行在浏览器以外的客户端软件,这就意味着它自己不具备HTTP代理是属性。当它进行网络通讯时,客户端将没法使代理感知或者没法由代理进行通讯。在Burp中,咱们可使用隐形代理的方式,对通讯内容进行代理或拦截,从而对通讯的请求和响应消息进行分析。使用隐形代理一般须要作以下设置(以https://example.com为例): 1.配置hosts文件,Windows操做系统下的目录位置Windows/System32/drivers/etc/hosts,而Linux或者Unix下的目录为/etc/hosts,添加以下行:

127.0.0.1 example.com

2.第一步设置完成以后,咱们须要添加一个新的监听来运行在HTTP默认的80端口,若是通讯流量使用HTTPS协议,则端口为443。

3.若是是HTTPS协议的通讯方式,咱们须要一个指定域名的CA证书。

4.接着,咱们须要把Burp拦截的流量转发给原始请求的服务器。这须要在Options->Connections->Hostname Resolution 进行设置。由于咱们已经告诉了操做系统,example.com的监听地址在127.0.0.1上,因此咱们必须告诉Burp,将example.com的流量转发到真实的服务器那里去。

5.经过这样的配置,咱们就能够欺骗富客户端软件,将流量发送到Burp监听的端口上,再由Burp将流量转发给真实的服务器。

 

【原文:burpsuite实战指南   做者:t0data   安全脉搏整理发布】

相关文章
相关标签/搜索