XSS跨站脚本攻击详述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 http://www.thespanner.co.uk/2009/05/08/opera-xssvectors/ …
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
5
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
分类
– 存储式
这是利用起来最方便的跨站类型,跨站代码存储于服务端(比 如数据库中) – 反射式 跨站代码一般存在于链接中,请求这样的链接时,跨站代码经 过服务端反射回来,这类跨站的代码一般不存储到服务端 – DOM式 一种基于DOM的跨站,这是客户端脚本自身解析不正确导致的 安全问题
Dan Haagman, InfoSecurity 2009
2
4
From: Malicious User To: Victim User
MALICIOUS 5 CODE
NORMAL VALID SESSION
CLICK HERE email client
Secure Coding Course, © 7Safe
– 即跨站脚本攻击,这类攻wk.baidu.com发生在客户端,是攻击者将恶意代码注 入到Web客户端,从而影响到其他浏览此Web界面的用户
– 危险的HTML标签、客户端脚本、其它能执行JS的容器等 – 大多数时候与JavaScript有关 – – – – – form: post/get url parameters cookie header html媒体文件的内容
7
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
XML file xss
– 针对Firefox/chrome/opera 有效
<?xml version="1.0" encoding="UTF-8" ?> <root> <a> /////////////可控部分 <p xmlns='http://www.w3.org/1999/xhtml'> <script>alert(document.cookie);</script> </p> ///////////////// </a> </root>
data:text/html;base64,PHNjcmlwdD5hbGVydCgveGV5ZS8pPC9zY3JpcHQ+D Qo= 内容输出到html中,包括base64解码后的脚本
–
…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
14
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器特性导致的XSS(一)
– IE
• 标签内 在html内的跨站,无须构造新的标签,直接使用标签属性进行跨 站 • 标签外 需要构建html标签,才能利用跨站 • <script>内 使用分号分割script脚本,直接执行脚本
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
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 http://sites.google.com/site/tentacoloviola/backdooringwindows-media-files – …
–
比如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 http://hi.baidu.com/ycosxhack/blog/item/4078831c166c308d86d6b645.ht ml …
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、同源策略bypass的0day利用 ○ 2、你所在的域允许与其他域在客户端上通讯…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
10
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
– XML文档 – Flash – 客户端软件
QQ2009、office、rar自解压等
– HTML上的一些媒体元素
wmf, word, pdf ,applet…
–
…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
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) 注入的恶意代码包括:
注入源
只要是输入点都可以是注入源
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
3
XSS跨站脚本概述
Attacker
malicious code
target site
3 1
“reflected” code normal interaction
security context: target site
browser window
security context: target site browser window
7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
4
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
XSS跨站脚本攻击详述
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
1
Dan Haagman, InfoSecurity 2009
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 2010
8
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
测试跨站
– URL 当URL出错时,会出现URL 出错,并报告出错的URL信息,产 生跨站, 容器漏洞、应用构架 – 参数
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
6
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
哪儿可以XSS
– HTML本身
HTML元素、元素属性、CSS等
9/6/2010
DBAppsecurtiy 2010
9
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
同源策略
– 在浏览器中有一个非常重要的概念:同源策略。它是指客户 端脚本应该只被允许访问与自己在同域内的资源,这里的同 域是指同协议、同域名、同端口的严格同域 – 为什么需要同源策略 你的gmail cookie就不会被另一个域的js读取 你163.com上的隐私数据就不会被另一域的js读取、篡改、删除 等 有两种情况可以这样做:
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
13
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器解析处理差异导致的XSS
– webkit textarea innerHTML http://xeye.us/blog/2009/04/textarea-innerhtml-not-encode-inwebkit/ – 对宽字节编码的处理方式差异 eg:gbk编码的网页对%c3'处理,ff/chrome与ie/opera的默认处理 方式不同 – …
Dan Haagman, InfoSecurity 2009
XSS 危害
– – – – –
– – – – – –
挂马 盗取用户cookie DOS客户端浏览器 钓鱼攻击,高级钓鱼技巧 编写针对性的XSS VIRUS,删除目标文章、恶意篡改数据、嫁 祸、“借刀杀人”…… 劫持用户web行为 甚至进一步渗透内网 爆发Web2.0蠕虫 蠕虫式的DDOS攻击 蠕虫式挂马攻击、刷广告、刷流量、破坏网上数据 ……
javascript伪协议
<iframe src=j avascript:alert(/xss/)> …
– – –
HTML属性 CSS中 Data URI XSS
on*事件、style属性、action/src/href等
expression, javascript:, moz-binding等
9/6/2010
DBAppsecurtiy 2010
15
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器特性导致的XSS(二)
– Opera <table background=javascript:alert(/xeye/)> from http://www.thespanner.co.uk/2009/05/08/opera-xssvectors/ …
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
5
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
分类
– 存储式
这是利用起来最方便的跨站类型,跨站代码存储于服务端(比 如数据库中) – 反射式 跨站代码一般存在于链接中,请求这样的链接时,跨站代码经 过服务端反射回来,这类跨站的代码一般不存储到服务端 – DOM式 一种基于DOM的跨站,这是客户端脚本自身解析不正确导致的 安全问题
Dan Haagman, InfoSecurity 2009
2
4
From: Malicious User To: Victim User
MALICIOUS 5 CODE
NORMAL VALID SESSION
CLICK HERE email client
Secure Coding Course, © 7Safe
– 即跨站脚本攻击,这类攻wk.baidu.com发生在客户端,是攻击者将恶意代码注 入到Web客户端,从而影响到其他浏览此Web界面的用户
– 危险的HTML标签、客户端脚本、其它能执行JS的容器等 – 大多数时候与JavaScript有关 – – – – – form: post/get url parameters cookie header html媒体文件的内容
7
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
XML file xss
– 针对Firefox/chrome/opera 有效
<?xml version="1.0" encoding="UTF-8" ?> <root> <a> /////////////可控部分 <p xmlns='http://www.w3.org/1999/xhtml'> <script>alert(document.cookie);</script> </p> ///////////////// </a> </root>
data:text/html;base64,PHNjcmlwdD5hbGVydCgveGV5ZS8pPC9zY3JpcHQ+D Qo= 内容输出到html中,包括base64解码后的脚本
–
…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
14
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器特性导致的XSS(一)
– IE
• 标签内 在html内的跨站,无须构造新的标签,直接使用标签属性进行跨 站 • 标签外 需要构建html标签,才能利用跨站 • <script>内 使用分号分割script脚本,直接执行脚本
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
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 http://sites.google.com/site/tentacoloviola/backdooringwindows-media-files – …
–
比如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 http://hi.baidu.com/ycosxhack/blog/item/4078831c166c308d86d6b645.ht ml …
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、同源策略bypass的0day利用 ○ 2、你所在的域允许与其他域在客户端上通讯…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
10
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
– XML文档 – Flash – 客户端软件
QQ2009、office、rar自解压等
– HTML上的一些媒体元素
wmf, word, pdf ,applet…
–
…
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
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) 注入的恶意代码包括:
注入源
只要是输入点都可以是注入源
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
3
XSS跨站脚本概述
Attacker
malicious code
target site
3 1
“reflected” code normal interaction
security context: target site
browser window
security context: target site browser window
7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
4
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
XSS跨站脚本攻击详述
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
1
Dan Haagman, InfoSecurity 2009
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 2010
8
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
测试跨站
– URL 当URL出错时,会出现URL 出错,并报告出错的URL信息,产 生跨站, 容器漏洞、应用构架 – 参数
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
6
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
哪儿可以XSS
– HTML本身
HTML元素、元素属性、CSS等
9/6/2010
DBAppsecurtiy 2010
9
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
同源策略
– 在浏览器中有一个非常重要的概念:同源策略。它是指客户 端脚本应该只被允许访问与自己在同域内的资源,这里的同 域是指同协议、同域名、同端口的严格同域 – 为什么需要同源策略 你的gmail cookie就不会被另一个域的js读取 你163.com上的隐私数据就不会被另一域的js读取、篡改、删除 等 有两种情况可以这样做:
Secure Coding Course, © 7Safe 7Safe Company Overview 2009
9/6/2010
DBAppsecurtiy 2010
13
XSS跨站脚本概述
Dan Haagman, InfoSecurity 2009
浏览器解析处理差异导致的XSS
– webkit textarea innerHTML http://xeye.us/blog/2009/04/textarea-innerhtml-not-encode-inwebkit/ – 对宽字节编码的处理方式差异 eg:gbk编码的网页对%c3'处理,ff/chrome与ie/opera的默认处理 方式不同 – …
Dan Haagman, InfoSecurity 2009
XSS 危害
– – – – –
– – – – – –
挂马 盗取用户cookie DOS客户端浏览器 钓鱼攻击,高级钓鱼技巧 编写针对性的XSS VIRUS,删除目标文章、恶意篡改数据、嫁 祸、“借刀杀人”…… 劫持用户web行为 甚至进一步渗透内网 爆发Web2.0蠕虫 蠕虫式的DDOS攻击 蠕虫式挂马攻击、刷广告、刷流量、破坏网上数据 ……
javascript伪协议
<iframe src=j avascript:alert(/xss/)> …
– – –
HTML属性 CSS中 Data URI XSS
on*事件、style属性、action/src/href等
expression, javascript:, moz-binding等