渗透抓包——Burpsuite
Burp Suite
0.前言
Burp Suite的功能是十分强大的web应用程序渗透测试软件工具,其提供了多个模块和功能,一般常用到的就是抓包,与发送包的功能模块,这里使用了Burp2.0.11工具安装包(包含中文补丁)
1 |
|
1.语言环境及脚本安装
由于burp是基于java语言进行开发,所以首先点击jdk进行java 8的语言环境安装,参考教程:
1 |
|
然后点击run.bat就能够运行了,当然在运行前,必须在run文件内容中加入自己运行的文件夹路径
这是为了引导加入指定目录,如果将burp文件放在Users\Administrator下不写入cd指令也是可以的,如果路径不对,run.bat文件就打不开,这里就不具体展开了
2.代理和浏览器设置
前面提到我们最常用的就是抓包代理,所以这里进行浏览器的相关设置,首先为了方便代理的转换,这里谷歌浏览器推荐使用扩展工具SwitchyOmega
设置SwitchyOmega代理
接下来进行证书的导入:
当然,在给出的文件包中已经是含有证书了,可以选择直接使用给的证书,也可以自己重新导出一份证书出来,接下来就是导入证书到浏览器中,在浏览器中输入:
1 |
|
(你要通过点击设置进入也行)
接下里就是进行抓包尝试:
很好,抓包成功,接下来就是对burp的各个模块进行详细的教学和讲解
3. Proxy模块
Proxy的使用是一个摸索熟悉的过程,我们这里仅仅是介绍一些基础的使用效果
截断界面中,Intercept选项就是控制是否打开拦截功能的,on是打开off是关闭,这里就不啰嗦了
forward和drop则是提供了对包处理的选择,forward是放包通过,让服务器进行响应,drop是将数据包进行丢弃,后续不进行相关的处理。当我们点击forward后,就能够看到这次请求返回的相关数据,http报文内容就不必过多解释
最后一行是包含多个Cookie的字符串。每个Cookie都是一个键值对,用分号分隔开,些键值对记录了与用户相关的信息,例如用户标识、网站记录ID、会话ID等。每个网站可能使用不同的Cookie来跟踪和存储用户信息
在抓包成功后主要就是四个选项Raw、Params、Headers、Hex:
1)Raw
显示的是HTTP请求或者响应的原神数据,以纯文本的形式呈现,包括请求行、头部信息和正文内容等(图片看上图即可)
2)Params
显示了HTTP请求中的参数。这些参数通常以键值对的形式出现在URL查询字符串或请求体中。Params选项使我们能够查看和编辑这些参数,以便测试应用程序的安全性
3)Headers
显示了HTTP请求或响应的头部信息。头部包含了关于请求或响应的元数据,如User-Agent、Cookie、Content-Type等。Headers选项允许我们查看和编辑这些头部信息,以便模拟不同的请求环境或测试特定的漏洞
4)Hex
以十六进制形式显示HTTP请求或响应的内容。这对于分析二进制数据或检测隐藏字符或编码非常有用
在一般的默认情况下,Rroxy模块指会拦截请求的信息,普通文件如css、js、图片等相关内容的请求并不会被拦截,当然,burp也允许使用者通过修改默认的拦截选项来拦截这一部分的静态文件
在历史选项界面中,我们可以看到我们所拦截的数据包内容,其所具有的属性与拦截界面是基本一致的,但更主要的是在该历史选项界面中,我们能够查看到响应包的相关内容,以及能用render查看响应后的界面效果:
对于拦截到的消息和历史消息,都可以通过右击弹出菜单,发送到Burp的其他组件,如Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer、Extender,进行进一步的测试
WebSocket历史记录的作用是记录和显示与WebSocket通信相关的请求和响应。WebSocket是一种在Web应用程序中实现双向通信的协议,它允许服务器主动向客户端推送数据。通过WebSocket历史记录,可以查看和分析与WebSocket连接相关的请求和响应
在Burp Suite中,Options(选项)是一个功能强大的工具,用于配置和自定义Burp Suite的各种设置。通过Options,可以根据需要调整Burp Suite的行为和功能,其包括了对代理监听器的修改、拦截客户端请求设置,服务器响应拦截,websocket消息、响应操作、搜索和替换、SSL passthrough以及最后的详细控制操作修改(其他)
比如对于客户端的请求消息拦截,这是指拦截客户端发送到服务器端数据的相关配置选项,主要是有着拦截规则配置、错误消息主动恢复、主动更新Content-Length消息头三个部分,服务器端的返回拦截本质上也与该模块类似
其本质是正则表达式配置,其主要作用就是是主动偷换请求消息和服务端返回消息的某些值与文本内容,其与前面几项不同之处在于支持正则表达式的语言;选项界面的其余模块就不过多介绍了,在使用的时候也能慢慢熟悉和理解其作用。
4.Target模块
在Burp Suite中,Target模块用于配置目标应用程序的相关设置。它是Burp Suite的一个核心模块,提供了多个子模块,用于执行各种与目标应用程序相关的任务
Site map子模块显示了目标应用程序的网站结构和页面层次结构。它会自动收集和显示通过Burp Suite代理的所有请求和响应,并将它们组织成树状结构。您可以使用Site map来导航和分析目标应用程序的不同页面,并对其进行进一步的测试和评估
从图的结构而言,站点地图左边的为访问的URL相关内容,安装网站的层级,以树形结构的形式展示了整个网站系统的结构,右面四大模块则是详细的列表、访问的url、请求和应答的内容,基于树形结构,我们既可以抓取想要的某个分支,对指定的分支进行扫描和分析
Scope子模块用于定义目标应用程序的测试范围。您可以指定要包含或排除的URL、域名、文件扩展名等。通过配置Scope,这样子可以确保Burp Suite只针对特定的目标进行测试,以提高效率并减少误报
这里我们也能够勾选高级选项,进行更加细节的操作和消息过滤
规则主要由协议、域名或IP地址、端口、文件名4个部分组成,这就意味着我们可以从协议、域名或IP地址、端口、文件名4个维度去控制哪些消息出现在允许或去除在规则列表中
Issues定义子模块用于显示Burp Suite扫描器检测到的漏洞和问题。它会列出各种安全问题,如SQL注入、跨站脚本(XSS)、敏感信息泄露等。您可以查看每个问题的详细信息,并导出报告以供进一步分析和修复
这里就不过多的进行阐述,后续信息内容可以查看官方的文档介绍
5.intruder模块
该模块是需要着重学习的模块,Intruder作为Burp Suite中一款功能极其强大的自动化测试工具,通常被系统安全渗透测试人员被使用在各种任务测试的场景中,其作用可以说是十分的显著。这里进行相关的介绍
目标界面较为简单,主要就是三个方面,主机地址,端口号以及是否选用HTTPS的选择,一般当我们在代理模块将数据包发送到instruder模块时,这里就是已经默认填上了对应的内容了
位置界面的定位就比较好理解,在这个界面一般我们就干两件事情,第一件是寻找我们需要改变的变量,对其进行相应的赋值行为,第二个就是选择我们所需要进行攻击的类型,不同攻击类型对应着不同的测试场景,先提供的暂时是4个
具体的简单利用可以参考,对于四种攻击方式的利用,我认为还是应用例子会比较容易理解,后续会加入一些演示的例子作为参考:
在该界面中,有payload集合的设置选项,包含了经常使用的18种payload类型,从简单清单、运行时文件、自定义迭代器等多种功能,每一个功能对应的相关可设置内容也各不相同,这里的使用和学习也能参考:
1 |
|
在选项设置界面中主要是包含了请求消息头、请求引擎、攻击结果、grep match, grep extract, grep payloads,以及重定向设的相关7中设置,我们可以在攻击前进行设置,也可以在攻击过程中进行选项设置
1 |
|
6. Repeater模块
c重放功能是作为buro中的一项手工验证HTTP消息的测试工具,通常是用于多次请求响应和手工修改请求信息的修改后对服务器响应的信息分析,其整个界面区分为了请求包和响应:
点击go按钮,burp就会将请求包发送,并且接受对应的响应包内容, 通过修改请求数据包的参数内容来比对分析每次应答消息之间的差异,能更好的帮助我们查找到对应的漏洞点
7.Sequencer模块
用于破解密码、识别可预测的随机数生成器以及评估会话令牌和其他安全令牌的强度。使用这个模块时,可以捕获应用程序发送的请求,并将其作为输入传递给Sequencer。然后,Sequencer会分析请求中的随机性,并生成统计数据和报告,以帮助评估随机性的质量和预测性
其提供了多种统计方法,包括频率分析、最长公共子序列(LCS)和熵分析等。这些方法可以帮助确定随机性的质量,并检测是否存在可预测的模式或趋势
在这个界面中,主要是在代理的数据包中传送过来的内容,点击设定按钮对需要分析的token以及参数进行相关的配置和使用
选定一个参数的值,这里选择ETag的内容:
点击开始捕捉按钮,点击分析执行(可以停止进行分析,也可以不停止进行分析)
等分析结束,则可以看到分析结果的各种图表
这一块其实就是在实时捕捉阶段进行将获取数据保存起来,下一次使用的时候,只需要直接加载数据进行分析即可:
该模块的选项界面追要是为了控制token以参数,在进行数据分析时,做如何处理,做什么类型的随机性分析
8.Decoder模块
对于burp的编码模块理解就比较简单了,这就是一个burp自带的编码解码工具,它能对原始数据进行各种编码格式和散列的转换
输入域即输入需要解码的原始数据,此处可以直接填写或粘贴,上面是输入区域,下面的是输出区域,无论是输入域还是输出域都支持文本与Hex两种格式,其中编码解码选项中,由解码选项、编码选项、散列三个构成 ,目前支持八种形式的格式转换(URL、HTML、Base64、ASCII、16进制、8进制、2进制、GZIP),需要注意的是,在这个模块中可以进行多次界面和编码的转换
9.扩展模块
burp在软件中是支持第三方扩展插件功能的,这是为了方便有更多的功能的加入,也鼓励使用者们进行开发,所以Burp扩展程序可以以多种方式支持自定义Burp的行为,这里主要介绍几个burp的相关信息,首先是burp的插件官方网站:
1 |
|
burp软件内也是由直接提供扩展内容的,与官网内容基本一致
当然,除了官方版本,github也存在着许许多多的burp扩展项目提供开源使用,比如漏洞检测创建扩展、自己网站安全检测的安全脚本等等买这些都是开源提供的,能够很好的提高我们的工作效率,上面所讲述的软件内扩展提供有一部分也是根据github提供的内容进行转载:
对于github的扩展内容,我们可以通过选项界面进行相关的导入
举起导入过程,基本都有相关教程,这里就不别浪费时间进行阐述,我们对于burp的相关了解就至此结束,对于为涉及到的仪表盘、项目选择、用户选择以及对比器并没介绍,这是因为在我们的渗透过程中,这几个部分目前的使用概率比较小,所以不会进行描述,后续如果有涉及到也会进行相关的跟进和学习