2、Burp Suite进阶web
1、Burp Scanner主要用于自动检测web系统的各类漏洞。首先,确认Burp Suite正常启动并完成浏览器代理的配置。而后进入Burp Proxy,关闭拦截代理功能,快速浏览须要扫描的域或URL模块,此时在默认状况下,Burp Scanner会扫描经过代理服务器的请求,并对请求的消息进行分析来辨别是否存在系统漏洞。并且当咱们打开Burp Target时,也会在站点地图中显示请求的URL树。数据库
随便找一个网站进行测试,选择Burp Target的站点地图选项下的连接,在其连接URL上右击选择”Actively scan this host“,此时会弹出过滤设置,保持默认选项便可扫描整个域。跨域
也能够在Proxy下的HTTP history中,选择某个节点上的连接URL并右击选择Do an active scan进行扫描,此时Burp Scanner开始扫描,在Scannner界面下双击便可看到扫描结果。浏览器
咱们能够在扫描结果中选中须要进行分析的部分,将其发送到repeater模块中,进行模拟提交分析和验证。缓存
当scanner扫描完成后,能够右击Burp Target站点地图选项下的连接,依次选择”issues“——”Report issues“选项,而后导出漏洞报告。安全
Burp Scanner有主动扫描和被动扫描。服务器
(1)主动扫描cookie
当使用主动扫描模式时,Burp会向应用发送新的请求并经过Payload验证漏洞。这种模式下的操做会产生大量的请求和应答数据,直接影响服务端的性能,一般用于非生产环境。主动扫描适用于如下这两类漏洞:session
客户端的漏洞,如XXS、HTTP头注入、操做重定向。工具
服务端的漏洞,如SQL注入、命令行注入、文件遍历。
对第一类漏洞,Burp在检测时会提交input域,而后根据应答的数据进行解析。在检测过程当中,Burp会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。对第二类漏洞,以SQL注入为例,服务端有可能反回数据库错误提示信息,也有可能什么都不反馈。Burp在检测过程当中会采用各个技术验证漏洞是否存在,例如诱导时间延迟、强制修改Boolean值、与模糊测试的结果进行比较,以提升漏洞扫描报告的准确性。
(2)被动扫描
当使用被动扫描模式时,Burp不会从新发送新的请求,只是对已经存在请求和应答进行分析,对服务端的检测来讲比较安全,一般适用于生产环境的检测。通常来讲,下列漏洞在被动模式中容易被检测出来
提交的密码为未加密的明文。
不安全的cookie的属性,例如缺乏HTTPOnly和安全标志。
cookie的范围缺失。
跨域脚本包含和站点引用泄露。
表单自动填充,尤为时密码。
SSL保护的内容缓存。
目录列表。
提交密码后应答延迟。
session令牌的不安全传输。
敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露。
不安全的viewstate的配置。
错误或不规范的content-type指令。
虽然被动扫描模式相比主动模式有不少不足,但同时也具备主动模式不具有的优势。除了对服务端的检测比较安全,当某种业务场景的测试每次都会破坏业务场景的某方面功能时,可使用被动扫描模式验证是否存在漏洞,以减小测试的风险。
2、Intruder
Intruder是一个定制的高度的可配置的工具,能够对web应用程序进行自动化攻击,如经过标识符枚举用户名、ID和帐户号码、模糊测试、SQL注入、跨站、目录遍历等。
它的工做原理是Intruder在原始数据的基础上,经过修改各类请求参数获取不一样的请求应答。在每一次请求中,Intruder一般会携带一个或多个有效攻击载荷(Payload),在不一样的位置进行攻击重放,经过应答数据的比对分析得到须要的特征数据。Burp Intruder一般被应用于如下场景。
标识符枚举。web应用程序常用标识符引用用户、帐户、资产等数据信息。例如,用户名、文件ID和帐户号码。
提取有用的的数据。在某些场景下,不是简单地识别有效标识符,而是经过简单标识符提取其它数据。例如,经过用户的我的空间ID获取全部用户在其我的空间的名字和年龄。
模糊测试。不少输入型的漏洞(如SQL注入、跨站点脚本和文件路径遍历)能够经过请求参数提交各类测试字符串,并分析错误信息和其它异常状况。来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程,所以能够设施Payload,经过Burp Intruder自动化地对web应用程序进行模糊测试。
利用Intruder爆破无验证码和次数限制的网站的方法。前提是你得有比较好的字典。注意,Burp suite的文件不要放在中文的路径下。首先将数据包发送到Intrude模块中。Burp会自动对某些参数进行标记,这里先点击clear$按钮清除全部标记,而后选择要进行暴力破解的参数值,将pass参数选中,单击add$按钮。
sniper模式使用单一的payload组。它会针对每一个位置设置payload。这种攻击类型适用于对常见漏洞中的请求参数单独进行fuzzing测试的情景。攻击中的请求总数应该是position数量和payload数量的乘积。
battering ram模式使用单一的payload组。它会重复payload并一次性把全部相同的payload放入指定的位置中。这种攻击适用于须要在请求中把相同的输入放到多个位置的情景。请求总数是payload组中payload的总数。
pitchfork模式使用多个payload组。攻击会同步迭代全部的payload组,把payload放入,每一个定义的位置中。这种攻击类型很是适合在不一样位置中须要插入不一样但类似输入的状况。请求的数量应该是最小的payload组中的payload数量。
cluster bomb模式会使用多个payload组,每一个定义的位置中有不一样的payload组。攻击会迭代每一个payload组,每种payload组合都会被测试一遍。这种攻击适用于在位置中须要不一样且不相关或者未知输入攻击hi情景。攻击请求的数量是各payload组中payload数量的乘积。
选择字典,开始爆破并等待爆破结束。查看status或length的返回值进行排序,查看是否有不一样之处。若是有,查看返回包是否显示为登录成功,若是返回的数据包中有明显的登录成功的信息,则说明已经破解成功。
3、Repeater
Burp Repeater是一个手动修改、补发个别HTTP请求,并分析它们的响应的工具。它最大的用途就是能和其它Burp Suite工具结合起来使用。能够将目标站点地图、Burp Proxy浏览记录、Burp Intruder的攻击结果,发送到Repeater上,并手动调整这个请求来对漏洞的探测或攻击进行微调。
Repeater分析选项有4种:Raw、Parans、Headers和Hex。
Raw:显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,能够用来快速定位须要寻找的字符串,如出错消息。利用搜索栏左右的弹出项,能控制情况的灵敏度,以及是否使用简单文本或十六进制进行搜索。
Params:对于包含参数(URL查询字符串、cookie头或者消息体)的请求,Params选项会把这些参数显示为名字/值的格式,这样就能够简单地对它们进行查看和修改了。
Headers:将以名字/值的格式显示HTTP的消息头,而且以原始格式显示消息体。
Hex:容许直接编辑由原始二进制数据组成的消息。
在渗透测试过程当中,咱们常用Repeater进行请求与响应的消息验证分析。在Repeater的操做界面中,左边的Request为请求消息区,右边的Response为应答消息区,请求消息区显示的是客户端发送的请求消息的详细信息。当咱们编辑完请求消息后,单击”GO"按钮便可发送请求给服务端。应答消息区显示的是对对应的请求消息单击“GO"按钮后,服务端的反馈信息。经过修改请求信息的参数来比对分析每次应答消息之间的差别,能更好地帮助咱们分析系统可能存在的漏洞。
4、comparer
Burp Comparer在Burp suite中主要提供一个可视化的差别对比功能,来对比分析两次数据之间的区别,使用到的场合有:
枚举用户名的过程当中,对比分析登录成功和失败时,服务端反馈结果的区别。
使用Intruder进行攻击时,对于不一样的服务端响应,能够很快分析出两次响应的区别在哪里。
进行SQL注入的盲注测试时,比较两次响应消息的差别,判断响应结果与注入条件的关联关系。
使用Comparer时有两个步骤,先是数据加载,而后时差别分析。
Comparer数据加载的经常使用方式以下所示。
从其它Burp工具经过对上下文菜单转发过来。
直接粘贴。
从文件里加载。
加载完毕后,若是选择两次不一样的请求或应答消息,则下方的比较按钮将被激活,此时能够选择文本或字节比较。
5、Sequencer
Burp Sequencer是一种用于分析数据样本随机性质量的工具。能够用它测试应用程序的会话令牌(session token)、密码重置令牌是否可预测等场景,经过Sequencer的数据样本分析,能很好地下降这些关键数据被伪造的风险。
Burp Sequencer主要由信息截取(live capture)、手动加载(Manual load)和选项分析(Analysis Options)三个模块组成。
在截取信息后,单击Load按钮加载信息,而后单击”Analyze now“按钮进行分析。