MAC 环境搭建Burp Suite安全扫描

启动方式:java -jar BurpLoader.jar

使用指南(需翻墙):https://t0data.gitbooks.io/burpsuite/content/

主要参考这一章的内容:

第七章 如何使用Burp Scanner

Burp Scanner的功能主要是用来自动检测web系统的各种漏洞,我们可以使用Burp Scanner代替我们手工去对系统进行普通漏洞类型的渗透测试,从而能使得我们把更多的精力放在那些必须要人工去验证的漏洞上。

在使用Burp Scanner之前,我们除了要正确配置Burp Proxy并设置浏览器代理外,还需要在Burp Target的站点地图中存在需要扫描的域和URL模块路径。如下图所示: 

当Burp Target的站点地图中存在这些域或URL路径时,我们才能对指定的域或者URL进行全扫描或者分支扫描。下面我们就来整体的学习一下,一次完整的Burp Scanner使用大概需要哪些步骤。

本章的主要内容有:

Burp Scanner基本使用步骤

Burp Scanner扫描方式

Burp Scanner扫描报告

Burp Scanner扫描控制

Burp Scanner可选项设置

Burp Scanner基本使用步骤

Burp Scanner基本使用主要分为以下15个步骤,在实际使用中可能会有所改变,但大体的环节主要就是下面的这些。 1.确认Burp Suite正常启动并完成浏览器代理的配置。 2.进入Burp Proxy,关闭代理拦截功能,快速的浏览需要扫描的域或者URL模块。 3.当我们浏览时,默认情况下,Burp Scanner会扫描通过代理服务的请求,并对请求的消息进行分析来辨别是非存在系统漏洞。同时,当我们打开Burp Target时,也会在站点地图中显示请求的URL树。 

4.我们可以有针对性的选择Burp Target站点地图下的某个节点上链接URL上,弹出右击菜单,进行Active Scan。然后在弹出的确认框中,点击【YES】即进行扫描整个域。 

6.这时,我们打开Burp Scanner 选项卡,在队列子选项卡中,会看到当前扫描的进度。如果我们双击URL,则弹出扫描结果的提示信息。 

7.如果我们在Burp Target站点地图下选择某个子目录进行扫描,则会弹出更优化的扫描选项,我们可以对选项进行设置,指定哪些类型的文件不再扫描范围之内。 

8.当我们再次返回到Burp Scanner 选项卡界面时,选择的子目录已经开始在扫描中,其扫描的进度依赖于需要扫描内容的多少。 9.如果我们没有定义了目标作用域(Target Scope),最简单的方式就是在Burp Target站点地图上右击弹出菜单中添加到作用域,然后自动进行扫描。 

10.然后进入Burp Scanner的Live scanning子选项卡,在Live Active Scanning控制块中,选择Use suite scope,这样,Burp Scanner将自动扫描经过Burp Proxy的交互信息。 

11.当我们再次使用浏览器对需要测试的系统进行浏览时,Burp Scanner不会发送额外的请求信息,自动在浏览的交互信息的基础上,完成对请求消息的漏洞分析。 12.此时,当我再返回到Burp Target站点地图界面,将提示系统可能存在的漏洞情况,以及处理这些漏洞的建议。 

13.同时,我们也可以在漏洞提示的请求信息上,将消息发送到Burp Repeater模块,对漏洞进行分析和验证。 

14.随着Burp Scanner扫描的进度,在Burp Target站点地图界面上的issues模块中的漏洞信息也会不断的更新。 15.当Burp Scanner扫描完成之后,我们在Burp Target站点地图的选择链接右击,依次选择issues-->report issues for this host 即可导出漏洞报告。 

Burp Scanner扫描方式

通过以上的操作步骤我们可以学习到,Burp Scanner扫描方式主要有两种:主动扫描和被动扫描

主动扫描(Active Scanning)

当使用主动扫描模式时,Burp 会向应用发送新的请求并通过payload验证漏洞。这种模式下的操作,会产生大量的请求和应答数据,直接影响系统的性能,通常使用在非生产环境。它对下列的两类漏洞有很好的扫描效果:

客户端的漏洞,像XSS、Http头注入、操作重定向;

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

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

被动扫描(Passive Scanning)

当使用被动扫描模式时,Burp不会重新发送新的请求,它只是对已经存在的请求和应答进行分析,这对系统的检测比较安全,尤其在你授权访问的许可下进行的,通常适用于生成环境的检测。一般来说,下列这些漏洞在被动模式中容易被检测出来:

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

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

cookie的范围缺失。

跨域脚本包含和站点引用泄漏。

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

SSL保护的内容缓存。

目录列表。

提交密码后应答延迟。

session令牌的不安全传输。

敏感信息泄露,像内部IP地址,电子邮件地址,堆栈跟踪等信息泄漏。

不安全的ViewState的配置。

错误或者不规范的Content-type指令。

虽然被动扫描模式相比于主动模式有很多的不足,但同时也具有主动模式不具备的优点,除了前文说的对系统的检测在我们授权的范围内比较安全外,当某种业务场景的测试,每测试一次都会导致业务的某方面问题时,我们也可以使用被动扫描模式,去验证问题是否存在,减少测试的风险。

Burp Scanner扫描报告

当我们对一个系统进行扫描完毕后,通常需要生成扫描报告,Burp Scanner支持的报告类型有HTML和XML两种格式。无法何种格式的扫描报告,其内容基本一致,主要由以下部分组成。报告样例可以点击Burp Scanner report查看.

除了头部的综述和目录外,每一个漏洞的章节通常包含: 1.序号 表示漏洞的序号,如果有多个同样的漏洞,报告中只会有一个序号。 2.漏洞的类型,可以近似地理解与OWASP的类型相对应。 3.漏洞名称,具体可参考 Issue Definitions子选项卡。 4.漏洞路径,漏洞对应的多个URL链接。 5.漏洞的发生点,通常为参数名。 6.问题的描述(Issue background) 描述漏洞发生的成因 7.解决建议(Remediation background)提供解决的思路和建议 8.请求消息和应答消息的详细信息。

如果我们想对某次的扫描结果进行保存,需要Burp Target 的站点地图子选项卡的问题面板(Issue)上右击,在弹出的菜单中选择report Issues进行设置并保存即可。(注意,如果想导出所有的漏洞,需要选中所有的问题列表) 具体导出漏洞报告的步骤如下: 1.选中需要保存的漏洞,右击弹出菜单,如下图: 

2.在弹出的对话框中选择需要保存的漏洞报告格式。 

 3.选择漏洞明细包含内容。 

 4.请求消息和应答消息设置。 

 5.选择报告包含的哪些漏洞。 

 6.最后,指定报告存放位置、报告名称等属性。 

Burp Scanner扫描控制

在对系统做主动扫描时,当我们激活Burp Scanner,扫描控制的相关设置也同时开始了。如下图所示,当我们在Burp Target 的站点地图上的某个URL执行Actively scan this host时,会自动弹出过滤设置。 

 在这里,我们可以设置扫描时过滤多媒体类型的应答、过滤js、css、图片等静态资源文件。当我们点击【next】按钮,进入扫描路径分支的选择界面。如下图: 

以上是Burp Scanner开始扫描前的控制,当我们设置完这些之后,将正式进入扫描阶段。此时,在Scan queue队列界面,会显示扫描的进度、问题总数、请求数和错误统计等信息。 

在此界面上,我们可以选中某个记录,在右击的弹出菜单中,对扫描进行控制。比如取消扫描、暂停扫描、恢复扫描、转发其他Burp组件等。如下图: 

同时,在Results界面,自动显示队列中已经扫描完成的漏洞明细。 

在每一个漏洞的条目上,我们可以选中漏洞。在弹出的右击菜单中,依次选择Set severity,对漏洞的等级进行标识。也可以选择Set confidence,对漏洞是否存在或误报进行标注。

另外,在Live Scanning选项卡中,我们也可以对请求的域、路径、IP地址、端口、文件类型进行控制,如下图: 

如果你选中了Use suite Scope,则指定条件与你在Burp Target中的Scope配置完全一致,如果你选择了Use customs scope,则可以自己定义Scope,对于Scope的详细配置,请参考Burp Target中的Scope配置相关章节。

Burp Scanner可选项设置

通过前几节的学习,我们已经知道Burp Scanner有主动扫描和被动扫描两个扫描方式,在Options子选项卡中,主要是针对这两种扫描方式在实际扫描中的扫描动作进行设置。具体的设置包含以下部分:

攻击插入点设置(Attack Insertion Points) 

Burp Scanner在扫描中,基于原始的请求消息,在每一个插入点构造参数,对原数据进行替换,从而去验证系统漏洞的存在性。通常,以下位置都会被Burp Scanner选择为插入点。

URL请求参数

Body参数(比如form表单的值,上传文件、XML参数、JSON参数)

Cookie参数

参数的名称和个数(通过增加参数个数或者增加参数来验证漏洞)

Http Header信息(通过对header信息的篡改来验证漏洞)

AFM编码(对flash通信漏洞的验证)

REST风格的参数

对于以上的攻击插入点,Burp Scanner还是可以通过改变参数的位置来验证漏洞,Burp Scanner中共有URL to body 、URL to cookie、Body to URL、Body to cookie、Cookie to URL、Cookie to body 六种方式。当我们在扫描验证中,可以根据实际请求,灵活选择位置改变的组合,高效快速地验证漏洞。但我们也应该明白,当我们选中了位置改变来验证漏洞,即选择了Burp发送更多的请求,如果是在生成系统中的测试需要慎重。

另外,Burp的攻击插入点也支持嵌套的方式,这意思是指,如果一个请求的参数值是JSON对象或者XML文本,Burp Scanner在扫描时,可以对JSON对象或XML文本中的属性、属性值进行验证,这会极大地提高了Burp Scanner对漏洞扫描的涉及面。这是由上图中的use nested insertion points的checkbox是否选中去控制的,默认情况下是选中生效的。

当我们设置攻击插入点的同时,我们也可以指定哪些参数进行跳过,不需要进行漏洞验证。在设置时,Burp是按照服务器端参数跳过和所有参数均跳过两种方式来管理的,界面如下图: 

2 主动扫描引擎设置(Active Scanning Engine) 

 主动扫描引擎设置主要是用来控制主动扫描时的线程并发数、网络失败重试间隔、网络失败重试次数、请求延迟、是否跟踪重定向。其中请求延迟设置(Throttle between requests)和其子选项延迟随机数 (Add random variations to throttle)在减少应用负荷,模拟人工测试,使得扫描更加隐蔽,而不易被网络安全设备检测出来。 至于这些参数的具体设置,需要你根据服务器主机的性能、网络带宽、客户端测试机的性能做相应的调整。一般来说,如果您发现该扫描运行缓慢,但应用程序表现良好,你自己的CPU利用率较低,可以增加线程数,使您的扫描进行得更快。如果您发现发生连接错误,应用程序正在放缓,或你自己的电脑很卡,你应该减少线程数,加大对网络故障的重试次数和重试之间的间隔。

3.主动扫描优化设置(Active Scanning Optimization) 

此选项的设置主要是为了优化扫描的速度和准确率,尽量地提高扫描速度的同时降低漏洞的误报率。 扫描速度(Scan speed)分快速、普通、彻底三个选项,不同的选项对应于不同的扫描策略,当选择彻底扫描(Thorough)时,Burp会发送更多的请求,对漏洞的衍生类型会做更多的推导和验证。而当你选择快速扫描(Fast),Burp则只会做一般性的、简单的漏洞验证。 扫描精准度(Scan accuracy)也同样分为三个选项:最小化假阴性(Minimize false negatives)、普通、最小化假阳性(Minimize false positives)。扫描精准度主要是用来控制Burp的扫描过程中针对漏洞的测试次数。当我们选择最小化假阳性时,Burp会做更多的验证测试,来防止假阳性漏洞的存在,但也是恰恰基于此,当Burp做更多的验证测试时,可能存在恰好无法获取应答的误报,增加了漏洞的噪音。 智能攻击选择(Use intelligent attack selection )这个选项通过智能地忽略一些攻击插入点基值的检查,比如说一个参数值包含不正常出现在文件名中的字符,Burp将跳过文件路径遍历检查此参数,使用此选项可加速扫描,并降低在提升扫描速度的同时会导致漏报率上升的风险。

4.主动扫描范围设置(Active Scanning Areas) 

 在主动扫描过程中,你可以根据你的扫描时间、关注的重点、可能性存在的漏洞类型等情况,选择不同的扫描范围。这里可选择的扫描范围有:

SQL注入 -可以使不同的测试技术(基于误差,时间延迟测试和布尔条件测试),并且也使检查所特有的单独的数据库类型(MSSQL,Oracle和MySQL的)。

操作系统命令注入 - (信息通知和盲注)。

反射式跨站点脚本

存储的跨站点脚本

文件路径遍历

HTTP头注入

XML/ SOAP注入

LDAP注入

URL重定向

http消息头可操纵

服务器的问题

5.被动扫描范围设置(Passive Scanning Areas) 

 因为被动扫描不会发送新的请求,只会对原有数据进行分析,其扫描范围主要是请求和应答消息中的如下参数或漏洞类型:Headers、Forms、Links、Parameters、Cookies、MIME type、Caching、敏感信息泄露、Frame框架点击劫持、ASP.NET ViewState 。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,509评论 25 707
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,856评论 2 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • “大白狄,每天上班好累哦…” “乖,晚上回去我伺候你泡脚。” “嗯,这就是长大吧。” 秦白狄忍不住揉了揉黑石的头发...
    黑石少女与秦白狄阅读 136评论 0 1