当前位置:文档之家› XSS跨站脚本攻击详述

XSS跨站脚本攻击详述


9/6/2010
DBAppsecurtiy 2010
12
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
HTML中的其它媒体元素导致的XSS
– flash actionscript getURL("javascript:alert(/xeye/)"); ExternalInterface.call("eval", "try{alert(/xeye/);}catch(e){window.location.reload();}"); … – pdf xss – applet xss – wmf xss /site/tentacoloviola/backdooringwindows-media-files – …
Dan Haagman, InfoSecurity 2009
XSS跨站脚本攻击详述
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
1
Dan Haagman, InfoSecurity 2009
7
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
XML file xss
– 针对Firefox/chrome/opera 有效
<?xml version="1.0" encoding="UTF-8" ?> <root> <a> /////////////可控部分 <p xmlns='/1999/xhtml'> <script>alert(document.cookie);</script> </p> ///////////////// </a> </root>
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
16
Dan Haagman, InfoSecurity 2009
浏览器bug导致的XSS ie7/8 javascript伪协议bypass执行
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
11
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
HTML中有多处可以合法执行JS
– <script>标签
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010Leabharlann 13XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器解析处理差异导致的XSS
– webkit textarea innerHTML /blog/2009/04/textarea-innerhtml-not-encode-inwebkit/ – 对宽字节编码的处理方式差异 eg:gbk编码的网页对%c3'处理,ff/chrome与ie/opera的默认处理 方式不同 – …
– XML文档 – Flash – 客户端软件
QQ2009、office、rar自解压等
– HTML上的一些媒体元素
wmf, word, pdf ,applet…


Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
security context: target site
browser window
security context: target site browser window
7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
4
XSS跨站脚本概述
javascript伪协议
<iframe src=j&#13;avascript:alert(/xss/)> …
– – –
HTML属性 CSS中 Data URI XSS
on*事件、style属性、action/src/href等
expression, javascript:, moz-binding等
• 标签内 在html内的跨站,无须构造新的标签,直接使用标签属性进行跨 站 • 标签外 需要构建html标签,才能利用跨站 • <script>内 使用分号分割script脚本,直接执行脚本
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
6
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
哪儿可以XSS
– HTML本身
HTML元素、元素属性、CSS等
XSS跨站脚本概述 XSS跨站攻击案例模式
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
2
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
XSS(Cross-Site Scripting) 注入的恶意代码包括:
○ 1、同源策略bypass的0day利用 ○ 2、你所在的域允许与其他域在客户端上通讯…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
10
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
9/6/2010
DBAppsecurtiy 2010
9
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
同源策略
– 在浏览器中有一个非常重要的概念:同源策略。它是指客户 端脚本应该只被允许访问与自己在同域内的资源,这里的同 域是指同协议、同域名、同端口的严格同域 – 为什么需要同源策略 你的gmail cookie就不会被另一个域的js读取 你上的隐私数据就不会被另一域的js读取、篡改、删除 等 有两种情况可以这样做:
– 即跨站脚本攻击,这类攻击发生在客户端,是攻击者将恶意代码注 入到Web客户端,从而影响到其他浏览此Web界面的用户
– 危险的HTML标签、客户端脚本、其它能执行JS的容器等 – 大多数时候与JavaScript有关 – – – – – form: post/get url parameters cookie header html媒体文件的内容
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
14
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器特性导致的XSS(一)
– IE


比如css中的expression,*background里的伪协议 <!--[if '<script']><script>alert(/xeye/)</script><![endif]--> `反单引号的支持 …
FF
css中的BODY{-moz-binding:url("xss-test.xml#xss")} E4X的实例:<script> foo=<foo><id name="thx">x</id></foo>; alert(foo.id); </script> more from /ycosxhack/blog/item/4078831c166c308d86d6b645.ht ml …
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
15
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器特性导致的XSS(二)
– Opera <table background=javascript:alert(/xeye/)> from /2009/05/08/opera-xssvectors/ …
Dan Haagman, InfoSecurity 2009
2
4
From: Malicious User To: Victim User
MALICIOUS 5 CODE
NORMAL VALID SESSION
相关主题