前言
1.什么是代理
正向代理(图左):如vpn
- 代理会隐藏客户端的真实信息 (IP、端口),以自己的身份代替客户端在互联网上发起请求,并将返回结果转发给客户端。
- 代理可以保护客户端、代理可以帮助客户端访问自己无法到达的网络。
- 客户端需要将特定请求或全部请求主动配置为请求代理服务器。
反向代理(图右):
- 反向代理会隐藏服务端真实信息 (IP、端口),把自己作为服务端暴露在互联网中,通过把请求转发给真实服务器处理拿到结果后再返回,来对外提供服务。
- 反向代理客户有效保护服务端,隔离网络环境,并进行多个真实服务器的负载均衡。
- 服务端需要将自己配置到反向代理中,然后将反向代理暴露在公网。
2.浏览器代理
浏览器代理是一种网络技术,通过代理服务器来访问目标网站,从而隐藏用户的真实IP地址,保护网络安全。代理服务器位于用户和目标网站之间,接收用户的请求并转发给目标网站,并将目标网站的响应返回给用户。代理服务器的地址通常在浏览器设置中进行配置。
一.Burpsuite是什么?
-
BurpSuite是一款集成自动化渗透测试工具,可以协助我们进行Web应用程序的攻击.
-
BurpSuite是由Java编写,运行时依赖Java环境
-
BurpSuite主要拦截
HTTP,HTTPS
协议的流量,通过拦截,以中间人的方式
对客户端的请求,服务端的返回信息,做各种处理,以达到安全测试目的- 使用BurpSuite拦截请求时,·
需要设置浏览器代理(默认127.0.0.1:8080)
- 使用BurpSuite拦截请求时,·
二.Burpsuite常用场景
- 拦截和修改请求 :在Burp Suite中,可以设置一个
代理
,使其拦截
浏览器发送的请求。然后可以查看请求的详细信息,并对其进行修改,
例如修改参数值、添加或删除请求头等。 - 扫描网站漏洞 :Burp Suite提供了
漏洞扫描功
能,可以自动检测网站中的一些常见漏洞,如SQL注入、XSS
等。用户可以根据需要选择要扫描的目标,并自定义扫描策略。 - 会话管理 :Burp Suite可以
跟踪和管理多个会话
。用户可以捕获和分析应用程序的会话,以便更好地理解和利用它们。 - 暴力破解 :Burp Suite提供了暴力破解功能,可以用于
猜解密码或弱口令
。用户可以自定义字典,然后使用Burp Suite进行自动化的猜解。 - 自动化测试 :Burp Suite支持编写
自定义的脚本
,可以用于自动化测试。用户可以根据需要编写脚本,并利用Burp Suite的API来执行一些特定的操作。 - 编辑和重发请求 :Burp Suite可以对
已捕获的请求进行编辑和重发
,以便测试应用程序的不同场景和参数。
三.Burpsuite环境配置及安装
Burpsuite是用Java写的,JDK是提供一个Java的运行环境。
- Burpsuite1.7.x通常选用java8
- Burpsuite2022通常选用java11
1.JDK安装
https://www.oracle.com/java/technologies/downloads/archive/
【Java基础】JDK下载安装及环境配置完整教程
2.Burpsuite安装
-
官网下载
-
选择专业版下载,选择jar版本
下载完成后,在Cmd中启动Burpsuite
但这个需要破解
3.绿色版安装(已破解)
- 链接:https://pan.baidu.com/s/1NxH21uMdTsL90pBT6bgvWQ
- 提取码:8hbi
4.Burp 配置CA证书
-
Burp Suite
默认只能抓取HTTP的包
,如果要抓HTTPS的包的话,需要下载Burp Suite的CA证书
- 只有在想
使用Burp的外部浏览器(通过自己Google浏览器发起请求)
时安装Burp的CA证书才是必需的。如只使用Burp自带嵌入式浏览器进行测试,则不需要安装该证书。
- 只有在想
-
默认情况下,当你通过Burp去访问一个HTTPS的网站时,代理为每个主机生成一个TLS证书,由其自己的证书颁发机构(CA)进行证书签名。此CA证书是第一次运行Burp时生成的,并存储在本地。要在访问HTTPS网站上最有效地使用Burp代理,
您需要在浏览器中安装Burp的CA证书作为可信根证书。
否则,就会出现类似如下图的情况:
1.下载 SwitchyOmega 插件,用于设置浏览器代理
SwitchyOmega Github 项目地址为:https://github.com/FelisCatus/SwitchyOmega/releases
SwitchyOmega 官网下载地址为:https://github.com/FelisCatus/SwitchyOmega/releases
- 注意,新手使用建议下载稳定版本,即版本号后标记为 Latest 的版本。
- 后缀名为 .crx 的文件适用于 Chrome 或基于 Chromium 的浏览器
- 后缀名为 .xpi 的文件适用于 Firefox 或基于 Mozilla 的浏览器
2.安装 SwitchyOmega 插件
- 把下载的 SwitchyOmega_Chromium.crx 文件后缀改成
SwitchyOmega_Chromium.zip
。
- 设置-扩展程序,前面的SwitchyOmega_Chromium.zip包拖拽进来即可
- 设置-扩展程序,前面的SwitchyOmega_Chromium.zip包拖拽进来即可
4.SwitchyOmega添加代理
- SwitchyOmega只是
管理代理的,本身并不提供代理服务
,需要配合代理服务使用。
- 设置协议,代理ip和端口然后保存
- 设置协议,代理ip和端口然后保存
5.浏览器使用代理服务
- 浏览器设置切换到代理服务访问网站
- 如果不想使用代理了,就选直接连接
- 如果不想使用代理了,就选直接连接
6.下载CA证书
- 浏览器访问
http://burp
(只有设置浏览器代理才能访问成功)
-
点击右侧的
CA Certificate
下载
-
通过上面的下载你会得到一个证书
cacert.der
-
5.双击下载下来的证书进行安装,一直下一步直到导入成功
6.选择Google Chrome设置-在证书管理中查看,存在PortSwogger CA
,安装成功!
5.Burp导出CA证书
每个安装的Burp都会生成它自己的CA证书,当建立SSL连接时需要使用到
。可以将该CA证书导入或者导出,以供其它工具或另一个Burp来使用
。
- 点击上图中的"
Import / export CA certificate
"按钮,进入如下图页面:
选择"Certificate in DER format
",然后点击"Next",进入如下图页面,点击"Select file
"按钮选择存储的位置和证书名称
此时,证书已成功导出,如下图所示
导出的CA证书文件,如下图所示:
接着在Google Chrome中将该证书导入
- 选择"
受信任的根证书颁发机构
"
- 一直下一步直到导入成功
四.BurpSuite基本模块
1.基本功能
- Target(目标)------显示目标目录结构的的一个功能
- Proxy(代理)------拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
- Spider(爬虫)------应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
- Scanner(扫描器)------高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
- Intruder(入侵)------一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
- Repeater(中继器)------一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
- Sequencer(会话)------用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
- Decoder(解码器)------进行手动执行或对应用程序数据者智能解码编码的工具。
- Comparer(对比)------通常是通过一些相关的请求和响应得到两项数据的一个可视化的"差异"。
- Extender(扩展)------可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
- Options(设置)------对Burp Suite的一些设置。
2.Proxy模块
- Proxy是BurpSuite的核心模块,通过代理模式,可以让我们拦截,查看,修改所有在客户端与服务端之间传输的数据
1.Proxy组成
2.代理配置
- 在浏览器中设置代理服务器,地址为127.0.0.1,端口为8080这样就完成了基本的设置。
- 打开Burp Suite,点击
Proxy -> Options
,在"Proxy Listeners
"中添加一个代理端口,默认使用8080端口作为代理
- 抓取HTTP请求:在Burp Suite中,点击
Proxy -> Intercept,勾选Intercept is on
,这样就可以开始抓取HTTP请求。当浏览器发起HTTP请求时,这个请求会被Burp Suite捕捉到,并停止
,显示在Intercept窗口中。可以对请求进行修改,转发、丢弃
3.数据拦截与控制
Proxy的拦截功能主要由Intercept选项卡 中的Forward、Drop、Interception is on/off、 Action
、Comment 以及Highlight
构成
-
Forward按钮 ,表示将拦截的数据包或修改后的数据包手动转发至服务端
-
Drop按钮 丢弃当前拦截的数据包,不再forward到服务器端
-
intercept on/off 按钮
- intercept on开启拦截功能 ,所有代理的包必须经过
Forward
放行才可以到真实服务器(即请求必须forward转发,drop丢弃否则浏览器得不到请求会一直等待) - intercept off 不开启拦截 ,请求
不需要经过Forward放行
,但是可以在Http history
里面查看所有经过BurpSuite的数据包
- intercept on开启拦截功能 ,所有代理的包必须经过
-
Action按钮 :可以将数据包发送至
其他功能组件
(Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer)进一步处理- 还可以做一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码
- 也可以改变数据包的拦截设置,
- 如不再拦截此主机的数据包
- 不再拦截此IP地址的数据包
- 不再拦截此种文件类型的数据包
- 不再拦截此目录的数据包
- 也可以指定针对此数据包拦截它的服务器端响应数据包。
-
Comment功能 可对拦截的数据包添加备注,在一次渗透测试中,你通常会遇到一连串的请求,为了便于区分,在某个关键的请求消上,你可以添加备注
4.历史记录History
Burp Proxy的历史记录由HTTP历史和WebSockets历史两个部分组成。
- 记录经过代理服务器访问的所有请求
5.可选项配置Options
该板块主要用于设置代理监听、请求和响应、拦截反应、匹配和替换,ssl等。
客户端请求拦截
- 指拦截客户端发送到服务端请求数据的相关配置选项,界面如下:
-
request based on the following rules`该复选框未选中 ,那么即使Intercept is on也无法截取数据包。
配置请求规则
- Boolean operator:表示当前的规则与其他规则是
与的方式(And)还是或的方式(Or)共存
- Match type:表示匹配类型,此处匹配类型可
以基于域名、IP地址、协议、请求方法、URL、文件类型、参数, cookies, 头部或者内容, 状态码, MIME类型, HTML页 面的title等
- Match relationship:表示此条规则是匹配还是不匹配
- Match condition:输入的关键字(可以设置正则)
服务端响应拦截
- 指拦截服务端响应到客户端的数据的相关配置选项,界面如下:
-
response based on the following rules`该复选框未选中 ,那么即使Intercept is on也无法拦截请求数据包。
正则表达式配置
用来自动替换请求消息和服务器端返回数据中的某些值和文本,支持正则表达式语言。
它可以对请求和返回消息的消息头,消息体、请求参数名、请求参数值、请求的第一行进行匹配和替换。
- 例如,当我们要替换所有返回消息中的邮箱地址为
t0data@burpsuite.com
时,可以参考下图的设置
7.Repeater模块(改包,重放)
我们抓一个包来看看,抓取包之后,右键 Send to Repeater 发送到重发模块,
在 Repeater模块,可以随意修改数据包
。修改完后点击 go
,就可以发包了
。右边就会显示服务器回的包。
4.Intruder模块(爆破)
Burp Intruder爆破主要由四个模块组成:
-
Target 用于配置进行攻击的目标服务器
-
Positions 设置Payloads的插入点以及攻击类型(攻击模式)。
-
Payloads 设置payload,配置字典
-
Options 此选项卡包含了
request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections
。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改