BurpSuite其实是由多个不同的小工具(功能模块)组成的集合,工具与工具之间可以联动
主要功能模块:
- Target:显示目标目录结构的-个功能
- Proxy:拦截HTTP/HTTPS的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许拦截、查看修改在两个方向上的原始数据流
- Intruder: -一个定制的高度可配置的工具,对Web应用程序进行自动化攻击,如:枚举标识符、收集有用的数据以及使用fuzzing技术探测常规漏洞
- Repeater: -个靠手动操作来触发单独的HTTP请求,并分析应用程序响应的工具
- Sequencer:用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具
- Decoder:进行手动执行或对应用程序数据者智能解码编码的工具
- Comparer:通常是通过一些相关的请 求和响应得到两项数据的一-个可视化的"差异”
Proxy以拦截代理的方式,拦截所有通过代理的HTTP和HTTPS协议的流量。通过拦截,BurpSuite以中间人的方式, 可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的。
Intruder在原始请求数据的基础.上,通过修改各种请求参数,以获取不同的请求应答。每一-次请求中,Intruder通常 会携带-一个或多个有效攻击载荷,在不同的位置进行攻击重放,通过应答数据的比对分析来获得需要的特征数据。
作为BurpSuite中一款手工验证HTTP消息的测试工具,Repeater通常用于多次重放请求响应和手工修改请求消息及修改后对服务器端响应的消息分析。
作为BurpSuite中一款手工验证HTTP消息的测试工具,Repeater通常用于 多次重放请求响应和手工修改请求消息及修改后对服务器端响应的消息分析,如:
- 修改请求参数,验证输入的漏洞
- 修改请求参数,验证逻辑越权
- 从拦截历史记录中,捕获特征性的请求消息进行请求重放
作为BurpSuite中一款用于检测数据样本随机性质量的工具,Sequencer通常用于检测访问令牌是否可预测、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。 的数据样本分析,能很好地降低这些关键数据被伪造的风险。
作为BurpSuite中一款编码解码工具,Decoder的功能比较简单,它能对原始数据进行各种编码格式和散列的转换。
Comparer在BurpSuite中主要提供一个可视化的差异比对功能,来对比分析两次数据之间的区别。
- 选项卡Proxy-> Options-> Proxy Listeners
- 注意: Tomcat在本机的默认端口是8080,BurpSuite proxy 在本机的默认监听端口也是8080,如果同时打开就会导致端口冲突。因此,建议将BurpSuite proxy的代理端口改为其他不常用端口,如10000。
菜单项“工具”-> "选项”-> "常规" ->“网络设置”,点击“设置"按钮,在弹出的"连接设置”对话框中选择“手动代理配置”,"HTTP代理”处填写127.0.0.1,“端口” 处填写10000 (跟BurpSuite代理服务端口值保持一致),同时勾选“也将此代理用于FTP和HTTPS”,设置完成后点击"确定”按钮。
也可以使用插件Proxy Switchy Omega来实现此功能
- (1)首先关闭BurpSuite的拦截功能,具体方法为:选项卡Proxy-> Intercept,设置Intercept is off。
- (2)利用FireF ox浏览器访问DVWA网站,正常显示认证页面。
- (3)开启BurpSuite的拦截功能,具体方法为:选项卡Proxy-> Intercept, 设置Intercept is on.
- (4)在DVWA网站认证页面输入登录用户名和密码(此处可随便输入任意字符),并点击Login按钮,观察到BurpSuite已经抓到了一个HTTP请求报文。
将BurpSuite抓到的HTTP请求报文的POST表单中的数据进行修改,设置正确的用户名(admin) 和密码(password) ,修改完成后多次点击"Forward" 按钮发送此HTTP请求报文,观察到DVWA网站认证通过,成功登录。
(1)利用FireFox浏览器访问http://burp或127.0.0.1:8090, 点击页面右上侧的"CA Certificate" 处下载CA证书(cacert.der)
(2)在FireFox浏览器上选择菜单项“工具”->. "选项" ->“隐私与安全”->”证
书",点击“查看证书”按钮,在弹出的“证书管理器”对话框中选择“证书颁发机
构”标签页,点击“导入”按钮,将刚刚下载的cacert.der导入,导入时注意勾选
信任由此证书颁发机构来标识网站”。
- (1) 开启BurpSuite的拦截功能,具体方法为:选项卡Proxy->Intercept,设置Intercept is on,
- (2)重启FireFox浏览器,并访问https://www.baidu.com,观察到BurpSuite已经抓到了一个HTTPS请求报文。
BurpSuite在软件中提供了支持第3三方拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中安装拓展插件。
BurpSuite扩展程序以多种方式支持自定义BurpSuite的行为,例如:
- 修改HTTP请求和响应
- 自定义UI
- 添加自定义扫描程序检查以及访问关键运行时信息,包括代理历史记录,目标站点地图和扫描程序问题等
1. Extensions:扩展
2.BApp Store:应用程序商店
3.APIs: 扩展API
4.Options:选项
Logger++: BurpSuite 自带的日志只记录了HTTP Proxy的请求,无法查看Repeater. Intruder等 模块的历史记录,Logger+ +增加了这方面的功能,可以方便地筛选查看各模块历史记录。
CSRF Token Tracker:用于渗透测试过程中CSRF Token的自动更新。
XSS Validator:用于增强BurpSuite对XSS漏洞的检测。
CO2:包含多个小工具如SQLMapper、User Generator. Prettier JS、ASCII Payload Processo、 Masher等功能等。
Heartbleed:经典的Heartbleed心脏出血漏洞。
J2EEScan:该插件能够检测JBoss、Tomcat、 Weblogic. Oracle应用服务
器、Jetty、Apache Axis、JBoss SEAM、Java Server Faces、Apache
谷、Wicket、Grails、 Apache Struts以及多种CVE漏洞。
Intruder在原始请求数据的基础上,通过修改各种请求参数,以获取不同的请求应答。每一次请求中,Intruder通 常会携带一个或多个有效攻击载荷(payload),在不同的位置进行攻击重放,通过应答数据的比对分析来获得需要的特征数据。
- 标识符枚举: Web应用程序经常使用标识符来引用用户、账户、资产等数据信息,例如用户名、密码、文件ID等。
- 提取有用的数据:在某些场景下,需要通过简单标识符提取一些其他的数据。比如通过用户的个人空间id,获取所有用户在个人空间标准的昵称和年龄。
- 模糊测试:很多输入型的漏洞,如SQL注入、XSS和文件路径遍历等,可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。由于应用程序的复杂性,手动执行这个测试是一一个耗时且繁琐的过程。这样的场景,可以设置payload,通过Intruder自动化地对Web应用程序进行模糊测试。
用于设置攻击目标
用于设置攻击位置和攻击模式
- [Add 6] :在当前光标的位置添加一一个Payload位置标志
- [Clear 5] :清除所有Payload位置标志或者清除选中的Payload位置标志
- [Auto 6] :对消息内容中可能需要标志的参数做-一个猜测,标志为Payload位置,自动设置完之后再做人工的选择,确定哪些位置是需要传入Payload的。
- [Refresh] :刷新消息内容中带有颜色的部分。
- [Clear] :清除消息编辑器中所有内容。
- 狙击手模式(Sniper) :单payload位置,单payload集合,简单替换,若有多个payload位置,则会在每一个位置 上遍历- -次payload集合
- 攻城锤模式(Battering ram) :多payload位置,单payload集合, 在多个位置上使用相同的payload
- 草叉模式(Pitchfork) :多payload位置,多payload集合, 在每个payload位置.上遍历对应的payload集合,攻击次数为最短的payload集合的元素个数
- 集束炸弹模式(Cluster bomb) :多payload位置,多payload集合,以多个payload集合的笛卡尔积作为攻击序列。如第一个位置的payload集合是{A,B},第二格位置的payload集合是{C,D},则攻击序列为{,,.}
用于设置攻击载荷
最简单的payload类型, 配置-一个字符串列表作为payload,也可以手工添加字符串列表或从文件加载字符串列表。
指定文件,作为相对应payload位置上的payload列表。
它共有8个占位,每个占位可以定义一个简单列表,最终所使用的payload为每个占位的简单列表的笛卡儿积。
例如:在HTTP Basic认证中,用户名密码的格式是[username]:[password],利用Intruder进行爆破,只需要在第-一个占位中加入username列表,在第二个占位中输入”:.",在第三个占位中输入password列表,就能产生如图的效果。
对预定义字符串进行”枚举替换“后产生新的payload。
- 从服务器端提取有效数据的场景,需要先从服务器的响应中提取数据作为payload,然后替换payload的位置,进行攻击。
- 递归的配置需要进入Options->Grep-Extract进行配置;使用Recursivegrep模式时,线程数必须为1
- 字符块(Character blocks) :使用一个给出的输入字符串,根据指定的设置产生指定大小的字符块,表现形式为生成指定长度的字符串
- 数字类型(Number) :根据配置,生成-系列的数字作为payload
- 日期类型(Dates) :根据配置,生成一系列的日期
- 暴力字典(Brute forcer) :生成包含-一个指定的字符集的所有排列特定长度的有效载荷,通常用于枚举字典的生成
- 空类型(Null payloads) : 产生的payload其值是一一个空字符串
- payload复制(Copy other payload) :这种类型的payload是将其他位置的参数复制到payload位置上
第一个payload set选择Custom iterator类型。
配置三个占位,其中第一个占位是用户名合集,第三个占位是密码集合
在Payload Encoding处,禁用对=和&进行URL编码。
第二个payload set选择Recursive grep类型。
在Error Handing处将线程数设置为1
新版的burp在这里设置
在Grep-Extract处设置为递归提取的内容
在Redirections处设置”Follow Redirections“为”always“(总是重定向)。