昨天面试,技术官问到了我如何使用BurpSuite抓取https网站的数据包,一时间没能回答上来(尴尬!)。因为以前https网站的数据包我都是用Fiddler抓取的,Fiddlert自动帮我们配置好了证书,所以就没用BurpSuite抓取过,今天特意去学习了下如何使用BurpSuite抓取https网站的数据包。
关于HTTPS协议中证书的认证过程,传送门——>HTTPS协议工作原理(SSL数字证书)
BurpSuite之所以不能抓取https数据包,是因为BurpSuite作为中间人代理,我们和https网站之间的数据通信都是由BurpSuite来代理的,而https通信是需要SSL证书的,BurpSuite的证书我们浏览器默认是不信任的。所以要想实现BurpSuite抓取https的数据包,最关键的是让浏览器信任BurpSuite的证书。
下面我以Firefox浏览器为例,演示如何让Firefox信任BurpSuite的证书。
首先,打开BurpSuite,配置好代理。如果不知道怎么用BrupSuite的,移步——> Burpsuite工具的使用
然后访问 http://burp/ ,下载BurpSuite的证书
下载到桌面后,得到的是一个 cacert.der 的文件,而并不是我们常见的 .cer 格式的证书,这是因为证书的编码方式不一样导致的,但是这并不影响我们后续的导入证书
然后我们在Firefox中打开设置——>选项——>高级——>证书——>查看证书——>证书机构——>导入,选择我们刚刚下载到桌面的证书,点击打开
然后勾选信任由此证书颁发机构标识的网站,点击确定。
我们的BurpSuite的证书就导入进Firefox的可信任证书里面了。
当我们访问https的网站,比如百度的时候,可以发现,BurpSuite已经能抓取数据包了。
对于其他的浏览器,比如chrome,QQ浏览器等,步骤都一样,只是最后导入证书是导入进受信任的根证书颁发机构。