新型漏洞:利用浏览器Cookie绕过HTTPS并窃取私人信息
近期,一个存在于主要浏览器的Web cookie中的严重漏洞被发现,它使安全的浏览方式(HTTPS)容易遭受中间人攻击。此外,大部分Web网站和流行的开源应用程序中可能都含有Cookie注入漏洞,包括:谷歌、亚马逊、eBay、苹果、美国银行、BitBucket、中国建设银行、中国银联、京东、phpMyAdmin以及MediaWiki。
美国计算机紧急响应小组(CERT)披露(9月27日补充:中国研究者xiaofeng zheng发现了这个安全问题,美国专业安全媒体thehacknews不知何因在报道中忽略了该研究人员的名字,FreeBuf已做补充),所有的主要浏览器厂商不恰当地实现了RFC 6265标准,也称为“浏览器Cookie”,这使得远程攻击者能够绕过安全的HTTPS协议,并能够泄露秘密的私人会话数据。
HTTPS Cookie注入漏洞
Cookie是Web网站发送到Web浏览器上的一小片数据,它包含用户识别用户身份的各种信息,或储存了与该网站相关的任何特定信息。当一个你访问过了的网站想要在你的浏览器中设置一个Cookie时,它会传递一个名为“Set-Cookie”的头、参数名称、它的值和一些选项,包括Cookie的过期时间和域名(它有效的原因)。
此外,同样重要的是要注意一点,基于HTTP的网站不以任何方式加密头信息,为了解决这个问题,网站使用带有“安全标志(secure flag)”的HTTPS Cookie,这表明Cookie必须通过一个安全的HTTPS连接发送(从浏览器到服务器)Cookie。然而,研究人员发现,一些主要的Web浏览器通过HTTPS接受Cookie,甚至没有验证HTTPS Cookie的来源(Cookie forcing),这使得在明文传输的HTTP浏览会话中,处于中间人攻击位置的攻击者将注入Cookie中,而这些Cookie将用于安全的HTTPS加密会话。
对于一个不受保护的浏览器,攻击者可以将HTTPS Cookie伪装成另一个网站(example.com),并以这种方式覆盖真正的HTTPS Cookie,这样即使用户查看他们的Cookie名单,可能也不会意识到这是一个虚假的网站。现在,这个恶意的HTTPS Cookie由攻击者控制,因此他能够拦截和抓取私人会话信息。
影响范围
在8月份华盛顿举办的第24届USENIX安全研讨会上,该问题首次被披露。当时,研究人员xiaofeng zheng展示了他们的论文,文中提到大部分Web网站和流行的开源应用程序中可能都含有Cookie注入漏洞,包括:谷歌、亚马逊、eBay、苹果、美国银行、BitBucket、中国建设银行、中国银联、京东、phpMyAdmin以及MediaWiki。此外,受影响的主流Web浏览器包括以下浏览器的早期版本:
1、苹果的Safari
2、Mozilla的Firefox
3、谷歌的Chrome
4、微软的IE浏览器
5、微软的Edge
6、Opera
然而,好消息是,这些供应商现在已经解决了这个问题。所以,如果你想保护自己免受这种Cookie注入、中间人攻击向量,那么就将这些浏览器升级到最新版本。
- HDUOJ---1867 A + B for you again
- HDUOJ--------1420Prepared for New Acmer
- PowerVM虚拟化环境下 CPU 利用率的监控与探究
- 虚函数中构造函数的调用顺序
- HDUOJ-----4512吉哥系列故事——完美队形I(LCIS)
- go语言mongdb管道使用(二)
- HDUOJ--4565 So Easy!
- Go 语言Map(集合)
- 简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
- java 快速求素数
- 狄斯奎诺(dijkstra 模板)
- HDUOJ---汉洛塔IX
- 小错误系列
- HDUOJ-----4510 小Q系列故事——为什么时光不能倒流
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 盘点 | Python自带的那些数据集
- 使用shuttle实现bytom上跨链资产交换
- (三)Mybatis-Plus代码生成器
- 【Code】关于 GCN,我有三种写法
- MySQL允许在唯一索引字段中添加多个NULL值
- [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处?
- 日志切割工具-Logrotate实现nginx日志切割
- JVM元数据区
- Linux下指定pip install和make install安装路径
- 日志追踪 sentry
- PHP-FPM多方面调优策略
- 自动部署项目脚本
- 探索性数据分析,Seaborn必会的几种图
- Neurocomputing模板下载及编译
- C++ 11 nullptr关键字