Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多Burp工具,这些不一样的burp工具经过协同工做,有效的分享信息,支持以某种工具中的信息为基础供另外一种工具使用的方式发起攻击。这些工具设计了许多接口,以促进加快攻击应用程序的过程。全部的工具都共享一个能处理并显示HTTP消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。它主要用来作安全性渗透测试。php
一、Target(目标)——显示目标目录结构的的一个功能
二、Proxy(代理)——是一个拦截HTTP/S的代理服务器(抓包),做为一个在浏览器和目标应用程序之间的中间人,容许你拦截,查看,修改在两个方向上的原始数据流。
三、Spider(爬虫)——是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
四、Scanner(扫描器)[仅限专业版]——是一个高级的工具,执行后,它能自动地发现web 应用程序的安全漏洞。
五、Intruder(入侵)——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
六、Repeater(中继器)——是一个靠手动操做来补发单独的HTTP 请求,并分析应用程序响应的工具。
七、Sequencer(会话)——是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
八、Decoder(解码器)——是一个进行手动执行或对应用程序数据者智能解码编码的工具。
九、Comparer(对比)——是一个实用的工具,一般是经过一些相关的请求和响应获得两项数据的一个可视化的“差别”。
十、Extender(扩展)——可让你加载Burp Suite的扩展,使用你本身的或第三方代码来扩展Burp Suit的功能。
十一、Options(设置)——对Burp Suite的一些设置html
凡是跟代理的内容,都找proxy就对了!
forward:传输本次数据
drop:丢弃本次数据
Intercepton/off:拦截开启/关闭
Action:提供功能选项web
当Burp Suite拦截的客户端和服务器交互以后,咱们能够在Burp Suite的消息分析选项卡中查看此次请求的实体内容、消息头、请求参数等信息。
Raw:视图主要显示web请求的raw格式,包含请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。咱们能够经过手工修改这些信息,对服务器端进行渗透测试。
params :视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、Cookie参数。渗透人员能够经过修改这些请求参数来完成对服务器端的渗透测试。
headers:视图显示的信息和Raw的信息相似,只不过在这个视图中,展现得更直观、友好。
Hex :视图显示Raw的二进制内容,你能够经过hex编辑器对请求的内容进行修改。
Burpproxy所拦截的消息可在Fitter(过滤器)中根据须要进行修改
全部流经burpproxy的消息都会在 http history中记录下来,咱们能够经过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证,同时,咱们能够经过右击来弹出菜单,发送内容到burp的其余组件进行处理(相似于Action的功能)
comment:对拦截的消息添加备注,在一次渗透测试中,你一般会遇到一连串的请求消息,为了便于区分,在某个关键的请求消息上,你能够添加备注信息。
Highlight的功能与Comment功能有点相似,即对当前拦截的消息设置高亮,以便于其余的请求消息相区分。正则表达式
可选项配置Options
从界面上看,主要有如下几大板块
▪客户端请求消息拦截(Interceptclient requests)
▪服务器端返回消息拦截(intercept server responses)
▪服务器返回消息修改(response modification)
▪正则表达式配置(match and replace)
▪其余配置项(miscellaneous)数据库
默认Intercept is on 按钮出于开启状态 也就是说默认代理截断功能是打开的.此时全部的请求都会被截断,只有手动Forward以后请求才会被发出去。
api
全部通过burp suite的请求 都会被记录到Http history中. 上面是请求概要信息,下面是请求的详细信息。跨域
有的web是没有界面的 是用过一个长连接 相似于api的方式来传输数据 burp suite也是能够截获这类信息的。浏览器
Proxy Listeners(侦听端口设置)
添加示例:
缓存
点击next 就会生成一张证书 选择路径保存. 而后导入到浏览器,就能够实现https的访问安全
Burptarget组件主要包含站点地图、目标域、target工具三部分组成
帮助渗透测试人员更好地了解目标应用的总体情况、当前的工做涉及哪些目标域、分析可能存在的攻击面等信息
目标域设置 Target Scope
应用场景
1.限制站点地图和Proxy历史中的显示结果
2.告诉Burp Proxy拦截哪些请求
3.Burp Spider抓取哪些内容
4.BurpScanner自动扫描哪些做用域的安全漏洞
5.在Burp Intruder和Burp Repeater中指定URL
站点地图 Site Map
在一次渗透测试中,经过浏览器浏览的历史记录在站点地图中的展示结果将自动在site map中呈现。
Site Map的左边为访问的URL,按照网站的层级和深度,树形展现整个应用系统的结构和关联其余域的url状况;右边显示的是某一个url被访问的明细列表,共访问哪些url,请求和应答内容分别是什么,都有着详实的记录。基于左边的树形结构,咱们能够选择某个分支,对指定的路径进行扫描和抓取。
Target 工具的使用
主要包括如下部分:1.手工获取站点地图2.站点比较3.攻击面分析
①手工获取站点地图:
1.设置浏览器代理和burp proxy代理,并使之能正常工做
2.关闭拦截功能
3.手工浏览网页
这时,target会自动记录站点地图信息。
手工获取站点地图的方式有一个好处就是,咱们能够根据本身的须要和分析,自主地控制访问内容,记录的信息比较准确。与自动抓取相比,则须要更长的时间,若是须要渗透测试的产品系统是大型的系统,则对于系统的功能点依次操做一遍所须要的精力和时间对渗透测试人员来讲付出都是很大的。
②站点比较
对站点进行动态分析的利器,咱们在比较账号权限时常用到它。
当咱们登录应用系统,使用不一样的账号,账号自己在应用系统中被赋予了不一样的权限,那么账号所能访问的功能模块、内容、参数等都是不尽相同的,此时使用站点比较,能很好的帮助渗透测试人员区分出来。
通常来讲,主要有如下3种场景:
1.同一个账号,具备不一样的权限,比较两次请求结果的差别。
2.两个不一样的账号,具备不一样的权限,比较两次请求结果的差别。
3.两个不一样的账号,具备相同的权限,比较两次请求结果的差别。
步骤:
1.首先咱们在须要进行比较的站点上点击右键,找到站点比较的菜单“Comparesite maps”
2.因为站点比较是在两个站点地图之间进行的,因此咱们在配置过程当中须要分别指定Site Map1和Site Map2。一般状况下,Site
Map 1 咱们默认为当前会话。如图所示,点击【Next】。
3.这时咱们会进入Site Map 1设置页面,若是是全站点比较咱们选择第一项,若是仅仅比较咱们选中的功能,则选择第二项。以下图,点击【Next】。若是全站点比较,且不想加载其余域时,咱们能够勾选只选择当前域。
4.接下来就是Site Map 2的配置,对于Site Map 2咱们一样有两种方式,第一种是以前咱们已经保存下来的Burp
Suite站点记录,第二种是从新发生一次请求做为Site Map2.这里,咱们选择第二种方式。
5.若是上一步选择了第二种方式,则进入请求消息设置界面。在这个界面,咱们须要指定通讯的并发线程数、失败重试次数、暂停的间隙时间。
6.设置完Site Map 1和Site Map 2以后,将进入请求消息匹配设置。在这个界面,咱们能够经过URL文件路径、Http请求方式、请求参数、请求头、请求Body来对匹配条件进行过滤。
7.设置请求匹配条件,接着进入应答比较设置界面。在这个界面上,咱们能够设置哪些内容咱们指定须要进行比较的
8.若是咱们以前是针对全站进行比较,且是选择从新发生一次做为Site Map2的方式,则界面加载过程当中会不停提示你数据加载的进度,若是涉及功能请求的连接较少,则很快进入比较界面。
③攻击面分析
步骤:
1.右键找到【Engagementtools】(交互工具),点击Analyze Target使用
2.在弹出的分析界面中,咱们能看到概况、动态URL、静态URL、参数4个视图。
3.概况视图主要展现当前站点动态URL数量、静态URL数量、参数的总数、惟一的参数名数目,经过这些信息,咱们对当前站点的整体情况有粗线条的了解。
4.动态URL视图展现全部动态的URL请求和应答消息,跟其余的工具相似,当你选中某一条消息时,下方会显示此消息的详细信息。
4.参数视图有上中下三部分组成,上部为参数和参数计数统计区,你能够经过参数使用的次数进行排序,对使用频繁的参数进行分析;中部为参数对于的使用状况列表,记录对于的参数每一次的使用记录;下部为某一次使用过程当中,请求消息和应答消息的详细信息。
在使用攻击面分析功能时,须要注意,此功能主要是针对站点地图中的请求URL进行分析,若是某些URL没有记录,则不会被分析到。同时,在实际使用中,存在很点站点使用伪静态,若是请求的URL中不带有参数,则分析时没法区别,只能当作静态URL来分析。
Burp Spider的功能主要使用于大型的应用系统测试,它能在很短的时间内帮助咱们快速地了解系统的结构和分布状况。
spider控制
Spider控制界面由Spider状态和Spider 做用域两个功能组成。
Spider 状态除了显示当前进度、传输状况、请求队列等统计信息外,还有Spider运行/暂停按钮与清空队列按钮,分别用来控制Spider是否运行和队列中的数据管理。而Spider做用域是用来控制Spider的抓取范围,从图中咱们能够看到有两种控制方式,一种是使用上一节讲的Target Scope,另外一种是用户自定义。此处用户自定义做用域的配置与Target Scope的配置彻底一致,具体使用方法请参数上一节Target Scope的配置。
Spider可选项设置
Spider可选项设置由抓取设置、抓取代理设置、表单提交设置、应用登录设置、蜘蛛引擎设置、请求消息头设置六个部分组成。
BurpScanner的功能主要是用来自动检测web系统的各类漏洞,咱们可使用BurpScanner代替咱们手工去对系统进行普通漏洞类型的渗透测试,从而能使得咱们把更多的精力放在那些必需要人工去验证的漏洞上。
Scannr的扫描方式分为两种,主动扫描和被动扫描。
1.主动扫描(ActiveScanning)
当使用主动扫描模式时,Burp 会向应用发送新的请求并经过payload验证漏洞。这种模式下的操做,会产生大量的请求和应答数据,直接影响系统的性能,一般使用在非生产环境。它对下列的两类漏洞有很好的扫描效果:
① 客户端的漏洞,像XSS、Http头注入、操做重定向;
② 服务端的漏洞,像SQL注入、命令行注入、文件遍历。
对于第一类漏洞,Burp在检测时,会提交一下input域,而后根据应答的数据进行解析。在检测过程当中,Burp会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。 对于第二类漏洞,通常来讲检测比较困难,由于是发生在服务器侧。好比说SQL注入,有多是返回数据库错误提示信息,也有多是什么也不反馈。Burp在检测过程当中,采用各个技术来验证漏洞是否存在,好比诱导时间延迟、强制修改Boolean值,与模糊测试的结果进行比较,已达到高准确性的漏洞扫描报告。
Scanner的具体步骤
1.被动扫描
在burpsuite专业版中,默认对拦截的全部站点进行被动扫描,咱们能够再Target下的site map 选项卡中看到,图中所示的状况,两个红色方框分别表示了某站点存在的漏洞以及某个漏洞的具体详情。
咱们能够在Scope中修改工做范围,方便咱们进行针对性的分析工做
也能够在Scanner下的Live Scanner选项卡中调整咱们的扫描策略,好比取消对全部站点的被动扫描
2.主动扫描
如图,咱们能够经过多种方式对某一站点进行主动扫描,操做十分简单
随便经过一种方式进行主动扫描后,咱们能够进入到如图选项卡中对扫描进度进行查看,图中显示扫描已完成,发现4个问题,一共收到了513个应答
工做原理:
Intruder在原始请求数据的基础上,经过修改各类请求参数,以获取不一样的请求应答。每一次请求中,Intruder一般会携带一个或多个有效攻击载荷(Payload),在不一样的位置进行攻击重放,经过应答数据的比对分析来得到须要的特征数据。
应用场景:
测试步骤:
Repeater是一个重放攻击器。
咱们能够在这里对数据包的参数进行修改,以此来进行请求与响应的消息验证分析。
用于检测数据样本随机性质量的工具,一般用于检测访问令牌是否可预测、密码重置令牌是否可预测等场景,经过Sequencer的数据样本分析,能很好地下降这些关键数据被伪造的风险。
使用步骤:
1.确认burpsuite的正确运行,打开拦截
2.从burpproxy的历史日志中,寻找token或相似的参数(cookies等)点击右键弹出上下文菜单,点击 send to sequencer
3.进入burpsequencer的live cature面板,选中刚才发送过来的记录,点击 configure 配置须要分析的token 或参数
4.在弹出的参数配置对话框中,选中参数的值,点击 ok,完成参数设置
5.点击select live capture,开始进行参数值的获取
6.当抓取的参数值总数大于100时,点击【pause】或者【stop】,这时能够进行数据分析,点击【Analyze
now】即进行数据的随机性分析。
7.等分析结束,能够看到分析结果的各类图表
8.咱们也能够把获取的数据保存起来,下一次使用的时候,从文件夹加载参数,进行数据分析。
——点击savetokens保存数据
9.再次使用时,直接在manual load处,点击load… 加载数据便可