首页 > 其他分享 >最新Burp Suite进阶技术

最新Burp Suite进阶技术

时间:2024-02-08 10:33:32浏览次数:28  
标签:请求 漏洞 Burp 所示 Suite 如图 Payload 进阶

Burp Suite进阶

1.Burp Scanner

Burp Scanner主要用于自动检测Web系统的各种漏洞。本节介绍Burp Scanner的基本使用方法,在实际使用中可能会有所改变,但大体环节如下。

首先,确认Burp Suite正常启动并完成浏览器代理的配置。然后进入Burp Proxy,关闭代理拦截功能,快速浏览需要扫描的域或URL模块。在默认情况下,Burp Scanner会扫描通过代理服务的请求,并对请求的消息进行分析,进而辨别是否存在系统漏洞。打开Burp Target时,也会在网站地图中显示请求的URL树。

我们随便找一个网站进行测试,选择“Target”界面中的“Site map”选项下的链接,在其链接URL上单击鼠标右键,选择“Actively scan this host”选项,此时会弹出过滤设置,保持默认选项即可扫描整个域,如图3-26所示。

 

 

 

 

图3-26  

 

也可以在“Proxy”界面下的“HTTP history”中,选择某个节点上的链接URL并单击鼠标右键,选择“Do active scan”选项进行扫描,如图3-27所示。

 

 

 

 

图3-27  

 

这时,Burp Scanner开始扫描,在“Site map”界面下即可看到扫描结果,如图3-28所示。

 

 

 

 

图3-28  

 

也可以在扫描结果中选中需要进行分析的部分,将其发送到Repeater模块,然后进行分析和验证,如图3-29所示。

 

 

 

 

图3-29  

 

Burp Scanner扫描完成后,可以右键单击“Target”界面中“Site map”选项下的链接,依次选择“Issues”→“Report issues for this host”选项,导出漏洞报告,如图3-30所示。

 

 

 

 

图3-30  

 

将漏洞报告以HTML文件的格式保存,结果如图3-31所示。

 

 

 

 

图3-31  

通过以上操作步骤我们可以学习到Burp Scanner主要有主动扫描(Active Scanning)和被动扫描(Passive Scanning)两种扫描模式。

 

(1)主动扫描。

当使用主动扫描模式时,Burp Suite会向应用发送新的请求并通过Payload验证漏洞。这种模式下的操作会产生大量的请求和应答数据,直接影响服务器端的性能,通常用于非生产环境。主动扫描模式适用于以下两类漏洞。

— 客户端的漏洞,如XSS、HTTP头注入、操作重定向。

— 服务器端的漏洞,如SQL注入、命令行注入、文件遍历。

对于第一类漏洞,Burp Suite在检测时会提交input域,然后根据应答的数据进行解析。在检测过程中,Burp Suite会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。对于第二类漏洞,以SQL注入为例,服务器端有可能返回数据库错误提示信息,也有可能什么都不反馈。在检测过程中,Burp Suite会通过各种技术验证漏洞是否存在,如诱导时间延迟、强制修改Boolean值、与模糊测试的结果进行比较,以提高漏洞扫描报告的准确性。

 

(2)被动扫描。

当使用被动扫描模式时,Burp Suite不会重新发送新的请求,只是对已经存在的请求和应答进行分析,对服务器端的检测来说,这样做比较安全,通常适用于对生产环境的检测。一般来说,下列漏洞在被动扫描模式中容易被检测出来。

— 提交的密码为未加密的明文。

— 不安全的Cookie的属性,如缺少HttpOnly和安全标志。

— Cookie的范围缺失。

— 跨域脚本和站点引用泄露。

— 表单值自动填充,尤其是密码。

— SSL保护的内容缓存。

— 目录列表。

— 提交密码后应答延迟。

— Session令牌的不安全传输。

— 敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露。

— 不安全的ViewState的配置。

— 错误或不规范的Content-Type指令。

虽然被动扫描模式相比主动扫描模式有很多不足,但它也具有主动扫描模式不具备的优点。除了对服务器端的检测比较安全,当某种业务场景的测试每次都会破坏业务场景的某方面功能时,被动扫描模式可以被用来验证是否存在漏洞,以减少测试的风险。

 

2.Burp Intruder

Burp Intruder是一个定制的高度可配置的工具,可以对Web应用程序进行自动化攻击,如通过标识符枚举用户名、文件ID和账户号码,模糊测试,SQL注入测试,跨站脚本测试,遍历目录等。

它的工作原理是在原始请求数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Burp Intruder通常会携带一个或多个Payload,在不同的位置进行攻击重放,通过应答数据的比对分析获得特征数据。Burp Intruder通常被应用于以下场景。

 

— 标识符枚举。Web应用程序经常使用标识符引用用户名、账户、资产等数据信息。例如,通过标识符枚举用户名、文件ID和账户号码。

— 提取有用的数据。在某些场景下,不是简单地识别有效标识符,而是通过简单标识符提取其他数据。例如,通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄。

— 模糊测试。很多输入型的漏洞(如SQL注入、跨站脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且烦琐的过程,因此可以设置Payload,通过Burp Intruder自动化地对Web应用程序进行模糊测试。

 

下面演示利用Burp Intruder模块爆破无验证码和次数限制的网站的方法,如图3-32所示。这里使用该方法只是为了演示,读者不要将其用于其他非法用途。

 

 

 

 

图3-32  

 

前提是得有比较好的字典,准备好的字典如图3-33所示。需要注意的是,Burp Suite的文件不要放在中文的路径下。

 

 

 

 

图3-33  

 

首先将数据包发送到Intruder模块,如图3-34所示。

 

 

 

 

图3-34  

 

由于Burp Intruder会自动对某些参数进行标记,所以这里先清除所有标记,如图3-35所示。

 

 

 

 

图3-35  

 

然后选择要进行暴力破解的参数值,将参数“password”选中,单击“Add$”按钮,如图3-36所示。这里只对一个参数进行暴力破解,所以攻击类型使用Sniper模式即可。要注意的是,如果想同时对用户名和密码进行破解,可以同时选中参数“user”和参数“pass”,并且选择交叉式Cluster bomb模式进行暴力破解。

 

 

 

图3-36  

 

Burp Intruder有四种攻击模式,下面分别介绍每种攻击模式的用法。

 

— Sniper模式使用单一的Payload组。它会针对每个位置设置Payload。这种攻击类型适用于对常见漏洞中的请求参数单独进行Fuzzing测试的情况。攻击请求的总数应该是Position数量和Payload数量的乘积。

— Battering ram模式使用单一的Payload组。它会重复Payload并一次性把所有相同的Payload放入指定的位置。这种攻击适用于需要在请求中把相同的输入放到多个位置的情况。攻击请求的总数是Payload组中Payload的总数。

— Pitch fork模式使用多个Payload组。攻击会同步迭代所有的Payload组,把Payload放入每个定义的位置中。这种攻击类型非常适合需要在不同位置中插入不同但相似输入的情况。攻击请求的总数应该是最小的Payload组中的Payload数量。

— Cluster bomb模式会使用多个Payload组。每个定义的位置中有不同的Payload组。攻击会迭代每个Payload组,每种Payload组合都会被测试一遍。这种攻击适用于每个Payload组中的Payload都组合一次的情况。攻击请求的总数是各Payload组中Payload数量的乘积。

 

下面选择要添加的字典,如图3-37所示。

 

 

 

 

图3-37  

 

然后开始破解并等待破解结束,如图3-38所示。

 

 

 

图3-38  

 

这里对“Status”或“Length”的返回值进行排序,查看是否有不同之处。如果有,则查看返回包是否显示为登录成功。如果返回的数据包中有明显的登录成功的信息,则说明已经破解成功,如图3-39所示。

 

 

 

 

图3-39  

 

3.Burp Repeater

Burp Repeater是一个手动修改、补发个别HTTP请求,并分析它们的响应的工具。它最大的用途就是能和其他Burp Suite工具结合起来使用。可以将目标网站地图、Burp Proxy浏览记录和Burp Intruder的攻击结果发送到Burp Repeater上,并通过手动调整这个请求对漏洞的探测或攻击进行微调。

Burp Repeater中数据包的显示方式有Raw和Hex两种。

 

(1)Raw:显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,可以用来快速定位需要寻找的字符串,如出错消息。利用搜索栏左边的弹出项,能控制状况的灵敏度,以及是否使用简单文本或十六进制进行搜索。

(2)Hex:允许直接编辑由原始二进制数据组成的消息。

在渗透测试的过程中,经常使用Burp Repeater进行请求与响应的消息验证分析,例如修改请求参数,验证输入的漏洞;修改请求参数,验证逻辑越权;从拦截的历史记录中,捕获特征性的请求消息进行请求重放。这里将Burp Intercept中抓到的数据包发送到Burp Repeater,如图3-40所示。

 

 

 

 

图3-40  

 

在Burp Repeater的操作界面中,左边的“Request”为请求消息区,右边的“Response”为应答消息区。请求消息区显示的是客户端发送的请求消息的详细内容。编辑完请求消息后,单击“Send”按钮即可将其发送给服务器端,如图3-41所示。

 

 

 

图3-41  

 

应答消息区显示的是服务器端针对请求消息的应答消息。通过修改请求消息的参数来比对分析每次应答消息之间的差异,能更好地帮助我们分析系统可能存在的漏洞,如图3-42所示。

 

 

 

 

图3-42  

 

4.Burp Comparer

Burp Comparer提供可视化的差异比对功能,来对比分析两次数据之间的区别,适用的场合有以下几种。

(1)枚举用户名的过程中,对比分析登录成功和失败时,服务器端反馈结果的区别。

(2)使用Burp Intruder进行攻击时,对于不同的服务器端响应,可以很快分析出两次响应的区别。

(3)进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系。

使用Burp Comparer时有两个步骤,先是数据加载,如图3-43所示,然后是差异分析,如图3-44所示。

 

 

 

 

图3-43  

 

 

 

 

图3-44  

 

Burp Comparer数据加载的常用方式如下。

 

— 从Burp Suite中的其他模块转发过来。

— 直接复制粘贴。

— 从文件里加载。

 

加载完毕后,选择两个不同的数据,然后单击“文本比较”(Words)按钮或“字节比较”(Bytes)按钮进行比较。

 

5.Burp Sequencer

Burp Sequencer是一种用于分析数据样本随机性质量的工具。可以用它测试应用程序的会话令牌(Session Token)、密码重置令牌是否可预测等,通过Burp Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。

Burp Sequencer主要由信息截取(Live Capture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成。

截取信息后,单击“Load…”按钮加载信息,然后单击“Analyze now”按钮进行分析,如图3-45所示。

 

 

 

 

图3-45  

 

Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。

 

平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。

 

扫描客服微信 获取更多课件+学习资料

 

标签:请求,漏洞,Burp,所示,Suite,如图,Payload,进阶
From: https://www.cnblogs.com/ms08067/p/18011636

相关文章

  • Vim进阶学习
    vim的进阶学习分为两部分:自定义配置文件以及插件的使用。自定义配置文件在这里我们需要修改.vimrc文件,稍后我会将我的配置文件发在文章结尾,所有的配置都是参考b站的课程:传送门。首先就是"代码高亮syntaxon"设置行号setnumber"主题使用OneDarkcolorschemeonedark"......
  • MySQL-进阶
    一、MySQL体系结构1.连接层:一些客户端和连接服务,完成连接处理、授权认证及相关操作2.服务层:完成大多数核心服务的功能,比如SQL的分析和优化3.引擎层:负责MySQL中数据的存储和提取4.存储层:数据存储层,将数据存储在文件系统上,并完成与存储引擎的交互二、存储引擎(MySQL的核心)1.定......
  • 华为云软件开发生产线CodeArts开发者实践8件套——开发者的进阶宝典!
    华为云软件开发生产线CodeArts是一站式DevSecOps平台,集华为多年研发实践,前沿研发理念,领先研发工程能力于一体,覆盖软件开发全生命周期,开箱即用,为您提供软件开发的一切。为帮助开发者快速上手CodeArts,我们汇聚了精品视频课程、在线动手实验、职业认证及丰富示例代码,助您扫平产品使用......
  • 耗时一个月我问遍了身边的大佬,零基础自学Java的路线,适用程序员入门&进阶,Java学习路线,2
    作为一个有志于成为Java程序员的你,或许正处在技术生涯的起点,或许已经走过了入门的道路,期待跨越进阶的门槛?无论处于哪个阶段,一条明确的学习路线都至关重要,通过向众多行业大佬请教、反复探索和实践,总结出一套适用于零基础自学者大学四年Java学习路线,也同样适用于从初级到研发专家的学......
  • Netsuite 官方解答渠道
    https://nlcorp.extforms.netsuite.com/app/site/crm/externalcasepage.nl?compid=NLCORP&formid=203&h=AAFdikaIO4S1EChHN12RnhSbV6RPuAQyeH7t77JPbej9kLQm8_E&custentity73=8801598&companyname=8801598+%25u5510%25u52BF%25uFF08%25u4E0A%25u6D77%25uFF09%......
  • RK3568驱动指南|驱动基础进阶篇-进阶7 向系统中添加一个系统调用
      瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和linux系统,主......
  • 关于Windows11的优化内容 - 进阶者系列 - 学习者系列文章
          这几天无事,想起上次刚重装的Windows11操作系统,对于系统优化的内容想记录一下,以前没写过相关的博文,这次就做个记录吧。对于Windows11,已经出来几年了,相关的设置啥的也有,就是优化方面的软件和设置也有相关的,这次就把笔者这边所有相关的优化工具软件和脚本啥的一并发布......
  • 【APP自动化进阶】pytest+appium多设备并发
    并发编程基础【Python进阶】并发编程方式APP自动化并发项目实战项目步骤获取设备信息并根据设备数量开启n个进程appium服务处理pytest前置处理开启appium服务pytest后置处理关闭appium服务pytest进行用例执行,并输出报告数据等待进程执行完毕生成每个设备的allure报告......
  • 【Python进阶】并发编程方式
    并发编程方式有哪些?threading模块---线程asyncio模块---协程concurrent.futures模块---进程+线程(应用于异步调用)multiprocessing模块---进程进程、线程、协程?进程:运行起来的程序就是进程,是操作系统分配资源的最小单位。线程:线程是进程的组成部分,一个进程可以拥有多个线......
  • 【pytest进阶】pytest之hook函数
    什么是hook函数比如说你写了一个框架类的程序,你希望这个框架可以“被其他的代码注入”,即别人可以加入代码对你这个框架进行定制化,该如何做比较好?一种很常见的方式就是约定一个规则,框架初始化时会收集满足这个规则的所有代码(文件),然后把这些代码加入到框架中来,在执行时一并执行......