前段时间装好了burpsuite之后,一直只能拦截http请求,一到https呢,就是这样的效果:
“连接 https网址 时发生错误。 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥。 (错误码: ssl_error_weak_server_ephemeral_dh_key)”先来思考为什么burpsuite导入证书之后可以抓https包,以百度为例:https://www.baidu.com
首先了解点密码学。对称密钥加密速度大于非对称,所以https用对称密钥通信。baidu的证书可以简化看作是公钥,私钥在baidu服务端。
其次要了解https原理。http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 简单的说
1.客户端向服务端索要公钥
2.双方协商生成对称密钥
3.双方使用对称密钥通信
那么burp就是想要拿到这个对称密钥。设置代理之后,浏览器先会使用burp的证书来发送请求(所以要导入证书到受信任的根证书)
burp作为中间人拥有burp的证书对应的私钥,于是burp拿到对称密钥。然后burp从浏览器中拿到baidu的证书,把刚刚拿到的对称密钥用这个证书来加密发给服务端,服务端对于浏览器做的事情毫无感知。同样把信息用对称密钥加密回传到客户端。于是burp成功实现中间人攻击,最后解密出明文。
/*想起之前网易二面,那人问我burpsuite导入证书是网站的证书还是burp的证书*/
在网上找了可多教程都没能解决问题。
比如这个
1.安装plug-n-hack插件,如
http://blog.csdn.net/qq_27446553/article/details/51212933
但是我死活装不上里面所说的plug-n-hack插件
怀疑是不是权限的问题:使用了管理员身份来运行
怀疑是不是缓存的问题,关机重启了几次
换种方法:
2.导入服务器根证书
http://www.111cn.net/net/44/77794.htm
还是找不到服务器证书在哪儿导入。
后面想着,还是google吧。
google:burpsuite https
https://support.portswigger.net/customer/portal/articles/1783087-Installing_Installing CA Certificate - FF.html
有解决办法,而且很清楚。
照着做了之后,还是之前那个问题。
然后google:
(错误码: ssl_error_weak_server_ephemeral_dh_key) 找到这个问题解决方法。firefox地址栏:about:config 里,把下面两个值从true改成false security.ssl3.dhe_rsa_aes_128_sha=false security.ssl3.dhe_rsa_aes_256_sha=false
完了之后尝试:可以抓https://baidu.com的包了
这个事儿告诉我,以后解决问题,多google,少百度,多stackoverflow,少zhihu。
多看英文,少看中文。如果还在看中文,说明自己在这一领域还是入门阶段。
------------------------------------------------------------------------------------------------------------------------------------
自己的理解: 要想拦截https请求,需要安装证书,但没有证书,怎么办?burpsuite自己做了一个证书。
所以说想用burp拦截https请求,就要从burpsuite里面导出形如*.der的证书,然后导入到火狐浏览器里,就好啦。