渗透测试工具——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通常用于多次重放请求响应和手工修改请求消息及修改后对服务器端响应的消息分析。

  Repeater模块的功能及应用场景

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

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

 BurpSuite功能模块——Sequencer

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

 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

Guess you like

Origin blog.csdn.net/weixin_59872639/article/details/122482102