各浏览器处理登陆信息的差异
浏览器
http:// qq.com
@evilsite/
http:// qq.com:
@ evilsite
http://:qq.com
@ evilsite/
http:// :
@ evilsite /
http://qq.com:80
@ evilsite /
IE
不支持
Firefox
提示用户
提示用户
不支持
提示用户
提示用户
Chrome
不显示登陆信息
Safari(mac)
提示用户
Safari(IOS)
AOSP
显示完整登陆信息
为了防止用户识别错域名,许多浏览器都对一级域名部分做了高亮。在没有高亮的浏览器中,用户需要辨认URL中的一级域名。不过在识别的过程中,同样也要注意字形欺骗攻击,例如全角的斜杠‘/’可以出现在密码部分,导致整个URL可能看起来像http://www.qq.com:80/something@TRUESITE/somepath.html,此时应该观察高亮部分并仔细识别。
另外,出于对一般用户的保护考虑,许多浏览器已支持在无须登陆的网站上自动隐藏登陆信息,或者无论如何都不显示登陆信息,但是移动端一些浏览器却保留了旧的方案。例如早期的Android4.4.4自带的浏览器并不会隐藏登陆信息,攻击者能很容易伪造出一个看起来像是正常网址的钓鱼网站。
2 HTTP协议
Http协议是一个基于请求-响应的形式交互数据的无状态协议。客户端(浏览器)发送一个HTTP请求到服务器,然后服务器返回一个响应信息给客户端。相应的数据包含有请求的状态信息,也可以包含有响应的内容。
http协议的使用极为广泛,但是却存在不小的安全缺陷。http协议在设计时并未考虑信息的加密和验证,因此http面临着数据的明文传输和缺乏对消息完整性的验证机制两个问题。许多类似网银支付、账号登陆等需要安全保护的地方,如果使用http则可能会导致严重的信息泄露风险。
2.1 注入响应头:CRLF攻击
针对http头,攻击者可以进行CRLF攻击。CRLF是‘回车换行’的意思,CRLF攻击实际上是一个代码注入型的攻击。我们也知道http头由CR+LF确定一个字段的范围,如果某次响应数据中,有一个字段的数据是用户输入的,而服务器没有做好过滤,用户就可以通过编码插入CR+LF及注入的新字段来发起攻击。例如,攻击者可以通过注入HTTP头来篡改响应消息,也可以构造超长的HTTP头来攻击运行着Apache2.2.0~2.2.21服务器,使用户的HttpOnly Cookie泄露。
HTTP头注入可以导致多种问题,例如通过注入一个Set-Cookie字段,可以向用户的浏览器注入一个Cookie,在Cookie中可以指定SESSION造成固定会话攻击,攻击者可以注入HTTP头来关闭浏览器的XSS防护。
2.2 攻击响应:HTTP 401 钓鱼
2012年至2013年互联网上出现了许多HTTP401钓鱼的例子。攻击者首先在服务器上创建一个需要认证登陆才可访问的图片或页面。然后将图片或页面放置在论坛、邮箱、博客等地方。当用户访问链接向钓鱼文件的页面时,浏览器即会弹出对话框。这种钓鱼利用了浏览器处理相应的一个特性—当用户正在访问需要认证的资源时,服务器会响应HTTP 401 Unauthorized,浏览器收到这个状态码后会根据服务器提供的认证提示信息,弹出窗口,让用户提供认证用的用户名和密码。客户端提示用户的信息是通过响应头中WWW-Authenticate字段传递回来的,因此攻击者可以返回一些诱惑性的话语让用户提供一些隐私信息。
要达到这个效果,攻击者仅需在服务器上配置一个需要401跳转的页面:
<?php Header(‘WWW-Authenticate:Basic realm=”PLEASE LOG IN!!!”’); ?>
然后将这个URL当作图片的地址,贴到论坛等地方,即可等待用户上钩子。
如果只是正常使用,也不是很推荐使用HTTP 401认证,通过这种方式认证时,口令传输仅仅经过可逆Base64编码,可以视作明文传输,本身也并不安全。
现在如Chrome、Firefox等浏览器都已经对401认证弹框做了提示,例如网站A下有着网站B的HTTP 401资源,那么网站B的认证框将不会弹出。如果你仍然在使用过程中发现了此类认证提示框,一定要仔细辨别:1、是否是你的主动操作,如果不是,不要单机登陆;2、连接到的主机是否是你熟悉的,或者是否和你浏览的网页的主机地址一致,如果不是,也不要单击登陆。
3 源
在客户端中,绝大部分安全策略都通过限制源来实行,表明源是由方案名称、主机名、端口号组成的。源的判断之所以不单单采用主机名的原因是考虑到不同协议间的安全性。例如https的连接通常是加密的、需要一定安全保障的,而http则是明文的、安全性较低的。如果仅仅采用主机名判断,http://example.org和https:// example.org就会被认为是同源的,从而http网页就可以直接读取到https网页的内容,会严重降低https的安全性。
3/13 首页 上一页 1 2 3 4 5 6 下一页 尾页