Burp Suite之Scaner模块(三)
Scaner模块配置详解
Scan Queue
Active Scanning(主动扫描)过程通常包括发送大量请求到服务器为所扫描的每个基本的请求,这可能是一个耗时的过程。当您发送的主动扫描请求,这些被添加到活动扫描队列,它们被依次处理。
扫描队列中显示每个项目的详细信息如下:
1.
索引号的项目,反映该项目的添加顺序。
2.
目的地协议,主机和URL 。
3.
该项目的当前状态,包括完成百分比。
4.
项目扫描问题的数量(这是根据所附的最严重问题的重要性和彩色化) 。
5.
在扫描项目的请求数量进行。 注意 这不是插入点的数量的线性函数 - 观察应用程序行为的反馈到后续攻击的请求,仅仅因为它会为一个测试仪。
6.
网络错误的数目遇到的问题。
7.
为项目创建的插入点的数量。
这些信息可以让您轻松地监控个别扫描项目的进度。如果您发现某些扫描进度过于缓慢,可以理解的原因,如大量的插入点,缓慢的应用响应,网络错误等给定这些信息,你就可以采取行动来优化你的扫描,通过改变配置为插入点时,扫描引擎,或正在测试的主动扫描区域。
你可以双击任何项目在扫描队列显示,到目前为止发现的问题,并查看了基本请求和响应的项目。您可以使用扫描队列的上下文菜单来执行各种操作来控制扫描过程。确切的可用选项取决于所选的项目(S )的状态,并包括:如下图所示
Show details
这将打开显示到目前为止发现的问题的一个窗口,与底座请求和响应的项目。
Scan again
此复制所选择的项目(S ) ,并将这些队列的末尾。
Delete item(S)
这将永久地从队列中删除选定的项目(S ) 。
Delect finished items
这永久删除那些已经完成了队列中的任何项目。
Automatically delete finished items
这是否切换扫描器会自动从队列为他们完成删除项目。
Pause/resume scanner
这可以暂停和恢复激活扫描仪。如果任何扫描正在进行时,扫描会暂停,而挂起的扫描请求完成后,通常会有一个短暂的延迟。
Send to
这些选项用于所选项目的基本请求发送到其它Burp(Repeater、Intruder)工具。
Live Scanning
实时扫描可让您决定哪些内容通过使用浏览器的目标应用,通过BurpProxy服务器进行扫描。您可以实时主动扫描设定live active scanning和live passive两种扫描模式。如图
Live active scanning
执行现场主动扫描,请执行以下步骤:
1
)配置与目标的细节,你要主动扫描现场主动扫描设置。如果你已经配置了一套全范围的目标为你目前的工作,那么你可以简单地通知Burp主动扫描落在该范围内的每个请求。或者,您可以使用URL匹配规则定义自定义范围。
2
)各地通过BurpProxy通常的方式应用浏览。这将有效地展示Burp要扫描的应用功能。对于每一个独特的所在范围的要求,你通过你的浏览器,Burp会排队主动扫描请求,并将努力走在后台找到漏洞为您服务。
Live Passive Scanning
现场演示被动扫描,请执行以下步骤:
1
)配置具有您要被动地扫描目标的细节live passive scanning。默认情况下,Burp执行所有请求的被动扫描,但你可以限制扫描目标范围,或者使用URL匹配规则的自定义范围。
2
)通过BurpProxy通常的方式应用浏览。这将有效地展示Burp你要扫描的应用功能。
Options
Attack Insertion Points
这些设置控制扫描仪的地方“插入点(insertion points)”到被发送的主动扫描每个基本要求。插入点攻击将被放置,探测漏洞请求中的位置。每个定义的插入点单独扫描。 BurpSuite为您提供细粒度地控制放置插入点,以及这些选项仔细配置会让您量身定制您的扫描到您的目标应用程序的性质。插入点的配置也代表你的扫描速度和全面性之间进行权衡。
注:除了让Burp自动指定插入点,就可以完全自定义这些,这样你就可以在你想要攻击的地方放在任意一个位置。要使用此功能,将请求发送给Intruder,用payload positions标签来定义通常的方式各插入点的开始和结束,并选择入侵者菜单选项“积极定义扫描插入点” 。您也可以指定以编程方式使用Burp扩展的自定义插入点位置。
1)Insertion Point Locations
这些设定可让您选择,其中插入点应放在请求中的位置的类型:
URLparameter values - URL查询字符串中标准的参数值。
Body parameter values - 在邮件正文中,包括标准形式生成的参数参数值,属性的多重编码的参数,如上传的文件名, XML参数值和属性,和JSON值。
Cookieparameter values - 的HTTP Cookie的值。
Parameter name - 任意添加的参数的名称。 URL参数总是被添加,并且机身参数也加入到POST请求。测试一个附加的参数名称通常可以检测到被错过,如果只是参数值进行了测试异常的错误。
HTTPheaders - 在引用页和用户代理标头的值。测试这些插入点通常可以检测如SQL注入或跨站脚本持续在日志记录功能的问题。
AMF string parameters- 内AMF编码的邮件的任何字符串数据的值。
REST-style URL parameters - URL的文件路径部分中的所有目录和文件名令牌的值。测试每一个插入点可以并处显著开销,如果你相信应用程序使用这些位置传送参数数据,才应使用。
2)Change Parameter Locations
允许您配置扫描仪将一些类型的插入点到其他地点的请求中,除了测试他们在原来的位置。例如,您可以将每个URL参数到邮件正文中,并重新测试它。或者你可以移动身体的每个参数到一个cookie ,然后重新测试它。
用这种移动参数方式往往可以绕过防过滤器。许多应用程序和应用程序防火墙执行每个参数输入验证假设每个参数是它的预期位置的要求之内。移动参数到不同的位置可以回避这个验证。当应用程序代码后检索参数来实现其主要的逻辑,它可能会使用一个API,它是不可知的,以参数的位置。如果是这样,那么移动的参数可能可以使用输入,通常会在处理之前被过滤,以达到易受攻击的代码路径。
下列选项可用于更改参数的位置:
URL to body
URL to cookie
Body to URL
Body to cookie
Cookie to URL
Cookie to body
3)Nested Insertion Points
嵌套的插入时,会使用一个插入点的基值包含可识别的格式的数据。 例如,一个URL参数可能包含Base64编码数据,并且将解码后的值可能又包含JSON或XML数据。与使用启用嵌套插入点的选项,Burp会为输入在每个嵌套级别中的每个单独的项目适合的插入点。 Spider仅包含常规的请求参数请求时使用此选项不征收费用,但允许Burp达到更复杂的应用,数据是在不同的格式封装的攻击面。
4)Maximum Insertion Points Per Request
无论你的设置选择,对于单个请求插入点的数目,一般视乎该请求的功能,如参数的数目。偶尔,请求可以包含的参数(几百或更多)数量。如果Burp执行的每个参数进行完全扫描,扫描会花费过多的时间量完成。 此设置允许您设置的,将每个基本要求生成插入点的数量的限制,从而防止您的扫描由偏快转为停滞,如果他们遇到含参数庞大的数字请求。在其中插入点的数量是由这个限制缩减的情况下,在有效扫描队列中的项目的条目将显示被跳过的插入点的数量,使您能够手动检查基本要求,并决定是否值得执行完全扫描其所有可能的插入点。
5)Skipping Parameters
设定让您指定请求参数的Burp应该跳过某些测试。有跳过服务器端注入测试(如SQL注入)和跳过所有检查单独的列表。 服务器端注入测试是比较费时的,因为Burp发送多个请求探测服务器上的各种盲目的漏洞。如果您认为出现请求中的某些参数不容易(例如,内置仅由平台或Web服务器中使用的参数) ,你可以告诉Burp不能测试这些。 (用于测试客户端蝽象跨站点脚本涉及更少的开销,因为测试每个参数规定最小的开销在扫描期间,如果该参数不容易。 ) 如果一个参数是由您不希望测试一个应用程序组件来处理,或者修改一个参数是已知的导致应用程序不稳定跳过所有的测试可能是有用的。 列表中的每个项目指定参数类型,该项目要匹配(名称或值) ,匹配类型(文本字符串或正则表达式) ,表达式匹配。 你可以通过它们的位置(斜线分隔)的URL路径中标识的REST参数。要做到这一点,从参数下拉,“姓名”,从项目下拉“ REST参数” ,并指定您希望从测试中排除的URL路径中的位置的索引号(从1开始) 。您还可以通过值来指定REST参数。
Active Scanning Engine
控制用来做主动扫描时发出HTTP请求的引擎。下列选项可用:
1
)Number of threads - 控制并发请求数。
2
)Number of retries on network failure - 如果出现连接错误或其他网络问题,Burp会放弃和移动之前重试的请求指定的次数。测试时间歇性网络故障是常见的,所以最好是在发生故障时重试该请求了好几次。
3
)Pause before retry - 当重试失败的请求,Burp会等待指定的时间(以毫秒为单位)以下,然后重试失败。如果服务器宕机,繁忙,或间歇性的问题发生,最好是等待很短的时间,然后重试。
Throttle between requests - 在每次请求之前等待一个指定的延迟(以毫秒为单位)。此选项很有用,以避免超载应用程序,或者是更隐蔽。
Add random variations to throttle - 通过降低您的要求的时序模式进一步增加隐身。
Follow redirections where necessary- 有些漏洞只能通过下面的重定向进行检测(例如,在一条错误消息,跨站点脚本这是只有下列一个重定向后退还)。因为某些应用程序的问题重定向到包含您所提交的参数值的第三方网址,BurpSuite保护您免受无意中攻击的第三方应用程序,不按照刚刚收取任何重定向。如果所扫描的要求是明确的目标范围之内(即您使用的是目标范围,以控制哪些被扫描的),然后BurpSuite只会跟随重定向是指同一范围内。如果所扫描的要求不在范围内(即你已经手动发起超出范围的请求的扫描),BurpSuite只会跟随重定向其中(a)是在同一台主机/端口的请求被扫描;及(b)没有明确涵盖的范围排除规则(如“logout.aspx”)。
小心使用这些选项可让您微调扫描引擎,根据不同应用对性能的影响,并在自己的处理能力和带宽。如果您发现该扫描仪运行缓慢,但应用程序表现良好和你自己的CPU利用率很低,可以增加线程数,让您的扫描进行得更快。如果您发现连接错误发生,该应用程序正在放缓,或者说自己的电脑被锁定了,你应该减少线程数,也许增加网络故障和重试之间的间隔重试的次数。如果应用程序的功能是这样的:在一个基地的要求执行的操作干扰其他请求返回的响应,你应考虑减少线程数为1,以确保只有一个单碱基请求被扫描的时间。
Active Scanning Optimization
主动扫描逻辑的行为,以反映扫描的目的和目标应用程序的性质。例如,您可以选择更容易发现问题,在一个大型应用程序的快速扫描;或者您可以执行更慢全面扫描,以发现更难,而且需要更多的扫描请求,以检测问题。
下列选项可用:
Scan speed(扫描速度) - 该选项决定彻底的某些扫描检查,怎么会检查是否有漏洞时。 “Fast(快速)”设置使更少的请求,并检查一些漏洞更少的推导。在“Thorough(彻底)”的设置使更多的请求,并检查更多的衍生类型的漏洞。 “Normal(正常)”设定为中途在两者之间,并且代表速度和完整性之间的适当折衷对于许多应用。
Scan accuracy(扫描精度) - 此选项决定的证据表明,扫描仪会报告某些类型的漏洞之前,要求的金额。可以只使用“blind(盲)”的技术,其中,Burp推断可能存在基于某些观察到的行为,如时间延迟或一个差分响应的一个漏洞被检测到的一些问题。因为这些观察到的行为的发生原因,无论如何,在没有相关联的漏洞的影响,该技术本身更容易出现假阳性比其他技术,例如在观察错误消息。试图减少误报,BurpSuite重复某些测试了一些,当一个假定的问题,推断时间,尝试建立提交的输入和观察到的行为之间有可靠的相关性。的准确性选项用于控制BurpSuite会多少次重试这些测试。在“Minimize false negatives(最小化假阴性)”的设置进行重试较少,因此更可能报告假阳性的问题,但也不太可能会错过由于不一致的应用程序行为的真正问题。在“Minimize false positives(最小化误报)”设置进行更多的试,所以是不太可能报告假阳性的问题,但可能会因此错误地错过了一些真正的问题,因为有些重试请求可能只是碰巧不返回结果是测试。 “Normal(正常)”设置为中途两者之间,并代表之间的假阳性和假阴性的问题合适的权衡对于许多应用。
Use intelligent attack selection(使用智能进攻选择) - 此选项使通过省略出现无关紧要给每个插入点参数的基值支票扫描更有效率。例如,如果一个参数值包含不正常出现在文件名中的字符,BurpSuite会跳过文件路径遍历检查此参数。使用这个选项,可以加快扫描件,具有相对低的存在缺少实际的漏洞的风险。
Active Scanning Areas
定义哪些是主动扫描过程中进行检查。是检查以下类别可供选择:
SQL injection(SQL注入) - 这有子选项,以使不同的测试技术(误差为基础,延时测试,布尔条件测试) ,并且也使检查特定于单个数据库类型( MSSQL ,Oracle和MySQL的) 。 OS command injection(操作系统命令注入) - 这有子选项,以使不同的测试技术.。 Reflected XSS(反映了跨站点脚本) Stored XSS(存储的跨站点脚本) File path traversal(文件路径遍历) HTTP header injection(HTTP头注入) XML/SOAP injection(XML / SOAP注射) LDAP injection(LDAP注入) Open redirection(开放重定向) Header manipulation(头操纵) Server-level issues服务器级的问题。
所执行的每个检查增加的请求的数目,以及每个扫描的总时间。您可以打开或关闭个别检查根据您的应用程序的技术知识。例如,如果你知道某个应用程序不使用任何LDAP ,您可以关闭LDAP注入测试。如果你知道哪个后端数据库的应用程序使用,你可以关闭SQL注入检测特定于其他类型的数据库。您也可以选择性地启用基于你如何严格要求你的扫描是检查。例如,您可以配置BurpSuite做应用程序的快速一次过,只为XSS和SQL注入的网址和参数检查,每漏洞类型更全面的测试在每一个插入点之前。
Passive Scanning Areas
自定义的请求和响应的各个方面在被动扫描检查。下列选项可用:
Extender
显示添加的组件
点击Bapp Store可以选择下载组件
随便点击一个组件,在右边,往下滑,如果显示install,可以直接下载使用
如果如这个组件,需要下载JRuby环境
这个需要下载Jython环境
Jython下载地址:http://www.jython.org/downloads.html
JRuby下载地址:https://www.jruby.org/download
这里需要下载Jython 2.7.0 - Standalone Jar 这个版本
点击Python Environment下的第一个框,选择你下载的文件,就可以下载组件了。
使用
在target的站点地图下,右击你想扫描的站点的节点
选择Actively scan this branch