渗透测试工具Burp Suite主要功能详解
前言
文章较长,看之前建议先了解以下四个问题
问题一、Burp Suite是什么?
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。
在渗透测试中,我们使用Burp Suite将使得测试工作变得更加快捷高效
问题二、Burp Suite具象化功能体现在哪?(部分示例)
1.攻击网站,获取用户登录名和密码
2.攻击网站,获取密码和token
在获取CSRF token的情况下攻击网站,拿到正确的用户名和登录密码
3.攻击网站,跳过输验证码阶段
篡改响应值,跳过验证码进入下一级网页
问题三、怎么安装配置Burp Suite?
配置Burp Suite教程:
【网络安全】Burpsuite v2021.12.1安装&激活&配置&快捷启动
问题四、怎么使用Burp Suite?
官网学习链接如下:
https://portswigger.net/support
https://portswigger.net/burp/documentation/desktop
官网在线文档有对该工具中所有模块所有参数的详细介绍
一、 Proxy模块
1.1 界面布局
界面解释文档
https://portswigger.net/burp/documentation/contents
1.1.1 菜单栏
(1) 菜单栏 Burp
infiltrator:渗透者,对java程序中做安全扫描,生成jar包
clickbandit:点击劫持,生成一个点击劫持的工具来验证漏洞
collaborator:有些漏洞没有回显,添加一个服务器
(2) 菜单栏 project
(3) 菜单栏 Intruder
(4) 菜单栏 Repeater
(5) 菜单栏 Window
首页每一个窗口都可以独立占整屏
(6) 菜单栏 Help
本地文档
1.1.2 模块栏
(1) 模块栏 Dashboard(仪表盘)
任务(漏洞扫描和爬行任务)
(2) 模块栏 Target(目标)
scope定义一个扫描的规则
(3) 模块栏 Proxy(代理)
拦截浏览器的HTTP数据包(包括请求和响应),相当于中间商
首页介绍
(4) 模块栏 Intruder(入侵)
对拦截到的请求(地址),设置攻击载荷 (payload),利用字典进行渗透测试
比如:目录扫描、密码暴力破解、压力测试、FUZZ等 等
(5) 模块栏 Repeater(重放)
1、分析每一步具体的请求和响应内容
2、修改请求和响应内容
3、重发请求内容
(6) 模块栏 Sequencer(序列器)
用来评估Token、Session等关键字段 是否可以伪造(是否固定、是否可预测)
(7) 模块栏 Decoder(解码)
对请求数据进行编码、解码
(8) 模块栏 Comparer(比较器)
对两次结果进行比较
(9) 模块栏 Logger(日志)
(10)模块栏 Extender(插件)
1.2 Proxy模块
1.2.1 浏览器代理设置
网络代理
一台计算机和其他计算机通信不方便
作用:突破IP限制、隐藏IP、加速访问
如何将浏览器发送的数据转移到BP上代理发送,需要设置
1.2.1.1 电脑设置
开启电脑中的代理(不推荐,影响速度)
1.2.1.2 浏览器设置
打开浏览器,设置,搜索代理
1.2.1.3 浏览器插件
(1)火狐浏览器
在浏览器附件组件中搜索“foxy proxy”,点击安装
安装成功后,出现代理
添加代理,点击选项,标题输入burp proxy,代理类型HTTP,代理IP和BP一致,127.0.0.1,端口和BP匹配8080,用户名和密码忽略
这样就得到一个BP的代理
(2)谷歌浏览器
搜索
crxdl.com
在插件搜索中搜
proxy
下载其中一个,然后在谷歌浏览器打开地址
chrome://extensions
将下载到的安装包,修改.crx文件为.zip,直接拖进去即可
如果上面这种方式报错,需要在这个页面打开开发者模式
chrome://extensions
选择加载已解压的扩展程序
选择主文件夹,即可
1.2.2 BP代理设置
最简单的设置
option中默认监听端口
开启拦截
开启后BP就在一直监听中,此时需要打开浏览器的BP代理
初始监听
1.2.2.1 forward放行
以下是具体的含义
目前在火狐浏览器,输入百度网址,打开百度
baidu.com
浏览器会转圈,打不开网址
点击放行后
可以正常打开网址
1.2.2.2 drop丢弃
丢弃后,浏览器显示
1.2.2.3 Intercept主界面
1.2.2.4 Options选项
监听端口
对客户端发给服务端请求的数据进行处理
拦截服务器相应
对请求和相应做别的自动化替换
TLS穿透(不经过BP)
1.2.3 BP拦截HTTPS数据
网站证书:
1.操作系统安装根证书,里面有CA的公钥
2.CA颁发的证书,包含机构的公钥,并且用CA的公钥对机构公钥摘要加签
3.浏览器利用CA的公钥对摘要进行验签,确定机构公钥合法
4.浏览器用机构的公钥与服务器协商会话密钥
5.浏览器与服务器用会话密钥通信
HTTPS
当BP没有安装证书的时候,浏览器会弹出安全警告
1.2.3.1 下载BP证书方法一
在浏览器和BP开启后,浏览器中输入
http://burp/
1.2.3.2 下载BP证书方法二
在BP中,Proxy,Options
选择导出
导出DER格式
下载好后,将证书导入浏览器
在浏览器设置中,输入“证书”,
在颁发机构中导入
并且信任
1.2.4 BP拦截手机APP数据
如果要对手机 App 或者 App 的服务器进行渗透,首先需要 抓到 App
(1)开启电脑 Burp 监听
首先电脑需要连接到 WiFi,不能使用有线网络,这样才能让 手机和电脑处于同一网络环境(如果台式机的有线和手机 WiFi 是同一个网络环境也可以)。
电脑打开 cmd,输入 ipconfig -all,查看 WLAN 的 IPv4 地 址:
比如当前 IP 是 192.168.10.142,记住它,等下要用到。 启动 Burp,打开 Proxy——Options——Add
在打开的添加窗口中,端口依然填写 8080,绑定地址选择 刚才看到的那个 IP 地址,如图:
点 OK 确定。 这时候监听器要勾选新建的这个而不是默认的:
(2)配置手机 WiFi 代理
首先将手机连接到与电脑相同的 WiFi 中。 从手机的“设置”,进入 WLAN 设置
长按当前连接的 WiFi 名字,点击弹出的“修改网络”。
在打开的窗口中,勾选“显示高级选项”
开启代理:点击代理开关,在弹出的窗口中选择“手动”。
开启代理开关之后,需要配置代理:
代理已经配置完了。接下来手机上所有的网络请求都会发送 到 Burp 上。
需要注意:并不是你在操作 App 的时候才会有网络请求。 手机上的 App 无时无刻都在访问网络,所以会抓到很多无关的 包。
建议在手动操作之前才打开 Burp 的拦截开关,这样可以准 确地抓到包。
在 Proxy——Intercept 打开拦截开关:
比如:手机浏览器打开百度搜索,通信包被电脑上的 Burp 抓到:
至此,抓包的设置就完毕了
(3)手机安装证书
对于 HTTPS 的网站,客户端需要用服务器的密钥加密消息 以后发出。
当配置了代理,客户端(浏览器)向 burp 请求证书,但是 burp 没有证书,浏览器就会提示不安全。或者,使用了服务器的 证书加密,burp 抓到的是加密以后的消息,是无法查看和修改的。
所以完整的流程是这样的:
客户端先用 burp 的密钥加密消息。burp 解密称明文以后, 再用服务器的密钥加密消息。
所以这里要在手机上安装 burp 的证书。
选择第一个,DER 格式证书,点 Next
选择保存的 CA 路径(比如 D 盘),文件后缀命名为.cer, 非常重要,因为手机只能安装.cer 的证书类型,默认的 der 格式 是不能被识别安装的。点击保存,然后 Next
导出完毕,关闭窗口:
把文件发送到手机,比如用微信的“文件传输助手”。在手 机上“用其他应用打开”。
选择“证书安装器”打开,仅一次
写入证书名称,选择 WLAN,确定,安装成功。
在设置里面搜索“证书”,用户凭据,查看证书:
可以看到已经安装的证书
(4)取消burp抓包
如果不需要抓手机的包了,需要正常访问,取消代理即可。 长按 WiFi 名字进入设置——显示高级选项——代理,设置 为“无”,保存,即可
二、 Target模块
2.1 Target模块的作用
记录所有经过BP的流量
1、HTTP History按时间顺序记录
2、Target按主机或者域名分类记录
请求淘宝后,target按站点进行规划记录
作用
1、把握网站的整体情况
2、对一次工作的域进行分析
3、分析网站存在的攻击面
攻击面:
对一个软件系统可以采取的攻击方法集合,一个软件的攻击面越大,安全风险就越大
攻击面包括:字段、协议、接口、服务、硬件的攻击点
2.2 Target设置目标作用域
目的:记录什么流量,不记录什么流量
2.2.1 判断同一个域
协议、域名和端口必须都相同才算一个域
目录、文件、参数可以不同
就像如下的表格中,除了第一行两个域名是同域,其余都不是同一个域
第二行协议不同
第三行主域名不同
第四行子域名不同
第五行端口不同
域1 | 域2 |
---|---|
http://www.baidu.com/ | http://www.baidu.com/admin?a=1 |
http://www.baidu.com/ | https://www.baidu.com/ |
http://www.baidu.com/ | http://www.baidu.cn/ |
http://www.baidu.com/ | http://blog.baidu.com/ |
http://www.baidu.com:80/ | http://www.baidu.com:7298 |
2.2.2 限定域的范围
只拦截站点,不拦截站点中内容
白名单:只有这些我才拦截
黑名单:只要是这些就不拦截
例如
只拦截 https://www.baidu.com/
不拦截 https://www.baidu.com/blog
黑名单路经一般是白名单的子路径
2.2.3 使用场景
1、限定Sitemap和HTTP history记录哪些域的内容
2、限定Spider抓取哪些域的内容
3、限定Scanner扫描哪些域的安全漏洞
高级的黑白名单规则设置
可以加正则表达式
2.3 站点地图Sitemap
目的:记录的结果保存
2.3.1 站点地图记录类型
1、自动(爬行)
全面但耗费时间
2、手动(浏览器访问)
只记录一次的站点地图
要求设置好BP和浏览器的代理,并且在访问前关掉拦截
先删掉HTTP history和Target站点地图
在拦截,会出现所有的站点地图
2.3.2 默认拦截
默认拦截一些文件
2.3.3 界面
2.4 Target结果操作
直接右键就可以操作
2.4.1 Add to scope
意味着该域名,有一条白名单生成,除了该路经之外所有内容都不会记录到站点地图
2.4.2 Send to模块
发送到对应模块
2.4.3 Request in browser
在浏览器中打开
2.4.4 Engagement tools
交互工具
(1)search
查精确内容
查找img标签
(2)Find comments
查找注释
(3) Find script
查找域下的脚本
(4)Find Reference
查看网站来源
网页中很多超链接,想要知道从哪跳转来的,需要reference
作用:
告诉服务器当前请求是从哪个页面链接过来的
应用场景:
1、来源统计
2、防盗链
(5)Analyze target
攻击面分析
显示动态链接、静态链接、参数有多少个
(6)Discover content
针对域发现内容
利用内置的字典做一个目录扫描,确定某些文件或文件夹是否存在
(7)Schedule task
定时任务
暂停任务会影响很多任务
(8)Manual testing
手动测试模拟器
2.4.5 Compare site maps
对HTTP的两个响应结果作比较
比如使用不同账号,不同参数登录
三、 扫描模块
3.1 漏洞扫描概要
漏洞扫描工具
AWVS、Appscan、Nessus、Openvas、Goby、 Xray、ZAP
3.1.1 两大功能(Crwal&Audit)
两个功能,爬行和审计
主动扫描和被动扫描
3.1.2 三种过滤状态
3.1.3 主动扫描
主动扫描影响范围大,不推荐
主动扫描:
1、方式:爬取所有链接,检测漏洞
2、特点:发送大量请求
3、使用场合:开发、测试环境
4、针对漏洞:
客户端的漏洞,如XSS 、HTTP头注入、操作重定向。
服务端的漏洞,如SQL注入、命令行注入、文件遍历。
3.1.4 被动扫描
被动扫描:
1、方式:只检测经过BP代理服务器的地址,不爬取
2、特点:发送有限请求
3、使用场合:生产环境
4、针对漏洞:
(1)提交的密码为未加密的明文。
(2)不安全的cookie的属性,例如缺少HttpOnly和安全标志。
(3)cookie的范围缺失。
(4)跨域脚本包含和站点引用泄露。
(5)表单值自动填充,尤其是密码。
(6)SSL保护的内容缓存。
(7)目录列表。
(8)提交密码后应答延迟。
(9)session令牌的不安全传输。
(10)敏感信息泄露,例如内部IP地址、电子邮件地址、堆枝跟踪等信息泄露。
(11)不安全的ViewState 的配置。
(12)错误或不规范的Content-Type指令
3.2 Scan功能
选择New scan,在扫描地址中选择自己搭建的网站,pupstudy
3.2.1 扫描信息
3.2.2 详细配置
3.2.2.1 爬行配置
(1)爬行操作设置
(2)爬行限制
(3)爬行错误处理
3.2.2.2 审计配置
(1)审计操作设置
(2)扫描结果漏洞报告
(3)扫描错误处理
(4)插入点类型
3.2.3 登录设置
如果扫描的地址需要登录(后端页面),需要给出账号和密码
3.2.4 Crawl爬行实例
设置好以后现在已经开始爬行
设置中选择crawl
选择View details查看详细内容
已经爬到了6个地址
在logger中记录了所有爬取到的地址
3.2.5 被动爬行实例
选择被动爬行
选择第一个,爬行和审计
先创建一个爬行配置
把这几个项目都点开,然后保存
然后再新建一个审计配置
显示正在爬行,必须在爬行结束才会进行审计,审计之前不会报出漏洞
3.3 Live Scan功能
选择被动扫描
3.4 生成扫描报告
在任务结束后,BP的报告可以导出(必须在结束后)
四、Repeater模块
4.1 Repeater作用
1、发起HTTP请求,分析响应
2、重放请求
4.2 使用方法
新建窗口,
通过发送到该模块,点send,内容可修改
五、Intruder模块
翻译:入侵者
最多用于密码爆破
5.1 模块作用&原理
原理
请求参数进行修改,分析响应内容,获得特征数据
本质:
1、自动化发起HTTP请求
2、基于现成字典或者生成字典
用途
1、猜测用户名、密码等
2、寻找参数、目录等
3、枚举商品ID、验证码等
4、模糊测试(FUZZ)
可替代工具:
wfuzz(全部功能)、dirb(目录扫描)、hydra(暴
破)……
5.2 密码暴破实战&绕过验证码
链接如下