有很多工具可以改变数据包中的sni。ssh是使用sni还是HTTP注入器喜欢的软件,改变SNI和浏览互联网。
发布于 2021-07-10 10:38:56
SNI是TLS协议的扩展,它允许客户端在连接握手期间指定虚拟域为消息。
SSH和TLS是不同的协议,SSH不使用SNI。在进行HTTPS请求时更改SNI只需要更改TLS客户端在连接时向目标服务器显示的值,这是默认情况下用于解析TLS服务器IP地址的主机的名称;这可以通过openssl来完成,甚至可以通过手动向/etc/主机添加一个条目,将伪造的主机名指向TLS服务器IP地址,并使用前者连接到后者。在这些情况下,TLS客户端抱怨您使用的服务器证书和主机名(SNI)之间的名称不匹配,但通常可以关闭。
下面是如何在使用openssl的example.com参数连接到http://www.google.com/时使用假SNI -servername
:
openssl s_client -connect www.google.com:443 -servername example.com
下面是如何使用cURL执行完整的HTTPS请求,传递--insecure
选项以停止它对证书名称不匹配的抱怨,以及手动指定Host
头(否则cURL会从传递的URL中获取),使用--connect-to
参数来解析我们的主机:端口装配线对:
curl --connect-to example.com:443:www.google.com:443 --insecure \
-H "Host: www.google.com" https://example.com/
https://stackoverflow.com/questions/67251200
复制相似问题