常用测试工具使用

Burpsuite Professional

抓包功能

主要使用代理→拦截功能。在选项中配置代理的IP与端口也就是工具在本机开启一个端口接收转发请求。
浏览器中配置代理服务器比如127.0.0.1 8080,HTTPS证书使用自签名证书即可。通过访问浏览器直接访问http://127.0.0.1:8080/查看是否已经开启代理
通过拦截请求、拦截禁用、放包等操作进行测试。HTTP历史记录TAB页可以查看请求的发送与返回数据包内容。
截断→行动→相关工具→CSRF Poc生成,可以修改数据包进行重新发送,还可以行动→发送给重发器等,行动→执行拦截→此请求的响应:拦截当前请求的响应

Fiddler HTTP抓包工具

可以抓HTTPS包。为什么可以抓HTTPS? 原理相当于代理(或者中间人),通过中间人模拟客户端与服务端进行通信,当然电脑要安装信任Fiddler提供的证书。所以证书、网络上的软件不能随便安装,避免软件带什么后门。

MITM Server要成为真正的Server,必须能够给指定域名签发公钥证书,且公钥证书能够通过系统的安全校验。比如Client发送了一条https://www.baidu.com/的网络请求,MITM Server要伪装成百度的Server,必须持有www.baidu.com域名的公钥证书并发给Client,同时还要有与公钥相匹配的私钥。
MITM Server的处理方式是从第一个SSL/TLS握手包Client Hello中提取出域名www.baidu.com,利用应用内置的CA证书创建www.baidu.com域名的公钥证书和私钥。创建的公钥证书在SSL/TLS握手的过程中发给Client,Client收到公钥证书后会由系统会对此证书进行校验,判断是否是百度公司持有的证书,但很明显这个证书是抓包工具伪造的。为了能够让系统校验公钥证书时认为证书是真实有效的,我们需要将抓包应用内置的CA证书手动安装到系统中,作为真正的证书发行商(CA),即洗白。这就是为什么,HTTPS抓包一定要先安装CA证书。
第二个问题,MITM Client伪装成Client。由于服务器并不会校验Client(绝大部分情况),所以这个问题一般不会存在。比如Server一般不会关心Client到底是Chrome浏览器还是IE浏览器,是Android App还是iOS App。当然,Server也是可以校验Client的。

客户端要做相应的安全校验

POSTMAN

HTTPS

File→Setting→SSL certificate verification 设置成OFF