Open san3Xian opened 5 years ago
浏览器发起访问请求,客户端和服务端同时抓取报文分析 可以发现
其实客户端与服务器握手成功
客户端浏览器报错信息为connection reset
服务器抓取报文分析,在接收到客户端的client hello后,服务器进行了ack应答,接着服务器收到了一个来自[假]客户端的连接reset报文
然而实际上,客户端在此期间从未发送过reset报文,同理,客户端收到了reset报文,所以浏览器报连接reset错误,但是服务器并没有发送过reset报文(server发送的最后一个ack报文被处理掉了)
在这个实验中可以发现,某厂商的中间设备在对https流量分析了ssl挥手阶段中的client hello报文中的server name字段值(ssl.handshake.extensions_server_name)[Server Name Indication, 缩写SNI],进而伪造reset报文进行服务器和客户端的连接重置(T_T) okay, 事件发生点找到了,那该怎么解决呢? (咕咕咕)
文章未完待续
一个有意思的repo https://github.com/macronut/phantomsocks Related Articles:
实验环境
现象
服务器为172.16.0.3/111.230.xxx.xxx
客户端为219.128.xxx.xxx/192.168.xxx.xxx
浏览器发起访问请求,客户端和服务端同时抓取报文分析 可以发现
其实客户端与服务器握手成功
客户端浏览器报错信息为connection reset
服务器抓取报文分析,在接收到客户端的client hello后,服务器进行了ack应答,接着服务器收到了一个来自[假]客户端的连接reset报文
然而实际上,客户端在此期间从未发送过reset报文,同理,客户端收到了reset报文,所以浏览器报连接reset错误,但是服务器并没有发送过reset报文(server发送的最后一个ack报文被处理掉了)
唠叨1
在这个实验中可以发现,某厂商的中间设备在对https流量分析了ssl挥手阶段中的client hello报文中的server name字段值(ssl.handshake.extensions_server_name)[Server Name Indication, 缩写SNI],进而伪造reset报文进行服务器和客户端的连接重置(T_T) okay, 事件发生点找到了,那该怎么解决呢? (咕咕咕)
唠叨2
文章未完待续