企业专业的
审计
最近更新时间:2022年4月6日
阅读时间:9分钟
扫描的审计阶段涉及分析应用程序的流量和行为,以识别安全漏洞和其他问题。bepaly下载 采用广泛的技术来对正在扫描的应用程序进行高覆盖范围的审核。
审核阶段
Burp扫描仪进行了几个不同的审核阶段。这些分为三个领域:
- 被动阶段
- 活性相
- JavaScript分析阶段
在每个区域内执行多个阶段,使BURP到:
- 有效地查找和利用存储用户输入的功能。
- 避免以最佳方式处理经常发生的问题和插入点来重复。
- 并行执行适用的工作,以最有效地利用系统资源。
问题类型
Burp能够发现各种各样的问题,包括安全漏洞和其他信息感兴趣。
可以根据检测到的审计活动的性质将问题分为不同的类型:
- 被动 - 这些是可以通过检查申请的正常请求和响应来纯粹检测到的问题。例如,HTTP消息中的序列化对象。
- 光活动 - 这些问题可以通过提出少量的其他请求来检测到。例如,信任任意起源的交叉原始资源共享(CORS)。
- 中等活跃 - 这些问题可以通过提出要求合理地将其视为恶意的请求来检测到。例如,OS命令注射。
- 侵入性活动 - 这些问题可以通过提出损害应用程序或其数据的较高风险的请求来检测到。例如,SQL注入。
- JavaScript分析 - 这些问题可以通过分析应用程序在客户端执行的JavaScript来检测到。例如,基于DOM的跨站点脚本。检测这些问题通常是Burp运行的机器上的资源密集型。这些问题也可以归类为“被动”(用于基于自动的DOM问题)或“中型活动”(用于反射和存储的变体)。
问题也可以根据发现的水平分为不同的类型:
- 主机级别 - 这些是在应用程序正在运行的主机HTTP服务级别中出现的问题。例如,允许Flash跨域政策。
- 请求级别 - 这些是个人请求级别出现的问题。例如,跨站点伪造。
- 插入点级别 - 这些是在请求中插入点的级别出现的问题。例如,文件路径遍历。
插入点
Burp扫描仪使用插入点的概念将有效载荷放在请求中的不同位置。通常,插入点表示请求中可能由服务器端应用程序专门处理的数据。下面的示例显示了一个请求,其中突出显示了一些常见类型的插入点:
Burp扫描仪分别审核插入点,将有效载荷发送到每个插入点,以测试应用程序对该输入的处理。
在插入点中编码数据
HTTP请求中的不同位置通常需要以不同的方式对其数据进行编码。BURP扫描仪会根据插入点的类型自动将合适的编码应用于有效载荷,以确保原始有效载荷达到相关的应用程序功能。例如,将不同的编码应用于标准身体参数:
到JSON数据中的参数:
以及XML数据中的参数:
BURP扫描仪还检测到应用程序何时使用与插入点类型无关的其他类型的编码,例如base64:
嵌套插入点
一些应用程序将多层编码应用于相同的数据,有效地将一种格式嵌套在另一种格式中。Burp扫描仪能够检测到此行为,并自动将相同的编码层应用于有效载荷:
修改参数位置
某些应用程序将一定的输入放入一种类型的参数中,但实际上,如果输入以不同类型的参数提交,则将处理该输入。之所以发生这种情况,是因为某些应用程序用来从请求检索输入的平台API对持有输入的参数类型不可知。但是,应用程序周围的某些保护(例如Web应用程序防火墙)可能仅适用于原始参数类型。beplay体育能用吗
BURP可以选择通过更改插入点的参数类型来利用此行为,从而创建可能绕过保护并达到脆弱应用程序功能的请求。例如,如果在URL查询字符串参数中提交有效载荷,则BURP还可能在车身参数和cookie中提交相应的有效载荷:
自动会话处理
当Burp Scanner的审核从自动爬网进行后面,它可以利用爬网结果在审核期间自动维护会话,用户配置为零。
当Burp对单个请求进行审核时,它首先要识别从爬网的起始位置达到该请求的最短途径:
然后,BURP确定在有效会话中反复反复交付同一请求的最有效方法。它通过首先重新步行以获取任何会话令牌的新样本,然后测试路径的各种简化,以查看会话是否正确维护。
在许多情况下,可以一遍又一遍地重新发行最终请求。可能会发生这种情况,因为该请求实际上根本不包含任何会话令牌:
或因为唯一的会话令牌是cookie,通常可以多次使用:
或因为,尽管请求都包含cookie和CSRF令牌,CSRF令牌可以反复使用:
在某些情况下,有必要在发出审核的请求之前,在每种情况下发布前面的请求。通常是因为应用程序使用单使用CSRF代币。由于代币是一次性的,因此有必要在每种情况下重新发出前面的请求,以获得新的令牌。
在极端情况下,请求之间的每个过渡都受到单使用令牌的保护。这偶尔会发生在严格控制导航的高安全性应用中。在这种情况下,反复发出审核请求的最可靠方法是始终返回起始位置,并为该请求走完整的路径:
一旦Burp确定了重复发布要审核的请求的最有效方法,就会进行审核。在进行各种审计检查的同时,BURP会定期监视申请的响应,以确保维护有效的会议。如果Burp积极确认会议的有效性,则将在已完全完成的审计检查上设置检查站。如果Burp确定会话不再有效,则将回到最新的检查点并从那里恢复。这种逻辑的方式是以最小化会话管理开销的方式进行的,如果会话经常丢失,则避免了无限期的循环。例如:
避免重复
Burp Scanner使用各种技术来最大程度地减少重复的努力和重复问题的报告。
巩固经常发生的被动问题
由于选择的开发方法或重复使用的页面模板(例如,跨站点请求伪造或跨域脚本包括),某些被动检测的问题可能在应用程序中的许多不同位置存在。由于平台级配置,甚至在整个应用程序中甚至会存在一些问题(例如,严格的运输安全性未执行)。在这种情况下,默认情况下,BURP扫描仪将避免通过汇总这些问题并在适用级别报告单个问题来避免产生重复的问题,这可能是主机的Web根或所有问题下面的特定文件夹。beplay体育能用吗
处理经常发生的插入点
某些插入点可能存在于应用程序使用的许多或所有请求中,但可能不代表有趣的攻击表面。此示例是cookie,一旦设置,将在后续的每个请求中提交,而将cachebuster参数放入URL查询字符串中以防止缓存,但没有由服务器端应用程序处理。在每个请求中对这些插入点进行全面审核可能代表了冗余工作的大量开销。在这种情况下,默认情况下,BURP扫描仪将确定已证明是无趣的插入点(经常发生而没有生成任何问题),并且会降低对这些插入点的更轻量级的审核。如果轻量级审核标识了指示服务器端处理的任何有趣的行为,则BURP将继续并对插入点进行全面审核。
JavaScript分析
Burp扫描仪分析应用程序响应中包含的JavaScript,以确定广泛的基于DOM的漏洞。为此,它结合了静态和动态分析的组合:
- 静态分析 - 这解析了JavaScript代码以构建抽象语法树(AST)。它标识了攻击者可能可控制的受污水,以及可用于执行攻击的危险水槽。它分析了可能的数据流贯穿代码,以识别可通过恶意数据从污染源传播到危险的水槽的潜在路径。
- 动态分析 - 将响应加载到嵌入式无头浏览器中。它在可能由攻击者可控制的位置注入有效载荷,并在响应中执行JavaScript。它还通过创建鼠标事件来实现尽可能多的代码覆盖范围来与页面交互(在
OnClick
事件处理程序等)。它监视可用于执行攻击的危险水槽,以识别到达这些水槽的任何注射有效载荷。
静态和动态的方法具有不同的固有优势和劣势:
- 静态分析能够找到一些动态分析遗漏的漏洞,因为静态分析可以识别可能在正确情况下可以执行的代码路径,但实际上在动态分析过程中并未执行。例如,执行中的分支可以由攻击者控制的许多参数控制。静态分析能够识别和分析该分支并在其中找到污点路径,而动态分析可能不会触发由于其使用的参数的实际组合而导致的相关执行。但是,静态分析本质上容易呈误报结果,因为它可能会在实际上不是代码分支的某些组合中视为可执行文件,并且因为它无法理解自定义数据验证逻辑,这意味着从源到源的污点路径不是实际上可利用。
- 动态分析具有相反的特征。它不太容易发生误报,因为如果它实际观察到在执行过程中从源到下沉的合适的污染数据,那么这种行为就是脆弱性的具体证据。但是,它可能会遭受虚假负面因素,在这种情况下,由于应用程序的当前状态或其他数据的值,其注入的数据未能到达水槽,而攻击者实际上都可以控制这些数据。
Burp扫描仪利用静态和动态方法的共同利益。在可能的情况下,它将两种技术的结果相关联,并报告问题与使用两者获得的证据。这些问题可能被认为是岩石固定的发现,并被据报道是确定的。如果只有静态分析才能检测到潜在的问题,则BUR降低了报告该问题的信心。这种用于JavaScript分析的综合方法极大地有助于一名正在审查结果以找到最重要问题的测试人员。
处理应用程序错误
对Web应用程序进行完整的审核可能是一个入侵过程,并且在进beplay体育能用吗行扫描时,遇到连接故障,传输超时或后端组件的中断等问题通常是很常见的。此外,诸如Web应用程序防火墙之类的保护措施可能会根据特定有效beplay体育能用吗载荷有选择地删除连接,甚至基于某些参数值中的任何意外值。
在审计过程中,Burp会尽可能地跟踪误差条件的发生。如果单个动作导致错误,则BURP将该动作标记为失败,并继续进行下一个动作。可选地,如果重复的操作在相同的活动级别上失败,则将整个级别标记为失败。因此,BURP将逐渐标记为失败:个人审核检查,然后是单个插入点,然后进行审核的整个请求,并最终进行整个扫描。
由于通常会遇到具有特定审核请求的孤立错误,因此BURP最初将捕获错误的详细信息并继续扫描。当整个审核完成后,BURP可以选择执行许多后续通行证,以重试失败的操作。在特定应用程序组件(例如后端数据库)遇到部分扫描问题的情况下,这可能很有用。如果观察到过多的错误,BURP也可以选择暂停或中止扫描,以便用户可以调查问题并在稳定应用程序时恢复或重复扫描。