文章

Burp Suite Proxy模块

Burp Suite Proxy模块

Proxy 基础

Burp Suite 中的 Proxy 模块是其中一个最常用和最强大的模块之一。它允许用户拦截、查看和修改 Web 应用程序的 HTTP 和 HTTPS 流量,使用户能够识别和利用各种不同类型的漏洞。Proxy 模块又分为四部分,分别是 Intercept (拦截)HTTP historyWebSockets historyOption (选项)

界面介绍

Intercept

InterceptProxy 模块的核心功能之一,它允许用户拦截应用程序的 HTTPHTTPS 请求,查看和修改请求,然后转发到目标服务器。使用 Intercept,用户可以深入分析应用程序的请求和响应,并查找潜在的漏洞。Intercept 还可以帮助用户快速验证漏洞的利用。

首先我们要进行成功抓包,必须要将浏览器的流量包转移到 burpsuit 上,burpsuit 在进行发包。

  • Burpsuit 默认监听本地 8080 端口,我们只需要把浏览器的流量转发到 8080 端口,Burpsuit 即可收到,进行相应的操作。
  • 我们一般在浏览器上安装 Proxy SwitchyOmega,进行快速代理,不要慢慢去打开浏览器的设置去配置。
![600](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian202408270150133.png)
  • Open Browser 打开一个网站

使用 Buprsuit 进行抓包:如下

Action: |500

Inspector: http 请求被拦截下时,右边有个 Inspector 的区域。一共有 Request Attributes, Request Query Parameters, Request Body Parameters, Request Cookies, Request Headers 五个部分,可以展开查看每个部分的内容,也可以手动更改内容值。例如 Request Attributes 中可以选择使用 HTTP/1 或 HTTP/2 协议,或者更改 HTTP Method 等。其他部分也可以直接对参数值进行修改,修改后直接 Apply changes,应用成功后的修改会变成橙色的,然后点击 Forward 观察页面变化。

![300](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian202408280020192.png)

Http history

WebSockets history

Options

Proxy listeners 代理监听

拦截的代理设置,proxy 就是拦截当前设置的 IP 与 port

Windows 安装证书

如果没有安装 CA 证书就拦截 https 协议的网址,就会出现下面的情况:

![500](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian202408272308897.png)
  • Chrome 浏览器,请先安装插件 Proxy SwitchyOmega 并设置好代理
![500](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian202408272339715.png)
  • 选择 BurpSuite 代理,然后访问 http://burp 下载证书
![500](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian202408272339469.png)

和在 Proxy Settings 导出的证书是一样的:

![700](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian202408272340399.png)
  • 双击 cacert.der,然后安装证书;选择本地计算机,然后将证书存储在受信任的证书颁发机构

  • 在浏览器的证书管理器中确认是否安装到位,就可以愉快的进行测试了。

  • 如果未生效,重启浏览器

Mac OS 安装证书

  1. 设置好 Burp 代理并开启代理。
  2. 访问 http://burp/cert 下载证书。
  3. 双击导入钥匙串访问,或者打开钥匙串导入项目。
  4. 找到导入的证书,然后开启始终信任。
![600](https://raw.githubusercontent.com/hacket/ObsidianOSS/master/obsidian/20240828100538.png)

Android 安装证书

iPhone 安装证书

  1. 在 iphone 上访问 http://x.x.x.x:8080 点击右上角的 CA Certificate 并允许
  2. 打开设置 — 通用 — 描述文件与设备管理 — 安装描述文件
  3. 打开设置 — 通用 — 关于本机 — 信任证书设置 (拉倒最底下)— 开启信任

Request interception rules 请求拦截规则

添加请求拦截规则设置:可以设置不拦截某些条件,例如不拦截请求地址后缀为 jpg 等,proxy 会自动放行此数据包

设置:只拦截 post 请求

Response interception rules 响应拦截规则

如果需要拦截 response 并修改 response 中的返回值怎么做?

  • 第一步仍然是进入 Proxy-Options-Intercept Server Response 设置 response 拦截的选项:

  • 勾选 Intercept response based on the following rules
  • 添加了一条 rule:当 request 被拦截的时候,也拦截 response

  • 然后效果如下,你可以修改 request/response 中的值并 Forward
  • 拦截 request
  • 拦截 response

WebSockets interception rules

针对 WebSocket 的,用的不是太多。

Response modification rules

用的不是太多。

HTTP match and replace rules

自动将请求包的指定内容替换成某些内容

Proxy 模块的其他内容不常用,不做介绍。

Proxy 实战

拦截并修改 request 和 response

  • Proxy Settings 配置拦截规则

  • 拦截成功后如下,你可以在 Intercept 选项卡页直接编辑请求的参数/headers 等等然后再转发(Forward)报文

修改 request method,GET 为 POST

  • 首先进入 Proxy Settings → Request interception rules 设置 request 拦截的规则:

  • 如果不勾选 Intercept requests based on the following rules,无法拦截到任何 http request
  • 可以添加多条规则,规则之间可以是 与/或 的关系,添加并勾选规则后,只有满足这些规则组合的 http request 才会被拦截
  • 拦截成功后如下,你可以在 Intercept 选项卡页直接编辑请求的参数/headers 等等然后再转发(Forward)报文
  • Open Browser 打开 https://www.baidu.com
  • 点击 ActionChange request method

  • 会自动将 GET 修改成 POST

抓 web

抓 App

问题

Proxy 证书问题

本文由作者按照 CC BY 4.0 进行授权