Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cookie Theft and Session Hijacking
Search
shawn0102
August 16, 2014
Programming
0
740
Cookie Theft and Session Hijacking
shawn0102
August 16, 2014
Tweet
Share
More Decks by shawn0102
See All by shawn0102
Cookie Theft and Session Hijacking
shawn0102
2
89
Generators in ES6
shawn0102
2
120
Other Decks in Programming
See All in Programming
Docker ハンズオン / docker-hands-on
suzukihoge
51
16k
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
100
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
Compiling Python to WebAssembly with py2wasm
syrusakbary
0
130
導入から5年が経って見えた Datadog APM 運用の課題
bgpat
2
540
IntelliJ IDEA を知らなかった 自分に教えたい小ネタ集 / IntelliJ IDEA Hints for My Past Self
mackey0225
3
160
Learning PHP and Static Analysis with PHP Parser
inouehi
1
250
TCA魔法学入門🪄
dazy
0
280
DDD, necessary but insufficient: physical design principles for microservices
cer
PRO
0
2.1k
設計の知識と技能で駆動するソフトウェア開発
masuda220
PRO
18
10k
PHP8の機能を使って堅牢にコードを書く
fendo181
6
2.6k
マイ隙間家具OSSたちのご紹介
karupanerura
2
150
Featured
See All Featured
Bash Introduction
62gerente
604
210k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Web Components: a chance to create the future
zenorocha
304
41k
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
A Tale of Four Properties
chriscoyier
150
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
15
6.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
Transcript
Cookie Theft & Session Hijacking 邵帅 twitter@shawn0102 weibo@shaoshuai0102 http://shaoshuai.me
None
cookie有关的术语 • session cookie • persistent cookie/tracking cookie • secure
cookie • httpOnly cookie • third-party cookie • supercookie • zombie cookie/evercookie
httponly cookie 被声明为httponly的cookie只有在 执⾏行http/https请求时会带上,在js中⽆无 法获取到 Set-Cookie: JSESSIONID=xx88bss008; Domain=.foo.com; Path=/; HttpOnly
secure cookie 被声明为secure的cookie只有在使 ⽤用https时会加密传输,不会在http请求 中传输 Set-Cookie: JSESSIONID=xx88bss008; Domain=.foo.com; Path=/; Secure
cookie的⽤用途 • session管理! • 个性化 • user tracking
session cookie被窃取 的危害演⽰示
“怎么偷⾛走session cookie?”
利⽤用xss漏洞获取cookie
我把session cookie设置为httpOnly,xss漏洞就 ⽆无法拿到session cookie了吧?
如果是php,如果开放了phpinfo权限,攻击就可 ⾏行了:xss发起异步请求,分析response拿到 httpOnly的cookie
设置httpOnly,关闭phpinfo,还有办法吗
XST!
XST • XST = Cross Site Tracing = XSS +
http trace • http trace是让我们的web服务器将客户端的所有请求信 息返回给客户端的⽅方法。其中包含了httpOnly的 cookie。 • 最佳实践是关闭服务器的trace功能。 • 但是当使⽤用代理的时候,代理可以被配置成⽀支持trace, 从⽽而⼜又可以进⾏行xst攻击了,所以代理要慎⽤用! • 还好现代浏览器禁⽤用了异步发送trace请求的功能。
设置httpOnly,关闭phpinfo,关闭trace⽀支持,⽤用 户使⽤用的是现代浏览器,还有办法偷⾛走session吗
以上⽅方式只防⽌止通过浏览器拿到 session cookie,但是可以通过拿 到实际的⺴⽹网络请求,所有cookie都 ⽆无法隐藏!
⽅方式⼀一⺴⽹网络监听(network eavsdropping) • 只要是未使⽤用https加密的⺴⽹网站都可以抓包 分析,其中包含session cookie • 未保护的wifi,对同⼀一⺴⽹网络下的请求进⾏行 监听 •
⼯工具firesheep http://codebutler.com/ firesheep/
⽅方式⼆二 DNS缓存投毒 • 把要攻击的域名的⼀一个⼦子域映射到攻击者 的server,然后想办法让被攻击者访问这 个server,请求中会带过来所有cookie (包括httpOnly)
⽅方式三 中间⼈人攻击 • 搭建免费wifi,把DHCP服务器指定为攻击 者ip,在攻击者机器上可以收到所有请 求,不仅可以获取session cookie,还可 以进⾏行脚本注⼊入 • 未使⽤用https才可以
⽅方式四 代理服务器/VPN等 • 翻墙⽤用免费VPN?⼩小⼼心你的session cookie
使⽤用https协议,是不是中间⼈人就⽆无法攻击了
如果同时⽀支持http和https,那么 还是可以使⽤用⺴⽹网络监听http请求获 取session cookie
只⽀支持https,不⽀支持http
如果输⼊入example.com发起请 求,会有⼀一次301重定向,这次请 求是http的,也会带上cookie!
把 session cookie设置成secure,只允 许在https上加密传输
其他cookie(⾮非secure)在这次301 请求中还是可以拿到,就看有没 有有⽤用信息了
设置header Strict-Transport- Security,直接省略这个http请求! http://www.wooyun.org/bugs/wooyun-2010-0498 36b625b1c47b40b270c6a390a0fb9525
现实 • ⼀一个https的⺴⽹网站,有某些⼦子域名使⽤用http提供服 务,通常为了统⼀一session,会不设置session cookie为secure,可以通过中间⼈人攻击劫持 session。
如果偷取cookie失败,⽆无 法session劫持,攻击者 如何再发起攻击?
劫持session的⺫⽬目的是拿到登录态,从⽽而获得服务器授权做很多 请求,例如账户变更。如果劫持不到session,也能够做授权请 求不是也达到攻击的⺫⽬目的了? ! ⽆无需拿到session cookie,跨站发起请求就可以了,这就是 CSRF! ! server通过把⽤用户凭证存储在cookie以维持session,http/https 协议每次访问都会⾃自动传输cookie,协议上的缺陷是导致可进⾏行
CSRF攻击的根本原因! ! 防御⽅方式:使⽤用anti-forgery token ! CSRF
“⼤大部分攻击都是提权⾏行为,最基本的提权通过偷 取⽤用户名密码,不成功转⽽而窃取session,窃取不 成转⽽而跨站攻击,实在不⾏行重放也可以造成危害” 总结
谢谢