使用burpsuite验证https证书是否安全

使用burpsuite验证https证书是否安全

为什么要验证https证书?

  https是安全的传输过程,一旦建立连接便以加密形式通信,正常情况下窃听者无法得到私钥也无法解密数据,这些是由安全证书RSA本身特性保证的。然而如果在https建立过程中,未对证书做校验,攻击者可以伪造证书骗取密钥以解密之后的数据流

环境配置

  • 导出证书

我测试的是iphone端,首先安装证书,先把证书导出

Proxy -> Options -> Proxy Listeners -> import / export CA certificate 出现CA Certificate对话框
Export -> Certificate in DER format -> Next -> 保存为 tmp.cer -> Next ....
  • 手机端下载证书

  h在本地建立简单的Http服务器,吧tmp.cer放到其中,用iphone登录自己的网站下载cer,会自动识别为证书,安装即可(在这里记得把以前重复安装的证书删掉,否则不生效,笔者在这里栽了好久)

  • 手机端设置代理

  h设置iphone的代理,细节不赘述(主机建立热点保证和手机在同一个wifi,设置代理ip=???? port=8080)

  • 设置burp代理服务器
Proxy -> Options -> Proxy Listeners ,listener里面默认有一项127.0.0.1:8080,选择Edit,Bind to address从Lookback only修改为All interfaces

设置假证书

  设置前面listener的Certificate,让然在Edit proxy listener页面,Certificate选项卡有三项,设置以后立即生效:

  • Use a self-signed certificate 使用自签名证书,用于检测伪造证书为自签名情况
  • Generate CA-signed per-host certificates 使用目标域名CA签名的证书,这是正常情况,代理工具会为每个域名生成证书
  • Generate a CA-signed certificate with a specific hostname使用指定域名CA签名的证书,用于检测伪造host签名情况
  • Use a custom certificate(PKCS#12) 使用用户自定义证书,用于检测其他伪造证书情况,如假日期

测试

  现在尝试对https://www.baidu.com做一次校验,选择指定域名CA签名这种情况,设置为*.qq.com。正常情况下,www.baidu.com匹配才能通过,如果*.qq.com被通过了,说明存在https未验证host漏洞。结果为无法连接,说明浏览器做了校验域名