渗透测试工具——BurpSuite

2022年01月15日 阅读数:4
这篇文章主要向大家介绍渗透测试工具——BurpSuite,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

BurpSuite主要功能模块

BurpSuite实际上是由多个不一样的小工具(功能模块)组成的集合,工具与工具之间能够联动浏览器

主要功能模块:安全

  • Target:显示目标目录结构的-个功能
  • Proxy:拦截HTTP/HTTPS的代理服务器,做为一个在浏览器和目标应用程序之间的中间人,容许拦截、查看修改在两个方向上的原始数据流
  • Intruder: -一个定制的高度可配置的工具,对Web应用程序进行自动化攻击,如:枚举标识符、收集有用的数据以及使用fuzzing技术探测常规漏洞
  • Repeater: -个靠手动操做来触发单独的HTTP请求,并分析应用程序响应的工具
  • Sequencer:用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具
  • Decoder:进行手动执行或对应用程序数据者智能解码编码的工具
  • Comparer:一般是经过一些相关的请 求和响应获得两项数据的一-个可视化的"差别”

BurpSuite功能模块——Proxy

Proxy以拦截代理的方式,拦截全部经过代理的HTTP和HTTPS协议的流量。经过拦截,BurpSuite以中间人的方式, 能够对客户端请求数据、服务端返回作各类处理,以达到安全评估测试的目的。服务器

 BurpSuite功能模块——Interuder

Intruder在原始请求数据的基础.上,经过修改各类请求参数,以获取不一样的请求应答。每一-次请求中,Intruder一般 会携带-一个或多个有效攻击载荷,在不一样的位置进行攻击重放,经过应答数据的比对分析来得到须要的特征数据。网络

 BurpSuite功能模块——Repeater

做为BurpSuite中一款手工验证HTTP消息的测试工具,Repeater一般用于屡次重放请求响应和手工修改请求消息及修改后对服务器端响应的消息分析。app

  Repeater模块的功能及应用场景

做为BurpSuite中一款手工验证HTTP消息的测试工具,Repeater一般用于 屡次重放请求响应和手工修改请求消息及修改后对服务器端响应的消息分析,如:编辑器

  • 修改请求参数,验证输入的漏洞
  • 修改请求参数,验证逻辑越权
  • 从拦截历史记录中,捕获特征性的请求消息进行请求重放

 BurpSuite功能模块——Sequencer

做为BurpSuite中一款用于检测数据样本随机性质量的工具,Sequencer一般用于检测访问令牌是否可预测、密码重置令牌是否可预测等场景,经过Sequencer的数据样本分析,能很好地下降这些关键数据被伪造的风险。 的数据样本分析,能很好地下降这些关键数据被伪造的风险。ide

 BurpSuite功能模块——Decoder

做为BurpSuite中一款编码解码工具,Decoder的功能比较简单,它能对原始数据进行各类编码格式和散列的转换。工具

 BurpSuite功能模块——Comparer

Comparer在BurpSuite中主要提供一个可视化的差别比对功能,来对比分析两次数据之间的区别。测试

 BurpSuite Proxy模块简单使用

Proxy模块应用实例1- -HTTP报文抓取与修改

步骤1:设置BurpSuite代理服务端口

  • 选项卡Proxy-> Options-> Proxy Listeners
  • 注意: Tomcat在本机的默认端口是8080,BurpSuite proxy 在本机的默认监听端口也是8080,若是同时打开就会致使端口冲突。所以,建议将BurpSuite proxy的代理端口改成其余不经常使用端口,如10000。

 步骤2:设置FireFox浏览器代理端口

菜单项“工具”-> "选项”-> "常规" ->“网络设置”,点击“设置"按钮,在弹出的"链接设置”对话框中选择“手动代理配置”,"HTTP代理”处填写127.0.0.1,“端口” 处填写10000 (跟BurpSuite代理服务端口值保持一致),同时勾选“也将此代理用于FTP和HTTPS”,设置完成后点击"肯定”按钮。网站

 也可使用插件Proxy Switchy Omega来实现此功能

 步骤3:抓取HTTP请求报文

  • (1)首先关闭BurpSuite的拦截功能,具体方法为:选项卡Proxy-> Intercept,设置Intercept is off。
  • (2)利用FireF ox浏览器访问DVWA网站,正常显示认证页面。

 步骤3:抓取HTTP请求报文

  • (3)开启BurpSuite的拦截功能,具体方法为:选项卡Proxy-> Intercept, 设置Intercept is on.
  • (4)在DVWA网站认证页面输入登陆用户名和密码(此处可随便输入任意字符),并点击Login按钮,观察到BurpSuite已经抓到了一个HTTP请求报文。

 步骤4:修改HTTP请求报文

将BurpSuite抓到的HTTP请求报文的POST表单中的数据进行修改,设置正确的用户名(admin) 和密码(password) ,修改完成后屡次点击"Forward" 按钮发送此HTTP请求报文,观察到DVWA网站认证经过,成功登陆。

 Proxy模块应用实例2-- HTTPS报文抓取

步骤1: 设置BurpSuite代理服务端口。

步骤2:设置FireFox浏览器代理端口。

步骤3:下载并安装浏览器CA证书

(1)利用FireFox浏览器访问http://burp或127.0.0.1:8090, 点击页面右上侧的"CA Certificate" 处下载CA证书(cacert.der)

 步骤3:下载并安装浏览器CA证书

(2)在FireFox浏览器上选择菜单项“工具”->. "选项" ->“隐私与安全”->”证
书",点击“查看证书”按钮,在弹出的“证书管理器”对话框中选择“证书颁发机
构”标签页,点击“导入”按钮,将刚刚下载的cacert.der导入,导入时注意勾选
信任由此证书颁发机构来标识网站”。

 步骤4: HTTPS报文抓取

  • (1) 开启BurpSuite的拦截功能,具体方法为:选项卡Proxy->Intercept,设置Intercept is on,
  • (2)重启FireFox浏览器,并访问https://www.baidu.com,观察到BurpSuite已经抓到了一个HTTPS请求报文。

BurpSuite插件

BurpSuite在软件中提供了支持第3三方拓展插件的功能,方便使用者编写本身的自定义插件或从插件商店中安装拓展插件。
BurpSuite扩展程序以多种方式支持自定义BurpSuite的行为,例如:

  • 修改HTTP请求和响应
  • 自定义UI
  • 添加自定义扫描程序检查以及访问关键运行时信息,包括代理历史记录,目标站点地图和扫描程序问题等

Extender模块主要由四个子模块组成

1. Extensions:扩展
2.BApp Store:应用程序商店
3.APIs: 扩展API
4.Options:选项

经常使用的Burpsuite插件

Logger++: BurpSuite 自带的日志只记录了HTTP Proxy的请求,没法查看Repeater. Intruder等 模块的历史记录,Logger+ +增长了这方面的功能,能够方便地筛选查看各模块历史记录。
CSRF Token Tracker:用于渗透测试过程当中CSRF Token的自动更新。
XSS Validator:用于加强BurpSuite对XSS漏洞的检测。
CO2:包含多个小工具如SQLMapper、User Generator. Prettier JS、ASCII Payload Processo、 Masher等功能等。
Heartbleed:经典的Heartbleed心脏出血漏洞。
J2EEScan:该插件可以检测JBoss、Tomcat、 Weblogic. Oracle应用服务
器、Jetty、Apache Axis、JBoss SEAM、Java Server Faces、Apache
谷、Wicket、Grails、 Apache Struts以及多种CVE漏洞。

 BurpSuite Intruder模块

Intruder模块的工做原理

Intruder在原始请求数据的基础上,经过修改各类请求参数,以获取不一样的请求应答。每一次请求中,Intruder通 常会携带一个或多个有效攻击载荷(payload),在不一样的位置进行攻击重放,经过应答数据的比对分析来得到须要的特征数据。

 Intruder模块的常见应用场景

  • 标识符枚举: Web应用程序常用标识符来引用用户、帐户、资产等数据信息,例如用户名、密码、文件ID等。
  • 提取有用的数据:在某些场景下,须要经过简单标识符提取一些其余的数据。好比经过用户的我的空间id,获取全部用户在我的空间标准的昵称和年龄。
  • 模糊测试:不少输入型的漏洞,如SQL注入、XSS和文件路径遍历等,能够经过请求参数提交各类测试字符串,并分析错误消息和其余异常状况,来对应用程序进行检测。因为应用程序的复杂性,手动执行这个测试是一一个耗时且繁琐的过程。这样的场景,能够设置payload,经过Intruder自动化地对Web应用程序进行模糊测试。

 Intrider模块——Target子选项卡

用于设置攻击目标

 Intrider模块——Positions子选项卡

用于设置攻击位置和攻击模式

 payload的位置

  • [Add 6] :在当前光标的位置添加一一个Payload位置标志
  • [Clear 5] :清除全部Payload位置标志或者清除选中的Payload位置标志
  • [Auto 6] :对消息内容中可能须要标志的参数作-一个猜想,标志为Payload位置,自动设置完以后再作人工的选择,肯定哪些位置是须要传入Payload的。
  • [Refresh] :刷新消息内容中带有颜色的部分。
  • [Clear] :清除消息编辑器中全部内容。

攻击模式

  • 狙击手模式(Sniper) :单payload位置,单payload集合,简单替换,如有多个payload位置,则会在每个位置 上遍历- -次payload集合
  • 攻城锤模式(Battering ram) :多payload位置,单payload集合, 在多个位置上使用相同的payload
  • 草叉模式(Pitchfork) :多payload位置,多payload集合, 在每一个payload位置.上遍历对应的payload集合,攻击次数为最短的payload集合的元素个数
  • 集束炸弹模式(Cluster bomb) :多payload位置,多payload集合,以多个payload集合的笛卡尔积做为攻击序列。如第一一个位 置的payload集合是{A,B},第二格位置的payload集合是{C,D},则攻击序列为{<A,C>,<A,D>,<B,C>.<B,D>}

 Intruder模块——Payloads子选项卡

用于设置攻击载荷

 payload类型一一简单列表(Simple list)

最简单的payload类型, 配置-一个字符串列表做为payload,也能够手工添加字符串列表或从文件加载字符串列表。

 payload类型——运行时文件(Runtime file)

指定文件,做为相对应payload位置上的payload列表。

 payload类型——自定义迭代器(Custom iterator)

它共有8个占位,每一个占位能够定义一个简单列表,最终所使用的payload为每一个占位的简单列表的笛卡儿积。

 例如:在HTTP Basic认证中,用户名密码的格式是[username]:[password],利用Intruder进行爆破,只须要在第-一个占位中加入username列表,在第二个占位中输入”:.",在第三个占位中输入password列表,就能产生如图的效果。

 payload类型——字符串替换(Character substitution)

对预约义字符串进行”枚举替换“后产生新的payload。

 payload类型- -一递归提取( Recursive grep)

  • 从服务器端提取有效数据的场景,须要先从服务器的响应中提取数据做为payload,而后替换payload的位置,进行攻击。
  • 递归的配置须要进入Options->Grep-Extract进行配置;使用Recursivegrep模式时,线程数必须为1

 其它payload类型

  • 字符块(Character blocks) :使用一个给出的输入字符串,根据指定的设置产生指定大小的字符块,表现形式为生成指定长度的字符串
  • 数字类型(Number) :根据配置,生成-系列的数字做为payload
  • 日期类型(Dates) :根据配置,生成一系列的日期
  • 暴力字典(Brute forcer) :生成包含-一个指定的字符集的全部排列特定长度的有效载荷,一般用于枚举字典的生成
  • 空类型(Null payloads) : 产生的payload其值是一一个空字符串
  • payload复制(Copy other payload) :这种类型的payload是将其余位置的参数复制到payload位置上

 Intruder模块一一Options子选项卡

  • 请求消息头设置(Request Headers)
  • 请求引擎设置(Request Engine)
  • 攻击结果设置( Attack Results)
  • 正则匹配(Grep Match)
  • 正则提取(Grep Extract)
  • 正则匹配payload (Grep payloads)
  • 重定向(Redirections)

 Intruder爆破实例

Interuder模块应用实例——DVWA暴力破解(Low级别)

步骤1:进入DVWA,将安全等级调至Low,并进入网站暴力破解模块

 步骤2:设置BurpSuite代理服务端口和FireFox浏览器的代理端口

步骤3:开启BurpSuite拦截功能,并在DVWA网站的暴力破解( Brute Force )模块登陆处任意输入用户名和密码,点击login按钮, 此时BurpSuite Proxy会拦截到HTTP请求报文。

 步骤4,选中拦截到的HTTP请求宝,发送到Intruder

 步骤5:进入选项卡Intruder-> Positions,先点击"Clear s"按钮清空默认选择的位置,而后依次选中"username="和"password="后面的值,并点击"Add g"按钮指定爆破位置,同时将Attack type设置为"Cluster bomb"(集束炸弹模式)。

 步骤6:进入选项卡Intruder-> Payloads,设置2个payload set (有效载荷集),分别用于爆破用户名(username) 和密码(password)。

 步骤7:点击右上方的”Start attack“按钮执行爆破攻击,并观察结果。经过请求报文的长度或应答报文的内容判断,正确用户名和密码为admin/password