简介
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们能更好的完成对web应用的渗透测试。Burp Suite允许测试人员结合手工和自动技术去枚举、分析、攻击Web应用程序。
特点:
- 跨平台( Java语言编写)
- 海量插件(支持Java、Python、Ruby)
- 联动其它工具(sqlmap、Xray等)
- 需要手工配置一些参数触发自动化流程
各版本区别:
社区版功能最少,不支持扫描模块和插件等,专业版支持;企业版功能最多,它提供了一个自动扫描器,支持定期扫描
专业版和企业版详细区别:https://portswigger.net/burp/enterprise/resources/enterprise-edition-vs-professional
基本组件用法
Proxy组件
主要进行HTTP请求/响应拦截、 修改和代理转发。拦截所有在客户端和服务端之间传输的数据。
- 客户端需要配置代理:
127.0.0.1:8080
(Burp默认监听) - Proxy组件默认不拦截图片、js、css等静态文件请求
- 直接修改数据包、通过右键或点击Action进行其它操作
- 默认只拦截请求,不拦截响应
拦截所有响应的设置方法:Proxy settings -> Response interception rules
拦截指定请求的响应:右键/Action -> Do Intercept -> Reponse to this request
Dashboard组件
主要用作任务管理(扫描任务创建、暂停、停止),事件日志记录,问题展示等。
- Burp Suite默认会对经过Proxy组件的HTTP请求进行被动扫描。
- Tasks显示扫描任务(默认显示被动扫描情况)和审计任务情况
红色->表示高危漏洞
,橙色->表示中危漏洞
,蓝色->表示低危漏洞
,灰色->表示提示信息
Target组件
主要记录被测目标目录结构、参数和问题,设置Burp的拦截范围,URL和路径等。
如有时候只想拦截被测目标的请求忽略其他请求就可以在Target scope
的Include in scope
中添加目标,排除目标就在Exclude from scope
中添加排除目标。
Repeater组件
主要是手工对HTTP请求数据进行修改和重放,对HTTP响应数据进行人工分析。可通过Ctrl+R
发送到Repeater组件。
在这个组件中可以直接修改HTTP请求,切换到Hex视图等,右键调出内置功能,包括扫描、发送到其他组件、调用插件、改变HTTP请求方法、改变Body编码、以及进行URL编解码、HTLM编解码和Base64编解码等。
Intruder组件
主要用来自动化测试,如模糊测试、参数枚举、Web漏洞Fuzz和口令暴破等。Burp Suite内置4种攻击类型,19种Payload类型和47组Payload。
- 至少需要标记一个自动测试位置,选择要测试的参数后点击添加(支持自动添加:
Auto
) - 设置Payload,以及对Payload的操作,如Hash、添加前缀、添加后缀、编码等,默认启动对特殊字符的url编码,按需设置
- 根据测试场景选择对应的攻击模式(如模糊测试、参数枚举等通常使用
Sniper
,用户名密码暴破通常使用cluster bomb
)
攻击类型和说明:Pitchfork
和cluster bomb
每个标记位置都需要一组Payload。
Payload类型和说明:
使用场景
暴力破解401认证,如Tomcat:
暴力破解或Fuzz:
通过状态码、长度、错误、超时等进行筛选,查看响应验证是否成功
Decoder组件
主要用于各种编码解码和Hash计算等,如URL编码解码、Base64编码解码、MD5、SHA计算等。
Sequencer组件
主要用于分析数据随机性,通常用来测试应用程序的session tokens(会话tokens)或其他重要数据项的随机性,如CSRF tokens,密码重置tokens等。
1.Live capture
实时捕获
可以从Repeter或其他位置发送到该组件,然后进行随机性分析,如Cookie随机性分析:
Comparer组件
提供一个可视化的差异比对功能,通过比对分析两次数据之间等区别,支持单词和字节方式。
单词对比:
字节对比:
Collaborator组件
主要提供一DNSLog平台,通过DNS请求来检测无回显(没有在Response显示Payload执行结果)的漏洞。
如无回显命令注入:
Extensions组件
主要用于插件安装和导入,以及插件所需Python环境和Ruby环境配置等。插件有两种安装方式:
- 通过Bapp Store安装
- 通过外部导入
配置Python环境:
安装自定义插件:
通过BApp Store安装插件:
插件使用
一些插件
有一个不错的项目精选了一些Burp插件:https://github.com/snoopysecurity/awesome-burp-extensions
HaE插件使用
HaE能够准确匹配并处理HTTP请求与响应报文(包含WebSocket),对匹配成功的内容进行有效的标记和信息抽取并高亮显示。
GitHub项目地址
添加自定义信息提取和高亮显示,如车辆VIN:
sqlmap4burp++插件使用
Burp与sqlmap联动插件,调用sqlmap进行SQL注入测试。
GitHub项目地址
使用方法:
Burp Bounty Pro插件使用
Burp Bounty Pro
改进了Burp内置的主动和被动扫描仪,具有高级和自定义的漏洞扫描配置文件。
通过Options
标签进行配置
在Dashboard
标签查看扫描结果:
chunked-coding-converter插件使用
插件有4个功能:
- 编码请求body
- 解码请求body
- 配置
- 延时分块传输
配置支持:
- 指定分块长度
- 指定注释长度
- 指定作用组件
使用方法:
右键 --> Extensions --> Chunked coding converter x.x.x --> Config
进行配置,可以设置分块长度,注释长度和作用组件
如选择Proxy,经过代理的所以数据都会使用配置的分块传输进行发送,用来绕过WAF等- 手工直接编码或解码HTTP请求
Authz
此插件用于挖掘未授权访问漏洞,它会代替人工发送2次请求,第一次带Cookie,第二次不带Cookie,通过对比两次请求响应判断漏洞是否存在。使用比较简单,直接右键将Cookie有效的数据包发送到Authz插件,然后在Authz插件点击run即可。
Auth Analyzer
此插件用于挖掘越权漏洞,可对接口进行批量测试。通过BApp Store直接安装即可。
使用方法:
- 使用其他的浏览器登录低权限账号,并获取Token,发送至user1,在
Proxy
组件点击Open browser
打开内置浏览器,访问被测目标,使用Burp内置的浏览器登录高权限的账号获取token,添加新的Session。 - 点击
Analyzer Stopped
按钮,使其变成Analyzer running
。 - 在内置浏览器浏览高权限账户功能,插件中会显示结果
工具联动
Xray
方法一:浏览器 --> Burp --> Xray
Xray开启扫描监听:xray_windows_amd64.exe ws --listen 127.0.0.1:7777 --ho __datetime__.html
Burp设置上游代理为Xray监听地址和端口:
方法二:浏览器 --> Xray --> Burp
也可以使目标先经过Xray,配置Xray代理,将流量转发到Burp,灵活运用即可。
hfinger
方法一:浏览器 --> Burp --> hfinger
启动hfinger监听模式:hfinger -l 127.0.0.1:8888
,Burp设置上游代理为hfinger监听地址和端口即可。
方法二:浏览器 --> hfinger --> Burp
启动hfinger监听模式:hfinger -l 127.0.0.1:8888 -p http://127.0.0.1:8080
,浏览器设置代理为hfinger代理地址即可。
Comments | NOTHING