BurpSuite的基本原理是搭配浏览器使用的http代理。对于HTTP协议,与一般的HTTP代理原理相同。对于HTTPS,即使用SSL的安全HTTP协议,BurpSuite需要发起“中间人攻击”以获得HTTP消息明文。具体原理如下。
1. 无BurpSuite的HTTPS交互过程
Client Server
| -----HTTPS(TCP443) Req------> |
| <----- Certificate -----------|
Verify Cert
| <------SSL Negotiation------->|
|<----Security Connection------>|
Client需要获取Server的公钥证书,并利用非对称密码算法协商对称密钥,实现后面http消息的机密性和完整性保护。SSL的设计是能够扛中间人攻击的,所以无法通过传统的中间人攻击实现https代理。
2. 有BurpSuite的HTTPS交互过程
BurpSuite的基本思路是伪装成目标https服务器,让浏览器(client)相信BurpSuite就是目标站点。为了达成目标,BurpSuite必须:(1)生成一对公私钥,并将公钥和目标域名绑定并封装为证书;(2)让浏览器相信此证书,即通过证书验证。所以, BurpSuite需要在操作系统添加一个根证书,这个根证书可以让浏览器信任所有BurpSuite颁发的证书。具体流程如下:
Client BurpSuite Server
|-----https(tcp 443) req------> |
Generate an certificate1 bound
with the target domain
|<------ -certificate1---------->|
|<-------SSL negotiation-------->|
|<-----security connection------>|
| -------https(tcp 443) req------->|
|<-------certificate2------------->|
|<----------SSL connection-------->|
|<-------security connection------>|
之后,BurpSuite拥有了两套对称密钥,一套用于与client交互,另外一套与server交互,而在BurpSuite处可以获得https明文。
1. 无BurpSuite的HTTPS交互过程
Client Server
| -----HTTPS(TCP443) Req------> |
| <----- Certificate -----------|
Verify Cert
| <------SSL Negotiation------->|
|<----Security Connection------>|
Client需要获取Server的公钥证书,并利用非对称密码算法协商对称密钥,实现后面http消息的机密性和完整性保护。SSL的设计是能够扛中间人攻击的,所以无法通过传统的中间人攻击实现https代理。
2. 有BurpSuite的HTTPS交互过程
BurpSuite的基本思路是伪装成目标https服务器,让浏览器(client)相信BurpSuite就是目标站点。为了达成目标,BurpSuite必须:(1)生成一对公私钥,并将公钥和目标域名绑定并封装为证书;(2)让浏览器相信此证书,即通过证书验证。所以, BurpSuite需要在操作系统添加一个根证书,这个根证书可以让浏览器信任所有BurpSuite颁发的证书。具体流程如下:
Client BurpSuite Server
|-----https(tcp 443) req------> |
Generate an certificate1 bound
with the target domain
|<------ -certificate1---------->|
|<-------SSL negotiation-------->|
|<-----security connection------>|
| -------https(tcp 443) req------->|
|<-------certificate2------------->|
|<----------SSL connection-------->|
|<-------security connection------>|
之后,BurpSuite拥有了两套对称密钥,一套用于与client交互,另外一套与server交互,而在BurpSuite处可以获得https明文。