BurpSuite的https代理原理
生活随笔
收集整理的這篇文章主要介紹了
BurpSuite的https代理原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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明文。
總結
以上是生活随笔為你收集整理的BurpSuite的https代理原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夸克缓存视频合并小工具
- 下一篇: Educoder - Java入门 -