Xeye 2009-07-11
攻击维度不单一
?
Cross Site Attack
? XSS ○ with CSRF ○ with UI Redress ○ with Phishing ○… ?…
目录
?
XSS
? XSS类型 ? 哪里可以XSS ? Bypass XSS Filter ? 我们的目标是什么(案例分析) ? XSS能做什么(Tips)
相关资源…… ? 讨论时刻……
?
XSS
?
XSS(Cross-Site Scripting)
? 即跨站脚本攻击,这类攻击发生在客户端,是攻击者将恶
意代码注入到Web客户端,从而影响到其他浏览此Web界 面的用户
?
注入的恶意代码包括:
? 危险的HTML标签、客户端脚本、其它能执行JS的容器等 ? 大多数时候与
JavaScript有关
?
注入源
? form: post/get ? url parameters
? ? ? ?
cookie header html媒体文件的内容 一句话概括:只要是输入点都可以是注入源
XSS类型
?
Reflected XSS
? 跨站代码一般存在于链接中,请求这样的链
接时,跨站代码经过服务端反射回来,这类 跨站的代码一般不存储到服务端
?
Stored XSS
? 这是利用起来最方便的跨站类型,跨站代码
存储于服务端(比如数据库中)
?
DOM Based XSS
? 一种基于DOM的跨站,这是客户端脚本自身
解析不正确导致的安全问题
哪里可以XSS
? ?
HTML本身
? HTML元素、元素属性、CSS等
XML
文档 ? Flash ? 客户端
软件 ? QQ2009、灵格斯词典、office、rar自解压等
?
?
HTML上的一些媒体元素
? wmf,
word, pdf ,applet…
…
Bypass XSS Filter
1. 2. 3. 4. 5. 6. 7. 8. 9.
HTML中有多处可以合法执行JS
HTML中的其它媒体元素导致的XSS 浏览器解析处理差异导致的XSS 浏览器特性导致的XSS 浏览器bug导致的XSS 编码问题导致的XSS 不完备的黑名单策略导致的XSS XSS Filter本身的缺陷导致的XSS 以上综合因素导致的XSS
1、HTML中有多处可以合法执行JS
?
?
`反单引号的支持 …
?
FF
? css中的BODY{-moz-binding:url("xss-test.xml#xss")} ? E4X的实例:
? more from hi.baidu/ycosxhack/blog/item/4078831c166c30 8d86d6b645.html ? …
4、浏览器特性导致的XSS(二)
?
Opera
?
? from
thespanner.co.uk/2009/05/08/ope ra-xss-vectors/ ?…
5、浏览器bug导致的XSS
? ?
ie7/8 javascript伪协议bypass执行
? xeye.us/demo/pseudo/javascript.txt
";?>
? 80vul/script_tag_fuzz/
?…
?
6、编码问题导致的XSS
?
utf-7编码
? +ACI- onmouseover=+ACI-
alert(/xeye/)+ADsAIg- x=+ACI?
us-ascii编码的high bit问题
? %A2%BE%BCscript%BEalert(/xeye/);%BC/scrip
t%BE
?
multi-byte编码
? gbk, big5, euc-jp等 ? eg:%c3'绕过gbk编码环境下的php对'的转义:
%c3\'-->肻'
?
…
7、不完备的黑名单策略导致的XSS
要么黑名单,要么就白名单? ? 总是有新元素出现,黑名单很可能就被 bypass ? 对html标签的过滤
?
? html5出现新的标签:video/audio/canvas等
?
对on事件的过滤
? 出现新的事件:onloadedmetadata,
ondurationchanged, ontimeupdate等 ? from hi.baidu/aullik5/blog/item/0a4af8f3431 ab21bb07ec57a.html
?
…
8、XSS Filter本身的缺陷导致的XSS
?
预留filter开关
? m348.mail.qq/cgi-
bin/readmail?mailid=ZC1217iK5yq~a8ToGOBNZbWCXXX w86&;folderid=1&;t=readmail&;&;&;groupid=&;sid=Cks1qOzUAjlT0gB&;disptype=html&;dispimg=1&;filterflag=true ? from 80vul/qqmail/QQmail%20Multiple%20Xss %20Vulnerabilities.htm
?
正则编写缺陷
? ? ? ?
s/script//g s/script/xscript/ig s/[\x00-\x20\<\>\"\']//g s/(url|script|eval|expression)/xxx/ig
?
…
我们的目标是什么
?
很简单,就是合理地做坏事……
一次XSS的过程其实就是一次完美绕过目 标xss filter的过程 下面是对“哪里可以XSS”部分的一些比 较有代表性的案例进行分析
?
?
Bypass mail xss filter
Bypass sina mail xss filter
111
222
… ? 邮箱的bypass从来就是热门研究对象,尤其 是yahoo/hotmail/gmail:)
?
yahoo mail xss
邮件正文、附件、第三方媒体元素等 ? 分析mail系统什么情况下能保留住关键词,比如 expression,javascript:,甚至on*事件等 ? fuzzing浏览器解析bug ? 构造绕过模型… ? 边缘性的XSS挖掘
? 半自动化fuzzing,分析工具的利用 ? …
?
yahoo mail xss
XML file XSS
XML file XSS
? xml.xml文件仅包含这样的代码 ? 在ff/opera/chrome下有效 ? from lookout.net/2008/01/27/firefo x-renders-xmlns-xhtml-in-favor-of-xss/ ?…
?
Malicious Flash
Flash Parameter Injection
?
?
通过类似 xeye.us/fpi.swf?url=evilsite的方 式,将恶意数据传进flash的as脚本中处理执行 Cross-Site Flashing as脚本
if (_root.movieURI == undefined) { _root.movieURI = "host/movie.swf"; }
loadMovieNum(_root.movieURI, 1);
?
Cross-Site Scripting through Flash as脚本
if (_root.url == undefined) { _root.url = "host/"; } getURL(_root.url);
?
more from blog.watchfire/FPI.ppt
Flash封装网马
?
一般网马exp是用js编码,无论使用何种加密、 验证等手段,只要在客户端执行就肯定暴露 使用Flash AS脚本封装
? 隐藏——flash封装的最大优势 ? 不是所有exp都可以做这样封装——flash封