集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

在HTTPS安全页面中加载HTTP不安全的内容,如何绕过安全警告?

发布时间: 2017-06-16 14:10:04

        

毫无疑问,如今互联网正在一步一步向HTTPS安全迈进。大多数大公司都会将证书应用到他们的网站上以获得安全保护。这时你可能就有疑问了,这能保证安全到何种程度呢?除了可以抵御中间人攻击、网络嗅探/篡改等攻击,HTTPS 协议是否可以避免终端用户受到来自其他方面的攻击呢?答案是肯定的。众所周知,攻击者使用各种渠道来传播他们的恶意payload,恶意广告便是其中之一。他们购买廉价的广告空间来展示一些广告内容,但实际上,在这些banner之下总是能够看到经过混淆的恶意代码。同时小编还了解到了这些攻击者是如何判定用户为潜在受害者或是安全研究人员,如果键盘背后的人是一个毫无经验的用户,那么攻击者会提供完整的恶意payload,否则他们就会伪装成合法的广告。

混合内容警告

攻击者们最近应该有些头疼,因为他们的欺骗工作现在只在不安全的页面才生效了,而浏览器默认情况下不会在安全的网站展示不安全的内容。也就是说,如果攻击者需要被迫通过HTTPS加载代码,他们的很多欺骗行为会失效。设想一下现下浏览器拒绝从安全的域(HTTPS)加载不安全的内容 (HTTP)。这也就是所谓的“混合内容”。我们打开一个HTTPS网页的时候,浏览器不会加载不安全的内容。针对这些内容,IE浏览器将向用户发出“显示所有内容”的选项。

重新加载主页并显示所有混合内容

Edge浏览器则会阻止这部分内容,除非用户使用控制台窗口(开发者工具)查看,否则不会显示警告。另一方面,如果iframe的来源是不安全的,则会显示混乱的错误信息而不是HTTP内容。

如果iframe的来源是不安全的,则会显示混乱的错误信息而不是HTTP内容

允许加载图片

但其实也有例外,所有浏览器都允许无限制加载并渲染不安全的图片。如果攻击者已经在网络中进行嗅探,他们可以在远端查看以及替换图片。不过实际上,这并不代表着会对用户构成真正的威胁。早在2011年Eric Lawrence就写了一篇解释IE团队允许不提示警告的情况下加载不安全图像的详细文章。许多网站使用HTTP协议从外部加载图片,更糟糕的是它们在资源中硬编码了指向本地图片的HTTP协议,但内容本身是安全的。所以,它们决定允许image标签加载没有警告的渲染器,当加载不安全的内容,地址栏右边的提示小锁会消失。例如下图为地址栏在IE上加载不安全图片前后的变化图。注意主地址栏的安全协议没有改变。

地址栏在IE上加载不安全图片前后的变化图

同样的事情我们在Microsoft Edge上进行尝试,但锁的图标在左边。如果你想体验这个过程,可以戳这里。有趣的是,两个浏览器都认为伪协议是不安全的,所以就无法加载这些东西了:

  1. These iframes won't render anything if the main page is secure/https 
  2.  
  3. <iframe src="http://">   
  4. <iframe src="res://">   
  5. <iframe src="file://">   
  6. <iframe src="mhtml://">   
  7. <iframe src="mhtml:res://"> 

伪协议行为

你可能会想HTTPS与这些奇怪的mhtml:和res:协议有什么联系?这些奇怪的协议被攻击者用来加载硬盘中的文件以及用于检测本地文件的存在。如果主页是安全的,攻击者就遇到了一个大问题,IE会拒绝解析这些协议,也就避免了运行那些欺骗脚本!安全页面不仅帮助我们免受中间人攻击,而且还可以用来阻止执行攻击者的很多欺骗脚本。请谨记,当攻击者想要在她的文件系统中检查用户是否存在特定文件,他们更倾向于滥用mhtml/res/file协议技术。在这里只需明白一点,当下浏览器默认不允许“混合内容”,而且许多欺骗行为在HTTPS下是失效的。

强制加载内容

这样我们就解释清楚了攻击者的意图,所以就需要跟上脚步,尝试绕过这些警告。通过上面的内容,我们知道了在没有用户交互的情况下渲染内容的规则有一个例外情况(image 标签),于是我尝试加载以IFRAME作为源的图片,但并没有成功。之后使用EMBED和OBJECT 元素也没真正成功。最后,我试着用常规IFRAME,但是使用服务器重定向来代替直接使用不安全的URL设置其location属性。似乎能正常运行,内容最终成功加载。

								
  1. Main page should be secure/https 
  2.  
  3. The iframe below renders an insecure (http) bing.com 
  4. <iframe src="https://www.cracking.com.ar/redir/redir.php?URL=http://www.bing.com"> 

这个发现的确非常有趣,但是对攻击者而言然并卵。我们已经能够在无用户交互的情况下加载混合内容,由于显示了不安全的内容,浏览器会弹出一个警告(bing.com真的是以http协议加载的),然而攻击者显然不希望会有这样的警示信息告知用户。不安全的bing.com试图渲染另一个不安全的内嵌iframe的时候,就会产生这个问题。换言之,即便是在不安全的上级iframe嵌套下,次级嵌套的iframe也需要是安全的。当然我们也可以使用重定向再次加载,但是这并没什么用,因为攻击者想要加载IE伪协议(mhtml: res: 和 file:)来实现他们的欺骗行为,而IE拒绝服务器重定向至那些协议。所以我们需要有更好的选择。

绕过警告信息

小编偶然找到了解决方案。居然是那么基础的东西:在不安全的iframe中放一个document.write就够了。可能这么简单吗?

													
  1. Main page should be secure/https 
  2.  
  3. The iframe below renders an insecure (http) bing.com 
  4. <iframe src="https://www.cracking.com.ar/redir/redir.php?URL=http://www.bing.com"> 

一旦加载了不安全的内容和document.write,该iframe就可以自由加载不安全的内容而无需重定向。换句话说,这时攻击者可以加载mhtml/res协议,无限制的施展他们的欺骗手段,IE不知道这些内容正在被渲染,每个嵌入的iframe将完美加载。

绕过警告信息

最后值得一提的是,Edge浏览器虽然受到前面所述重定向欺骗的影响,但document.write这招没用。得知攻击者实现他们恶意目的方式如此简单,小编整个人都不好了Orz~~。

上一篇: 网络综合布线容易犯的十个错误

下一篇: 如何选择合适的数据库性能工具?

十五年老品牌
微信咨询:togogoi 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!