HSTS绕过思路解析:解决这个问题的思路来自HSTS的不足

日期: 栏目:文章分享 浏览:1429 评论:0

HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。

1、作用

HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。

另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,用户将不再允许忽略警告。

2、不足

用户首次访问某网站是不受HSTS保护的。这是因为首次访问时,浏览器还未收到HSTS,所以仍有可能通过明文HTTP来访问。解决这个不足目前有两种方案,一是浏览器预置HSTS域名列表, 、、 和实现了这一方案。二是将HSTS信息加入到域名系统记录中。但这需要保证DNS的安全性,也就是需要部署域名系统安全扩展。截至2014年这一方案没有大规模部署。

由于HSTS会在一定时间后失效(有效期由max-age指定),所以浏览器是否强制HSTS策略取决于当前系统时间。部分操作系统经常通过网络时间协议更新系统时间,如每次连接网络时配置burpsuit谷歌浏览器证书及HSTS问题处理,OS X Lion每隔9分钟会自动连接时间服务器。攻击者可以通过伪造NTP信息,设置错误时间来绕过HSTS。解决方法是认证NTP信息,或者禁止NTP大幅度增减时间。比如 8每7天更新一次时间,并且要求每次NTP设置的时间与当前时间不得超过15小时。

3、浏览器支持

和从4.0.211.0版本开始支持HSTS

及以上版本

及以上版本

从OS X 起

从 10技术预览版开始支持,之后微软又向IE11用户推送了支持HSTS的更新。

三、绕过思路解析:

解决这个问题的思路就是来自HSTS的不足,在上文中我已经用红色的字体凸显出来。由于HSTS 是服务器强制客户端使用HTTS,且要求浏览器与其直接相连。

在客户端的事情肯定比在服务器上的事情好解决。

又因为HSTS的规则是用户首次访问某网站的时候是不受HSTS保护的,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用用户对该网站使用HTTPS配置burpsuit谷歌浏览器证书及HSTS问题处理,所以想到这儿这事儿就好办了。

我们若之前用该浏览器访问过该网站,我们可以清除浏览器的HSTS记录,然后再一次访问网站的时候通过Burp代理访问,之后抓该域名下的数据包即可绕过限制。

四、解决方法:

以为例

地址栏输入:://net-/#hsts

之后可以在Query HSTS选项中 查看 该域名是否被删除

然后熟悉的界面就出现了

成功绕过了HSTS限制,抓到了百度的HSTS包

测试

网络上对于清除HSTS的设置 是用如下方法

关闭所有已打开的页面

清空历史记录和缓存

地址栏输入about:

搜索项目域名,并点击 About This Site

但是我测试后,发现无效,也许是我的版本问题。

我的版本是

对于绕过的限制我使用的方法是删除 的tate.txt文件

这个文件的路径是

%%\\\\.\tate.txt

开始寻找

打开%%\\\\

然后打开.

找到

tate.txt

点击删除(删除之前关闭,浏览器重启会重新生成该文件)

然后重启浏览器(注意,不要让默认首页为你要 删除的HSTS站点,否则 以上的一切操作就废了)

然后设置代理,抓包!ok!

以下是其他种类的浏览器 清除HSTS 的方法(来自互联网)

我只测试过和 ,其他浏览器请自行测试

浏览器

完全关闭

删除~///HSTS.plist这个文件

重新打开 即可

极少数情况下,需要重启系统

浏览器

地址栏中输入://net-/#hsts

在 中输入项目的域名,并删除

可以在Query 测试是否删除成功

Opera 浏览器

和 方法一样

有什么写的不对的地方,请各位大佬留言指正,若还有什么奇思妙想,也请大佬与我留言交流,不胜受恩感激。初来乍到写文章,写的不好的地方请海涵。

By:画船听雨眠

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看