burpsuite的常用方法

0x00 前言

渗透测试专题的文章都是我加入御林后跟学长们一起学习后的总结,因此可能没有什么过多的原理,大多都是学会基础之后的实践。但是挖洞的基础知识不止这么一点,因此这只是基础,要通过不断的学习和尝试才能提升自己。

其他的在我的另一篇文章《关于渗透测试的一点想法》都记录下了。所以在这里就不多说辣。今天(2020.6.3)决定把之前学习渗透测试的几篇文章搬运过来了,但通过这次美团高校挑战赛还是学到不少挖洞知识的。(但我还是不太敢在博客中写真实的挖洞记录hhh就算是打了码也不太敢。所以就随便记录一点比较简单的东西吧。接下来进入正题了。

burp实战指南

0x01 burpsuite的破解与安装

之前cnss招新那会下载过burp,但burp一直是躺在我虚拟机里的…我觉得8太行8太好用。

我找苏学长要到破解版之后。又在⽹上找了好几个教程才把burp装好并制作成了app。然而当我设好代理以后,burp抓取https协议的网站不成功。我知道是证书的问题,在 http://burp 下载好证书并在系统、firefox上都导⼊入后始终不成功。这里我找了好多别人的解决方案依然失败,折腾了很久。最后我一个朋友(今日更正:男朋友hhhhh)让我在burp中导出证书再导入到浏览器⾥试,结果还莫名其妙成功了QAQ。我也不知道是为什么,我觉得这两种方法应该是同样的原理啊555。

0x02 使用Burp Target

Target主要包含Site Map、⽬标域、Target ⼯具。主要是⽤来渗透测试人员更好地了解⽬标应用的整体状况、当前的工作涉及哪些⽬目标域、分析可能存在的攻击⾯等。

主要内容:

  • ⽬标域设置Target Scope
  • 站点地图 Site Map
  • Target ⼯具的使用

1.目标域设置Target Scope

Target Scope的作用域比较广泛,⽐如可以通过域名和主机名限制拦截内容,或是拦截某个目录下的所有请求。主要⽤于一下几个场景:

  • 限制站点地图和Proxy 历史中的显示结果
  • 告诉Burp Proxy 拦截哪些请求
  • 限制Burp Spider抓取的内容
  • Burp Scanner自动扫描某些作用域的安全漏洞
  • 在Burp Intruder和Burp Repeater 中指定URL

Target Scope的设置中,主要包含以下的允许规则和去掉规则。

添加规则中主要包括协议、域名或IP地址、端口、文件名。

2.站点地图Site Map

我们设置了Target Scope (默认时为全部允许),使用Burp Proxy进行代理拦截,在渗透测试中通过浏览器代理浏览应用时,Burp会⾃动将浏览信息记录下来, 包含每一个请求和应答的详细信息,保存在Target站点地图中。

从上图我们可以看出,Site Map的左边为访问的URL,按照网站的层级和深度,树形展示整个应用系统的结构和关联其他域的url情况;右边显示的是某一个url被访问的明细列表,共访问哪些url,请求和应答内容分别是什么,都有着详实的记录。 基于左边的树形结构,我们可以选择某个分支,对指定的路径进⾏扫描和抓取。对于站点地图的分层,可以通过折叠和展开操作,更好的分析站点结构。

3.Target 工具的使⽤

害我觉得这个是⾼级渗透人员用的,我开始看不懂了,先看下⾯的吧。

0x03 使⽤Burp Spider

敢信吗我的破解专业版没有Spider,但我看了,它⼤概是爬取站点中的许多信息, 对一个应用程序的内容和功能进⾏全面的清查。它还使⽤了⼀些其他的线索,如⽬录列表,资源类型的注释,以及 robots.txt 文件。结果会在站点地图中以树和表的形式显示出来,提供了⼀个清楚并且非常详细的⽬标应⽤程序视图。

0x04 使用Burp Intruder

在渗透测试过程中,我们经常使用Burp Intruder,它的工作原理是:Intruder在原始请求数据的基础上,通过修改各种请求参数,以获取不同的请求应答。每⼀次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的⽐对分析来获得需要的特征数据。

1.Burp Intruder的使用场景:

  • 标识符枚举:Web 应⽤程序经常使用标识符来引用用户、账户、资产等数据信息。例如,⽤户名, 文件ID和账户号码。
  • 提取有用的数据
  • 模糊测试:很多输⼊型的漏洞,如SQL注入,密码爆破。

2.Burp Intruder的操作步骤

1.确认Burp Suite安装正确并正常启动,且完成了了浏览器器的代理理设置。

2.进入Burp Proxy选项卡,关闭代理拦截功能。

3.进⾏历史⽇志(History)⼦选项卡,查找可能存在问题的请求日志,并通过右击菜单,发送到 Intruder

4.进入Intruder 选项卡,打开TargetPositions子选项卡。

5.在Position界⾯面的右边,有【Add】【Clear】【Auto】【Refresh】四个按钮,他们是用来控制请求消息中的参数在发送过程中是否被Payload替换,如果不想被替换,则选择此参数后点击【Clear $,即将参数前缀去掉。

6.打开Payload 子选项卡,选择Payload的⽣成或者选择策略,默认情况下选择“Simple list”,也可以通过下拉选择其他Payload类型或者⼿工添加。

7.此时,再回到Position界⾯面,在界⾯的右上角,点击【Start attack】,发起攻击。

8.Burp会自动打开⼀个新的界面,包含攻击执行的情况、Http状态码、⻓度等结果信息。

9.也可以选择其中的某⼀次通信信息,查看请求消息和应答消息的详细情况。

10.很多时候,为了更好的标明应答消息中是否包含有我们需要的信息,通常在进行攻击前,会进行 Options选项的相关配置,使⽤最多的为正则表达式匹配(Grep - Match)。

以上是常规方法,因此其中的步骤可以按照⾃己的需要来改变。

3.Payload位置和攻击类型

  • Sniper:使⽤一组Payload集合,依次替换Payload位置,对服务器端进⾏请求,通常用于测试请求参数是否存在漏洞。
  • Battering ram:使⽤一组Payload集合,依次替换Payload位置,与Sniper模式的区别在于,如果有多个参数且都为Payload位置标志时,使⽤的Payload值是相同的,而Sniper模式只能使⽤一个Payload位置标志。
  • Pitchfork:它可以使用多组Payload集合,在每⼀个不同的Payload标志位置上(最多20个),遍历所有的Payload。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload 值为C和D,则发起攻击时,将共发起两次攻击,第⼀次使⽤的Payload分别为A和C,第⼆次使用的Payload分别为B和D。
  • Cluster bomb:它可以使用多组Payload集合,在每⼀个不同的Payload标志位置上(最多20个), 依次遍历所有的Payload。它与Pitchfork模式的主要区别在于,执行的Payload数据Payload组的乘积。 举例来说,如果有两个Payload标志位置,第⼀个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起四次攻击,第⼀次使⽤的Payload分别为A和C,第二次使⽤用的Payload分别为A和D,第三次使用的Payload分别为B和C,第四次使用的Payload分别为B和D。

0x05 使用Burp Repeater

Burp Repeater作为Burp Suite中⼀款⼿工验证HTTP消息的测试⼯具,通常⽤于多次重放请求响应和⼿手工修改请求消息的修改后对服务器端响应的消息分析。

Repeater的使⽤

在渗透测试过程中,Repeater经常被⽤来进行请求与响应的消息验证分析,⽐修改请求参数,验证输入的漏洞;修改请求参数,验证逻辑越权;从拦截历史记录中,捕获特征性的请求消息进行请求重放。 如图:

在编号的下方,有一个【GO】(这个版本是send)按钮,当我们对请求的消息编辑完之后,点击此按钮即发送请求给服务器端。应答消息区为对应的请求消息点击【send】按钮后,服务器端的反馈消息。 通过修改请求消息的参数来⽐对分析每次应答消息之间的差异,能更好的帮助我们分析系统可能存在的漏洞。

还可以在此处查看一些消息头等信息

此处可以增加参数和remove一些参数。

0x06 使⽤Burp Decoder

Decoder是Burp Suite中的编码解码工具,它能对原始数据进⾏各种编码格式和散列的转换。其界⾯如下图,主要由输入域、输出域、编码解码选项三大部分组成。

0x07 使⽤Burp Comparer

Burp Comparer在Burpsuite中主要提供⼀个可视化的差异比对功能,来对比分析两次数据之间的区别。可能使⽤用的场景:

  • 枚举⽤户名过程中,对⽐分析登陆成功和失败时,服务器端反馈结果的区别。
  • 使⽤ Intruder 进行攻击时,对于不同的服务器端响应,可以很快的分析出两次响应的区别在哪里。
  • 进行SQL注入的盲注测试时,⽐较两次响应消息的差异,判断响应结果与注入条件的关联关系。(刚知道原来burp还能⽤用来sql盲注,之前都是写python)

Comparer的使⽤

1.数据加载:可以从history中send,可以粘贴,可以从文件中加载。

2.差异分析:如果点击了【words】或者【bytes】,则进入比对界面,⻚面⾃动通过背景颜⾊显示数据的差异。如下图:

words:

bytes:

0x08 总结

本文是列出了一些比较基础的使用方法,burp是web安全中很重要的一个工具,只有自己多用多试,才能用熟它。

Author: Neorah
Link: https://neorah.me/pentest/burp/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.