-
与扫描请求相同的主机/端口的重定向;
-
未被套件范围的排除规则明确涵盖(例如“logout.aspx”)
这些设置控制Burp将会检查的
检查点
。
您可以单独选择检查点类型,也可以根据检测它们所涉及的
审计活动
的性质选择检查点类型。如果选择单个检查点,还可以选择用于某些类型的检测方法。使用相关问题类型的上下文菜单,然后选择
编辑检测方法(Edit detection methods)
。
执行的每项检查都会增加请求的数量以及审计的总时间。您可以根据您对应用程序技术的了解来打开或关闭单个检查点。例如,如果您知道应用程序没有使用LDAP,则可以关闭关于LDAP方面的检查点。或者,如果您知道应用程序使用哪个后端数据库,则可以关闭用于其他类型数据库的SQL注入检查。
Note:
if any issues are enabled that are labelled "active", then Burp Scanner will send requests to the application designed to detect those issues. Depending on the issues selected, these requests might be reasonably viewed as malicious or might damage the application or its data.
注意:
如果启用任何标记为
活动(active)
的问题,则Burp Scanner 会向应用程序发送相应的检查请求。根据所选问题,这些请求可能会被告警为恶意攻击或可能会导致应用程序损坏或数据丢失。
审计期间处理应用程序错误
这些设置控制 Burp Scanner 在扫描审计阶段出现
应用程序错误该怎么处理
,例如连接失败和传输超时。
您可以配置以下选项:
-
在跳过当前插入点中的其余检查之前连续失败的审核检查的数量。
-
在跳过剩余插入点并将审核项标记为失败之前连续失败的插入点数。
-
暂停任务之前连续失败的审计项目数或失败的审计项目的总百分比。
-
在每个审计阶段完成时执行的后续过程的数量,以重试失败的操作。
您可以将任何设置留空以禁用它。
插入点类型
这些设置控制扫描程序如何将
插入点
放入每个被审计的HTTP请求中。
Burp Scanner 可以对插入点的位置进行细粒度控制,仔细配置这些选项将使您可以根据所针对的应用程序进行定制审计。插入点的配置也代表了扫描速度和全面性之间的权衡。
可以选择以下类别的插入点:
-
URL参数值
- URL查询字符串中的标准参数值。
-
Body参数值
- 消息正文中的参数值,包括标准表单生成的参数,多层编码参数的属性,例如上载的文件名,XML参数值和属性以及JSON值等。
-
Cookie值
- HTTP Cookie的值。
-
参数名称
- 欲添加的参数名称。该选项会在始终在每个HTTP包的URL中添加参数,同时对于POST请求会在body中添加参数。如果仅测试参数值,则测试过程中添加的参数名称通常可以检测错过的异常错误。
-
HTTP标头
- Referer和User-Agent标头的值。测试这些插入点通常可以在日志记录功能中检测SQL注入或存储型XSS等问题。
-
HTTP报文
- 整个请求报文。这适用于请求正文中包含XML或JSON内容的请求。
-
URL路径文件名
- URL路径的文件名部分的值,它位于最终路径文件夹之后和查询字符串之前。
例如
http://www.example.com/a/b/c/index.php?a=1
,该选项表示选择的是
index.php
。
-
URL路径文件夹
- URL路径中所有路径的值,它位于文件名部分之前
例如
http://www.example.com/a/b/c/index.php?a=1
,该选项表示选择的是
/a/b/c/
。
注意:
除了让Burp自动分配插入点之外,还可以自定义插入点,因此您可以在发出攻击的请求中指定任意位置。要使用此功能,请将请求发送到 Intruder,使用
载荷位置(
payload positions
)
选项卡以常规方式定义每个插入点的开始和结束,然后选择Intruder菜单选项“审计定义的插入点”。您还可以使用
Burp扩展(
Burp Extender
)
以编程方式指定自定义插入点位置。
修改参数位置选项
通过这些设置,您可以将 Scanner 的参数位置
移动
到请求中的其他位置,然后在原始位置进行测试。例如,您可以将每个URL参数移动到邮件正文中并在那里重新进行测试。或者您可以将每个body参数移动到cookie中并在那里重新测试。
以这种方式移动参数通常可以绕过某些防御过滤器。许多应用程序和WAF会对每个都在请求中的预期位置的参数进行验证。将参数移动到其他位置可以避开此验证。当应用程序代码检索参数以实现其主逻辑时,它可以使用与参数的位置无关的API来执行此操作。如果是这样,那么移动参数的方式可以使您能够进行过滤处理之前来发起针对某个路径的攻击。
以下选项可用于更改参数位置:
-
URL中GET的参数到POST
-
URL中GET的参数到Cookie
-
POST参数到GET
-
POST参数到Cookie
-
Cookie参数到GET
-
Cookie参数到POST
请注意,更改参数位置会引发更多的扫描请求,因为每个请求参数都会被有效扫描多次。
忽略插入点
通过这些设置,您可以指定Burp Scanner应跳过某些审核检查的请求参数。有单独的列表可以跳过服务器端注入检查(例如SQL注入)和跳过所有检查。
服务器端注入检查相对耗时,因为Burp发送多个请求来探测服务器上的各种盲漏洞。如果您认为请求中出现的某些参数不易受攻击(例如,仅由平台或Web服务器使用的内置参数),您可以告诉Burp不要测试这些参数。 (测试跨站点脚本等客户端错误涉及的开销要少得多,因为如果参数不易受攻击,测试每个参数会对扫描持续时间产生最小的开销。)
如果参数由您不希望测试的应用程序组件处理,或者已知修改参数会导致应用程序不稳定,则跳过所有检查可能很有用。
列表中的每个项目都指定参数类型,要匹配的项目(名称或值),匹配类型(文字字符串或正则表达式)以及要匹配的表达式。
您可以通过URL路径中的位置(斜线分隔)来标识URL路径文件夹中的参数。要执行此操作,请从参数下拉列表中选择“URL路径文件夹”,从项目下拉列表中选择“名称”,并指定要从中排除的URL路径中的位置的索引号(从1开始)测试。您还可以按值指定URL路径文件夹参数。
频繁发生的插入点
通过这些设置,您可以配置Burp Scanner 是否可以避免
频繁出现的插入点
。 如果该选项已被配置,Burp 将识别已被证明无用的插入点(频繁发生而不会产生任何问题),并将放弃对这些插入点执行以实现更轻量的审计工作。
您可以选择该选项以优化的插入点类型。
其他的插入点设置
您可以选择是否使用
嵌套插入点
。当插入点的基值包含可识别格式的数据时,将使用嵌套插入点。例如,URL参数可能包含Base64编码的数据,而解码的值可能又包含JSON或XML数据。通过启用嵌套插入点的选项,Burp将为每个嵌套级别的每个单独输入项创建合适的插入点。使用此选项在扫描仅包含常规请求参数的请求时不会产生任何开销,但是能够使Burp访问一些复杂应用程序中以不同格式封装的数据的请求,以发现更多攻击面。
您可以配置是否对每个请求生成的插入点数量设置限制,从而防止扫描在遇到包含大量参数的请求时停止。如果此限制减少了插入点的数量,则
审计项目视图
中的项目条目将指示跳过的插入点数,使您可以手动查看请求并决定是否值得对其所有可能的插入点进行全面扫描。
JavaScript分析选项
这些设置控制Burp Scanner如何检测JavaScript中基于DOM的漏洞。可以使用以下选项:
-
是否对任何缺少的 JavaScript 依赖项发出HTTP请求。
-
是否使用
静态或动态技术
或两者兼具。请注意,您还可以通过编辑基于DOM的问题和已启用的
检测方法
来配置每个问题类型是否使用静态或动态技术。通过这些设置,您可以全局禁用所有针对JavaScript分析的静态/动态技术。
-
针对每个扫描项目进行静态分析所花费的最大时长。如果 Burp 遇到包含非常大或很复杂脚本,这可能会导致静态分析引擎消耗过多的系统资源。如果由于达到最大时间而截断特定项目的分析,则 Burp 会显示标识受影响项目的警报。您可以指定零或空值以表示不应用任何限制。
注意:
JavaScript分析会消耗大量系统资源,因此可能需要将分析限制在关键的目标上。此外,在执行JavaScript分析时,可能需要在
启动Burp
的时候具有更大的内存量。