存储型Xss成因及挖掘方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

存储型XSS的成因及挖掘方法USERID:Gainover(g_@live.com)GROUP:PKAVGroup2012-7-28||攻击?个人资料信息填写发表一篇日志发表一篇留言发表一篇评论提出一个问题回答一个问题…..地址栏参数Dom属性攻击者注入恶意代码输入过滤输出过滤输入输出代码缺陷查看他人资料查看一篇日志查看一条留言查看一个评论查看一个问题查看一个答案点开一个链接点开一个邮件……恶意代码执行受害者XSS模型当受害者变为攻击者时,下一轮受害者将更容易被攻击,威力更加明显!用户信息私密信息:日志,相片,邮件管理信息后台地址,管理员帐号信息甚至直接通过Ajax上传Shell客户端信息针对浏览器缺陷实施攻击突破浏览器的域限制360,傲游等浏览器的命令执行XSSXss蠕虫攻击DDoS攻击XSS攻击可以用来做什么?XSS的种类划分反射型XSSReflectedXSS存储型XSSStoredXSS恶意代码存放位置地址栏数据库恶意代码效果用户点击恶意链接打开时执行恶意代码,隐蔽性差用户浏览带有恶意代码的正常页面时触发,隐蔽性强产品但是危害越来越小….但是容易被扫….但是容易被干掉……XSS攻击的现状存储型XSS广泛存在存储型XSS的分类输出内容输出未过滤HTML-ContextJS-ContextCss-Context输出已过滤Dom-Based操作evalinnerHTMLsetTimeoutsetIntervaldocument.write根据输出内容所处的位置来分类。经常需要二次过滤,但程序员忽略掉了。会自动发生一些转义Flash-basedXSS其它/HTML文件HTML-Context存储型XSS及防御wooyun-2010-07831(random_)百度某分站存储型XSS恶意代码的输入恶意代码的输出恶意代码的执行,替换为<>判断存在,,禁止提交JS-Context存储型XSS及其防御wooyun-2010-09111(gainover)点点网存储型XSSJS-Context存储型XSS的利用方式:1./script闭合当前脚本,然后输入自定义内容。2.根据JS上下文,构造正确的闭合。过滤,,/替换/script为/’+’script(网易邮箱)根据实际情况,进行过滤。通常输出是字符串,在’和之间,过滤’,即可wooyun-2010-02321(Clouds)百度贴吧存储型XSSJS-Context存储型XSS及其防御和script中的XSS一样,过滤’和而实际上,在HTML的属性里,&#NNN;或&#xNN;也是可以被执行的!进一步构造利用代码还需要将&过滤为&字符转义"/"‘'</<>/>\\//CSS-Context存储型XSS及其防御通常情况下,可能会将,过滤掉了,因而无法使用此方式1.如果未做过滤,可以用/stylestyle…的方式来调用CSS-Context存储型XSS的利用方式:2.直接根据CSS上下文构造闭合根据CSS类型对输出进行严格纠正例如:字体大小,必须为数字,图片地址不允许出现非法字符IE6,7,8wooyun-2010-05967(gainover,QQ空间存储型XSS)wooyun-2010-01101(呆子不开口,网易微博换肤XSS)5.存储型XSS及其防御除了style…./style中可以被写入CSS数据之外,还有其它位置也可以:2.linkrel=stylesheethref=data:,*%7bx:expression(if(!window.x)%7balert(1);window.x=1%7d)%7d/3.style@importdata:,*%7bx:expression(if(!window.x)%7balert(1);window.x=1%7d)%7D;/style1.divstyle=width:expression(if(!window.x){alert(1);window.x=1})/div4.divstyle=font-family:foo}x=expression(if(!window.x){alert(1);window.x=1});XXX/divdivstyle=width:ex\pression(if(!window.x){alert(1);window.x=1})/divdivstyle=width:ex/**/pression(if(!window.x){alert(1);window.x=1})/divdivstyle=width:express\69on(if(!window.x){alert(1);window.x=1})/divdivstyle=width:express\69on(if(!window.x){alert(1);window.x=1})/divdivstyle=width:expression(if(!window.x){alert(1);window.x=1})/div(邮箱XSS的最爱)(部分内容参考html5sec.org)Dom-based存储型XSS及其防御数据输出textarea我是输出/textareaimgsrc=picurl=我是输出varx=$(x).value;varx=$(x).getAttribute(picurl);varobj=eval((+x+));$(result).innerHTML=x;DOM操作Dom-based存储型XSS及其防御name字段是昵称,我们可以自行设置!接着我们做以下测试:GainoveriframeGainover<iframe>对JS熟悉一点的则可能想到:于是,我们测试引号是否被过滤!GainoverGainover"放弃?vardata=$(json).value;wooyun-2010-09732(gainover,百度首页XSS后门)Dom-based存储型XSS及其防御这一类漏洞经常出现的场景…..点击查看大图,点击播放音乐,自动播放音乐。。imgid=picsrc=小图地址bigpic==1onerror=alert(document.cookie)><ib=onclick=test()当用户点击查看大图的时候,执行的代码往往是:functiontest(){alert($(pic).getAttribute(bigpic));$(bigimage).innerHTML=imgsrc=\+$(pic).getAttribute(bigpic)+\/;}wooyun-2010-02490(gainover,腾讯微博XSS)wooyun-2010-03317(gainover,QQ邮箱音乐功能XSS)共同点:读取自定义属性,然后进行innerHTML操作。解决方案:在读取属性之后,对属性中的特殊字符进行二次过滤。Dom-based存储型XSS及其防御.innerHTML=\uXXXX引发的惨案wooyun-2010-08487(gainover,腾讯WEBQQ聊天功能XSS)实际案例大多数厂商的做法将\替换为\\将\替换为/对data.name进行二次过滤,替换,为<>wooyun-2010-010167(imlonghao,搜狐微博XSS)Flash-based存储型XSS及其防御FlashXSS存储型反射型正常的存储行为图片上传组件,视频播放器,音乐播放器…日志HTML未过滤,或过滤不严FLASH相册,对加载图片未判断其它一些有加载图片功能的FLASH应用第三方插件第三方应用sameDomain策略Flash-based存储型XSS及其防御常规的Flash-based存储型XSSembedsrc=FLASH地址quality=highbgcolor=#FFFFFFwidth=950height=250name=chartalign=middleallowscriptaccess=alwaystype=application/x-shockwave-flashpluginspage==chart1.最低级的漏洞Always&&FLASH地址任何填写wooyun-2010-07684(gainover,QQ空间礼物功能XSS)wooyun-2010-08354(gainover,百度贴吧存储型XSS)2.稍微进化一点…Always&&FLASH地址固定&&FLASH会调用外部图片或SWF文件正常的FLASH恶意FLASH参数?url=xxx.jpg读取配置文件profileheadxxx.jpg/head/profilewooyun-2010-01768(p.z,新浪微博存储型XSS)wooyun-2010-01634(p.z,百度i贴吧存储型XSS)Flash-based存储型XSS及其防御3.再次进化一点…sameDomain+同域名下反射型FLASHXSSsameDomain策略只允许使用同域名下的FLASH文件无法执行了吧~,高枕无忧同域名下的缺陷型FLASH文件不同域名下的恶意FLASH文件程序员B程序员A被恶意利用同域名下允许上传FLASH文件某黑客wooyun-2010-03314(gainover,QQ邮箱XSS)wooyun-2010-06103(gainover,QQ空间存储型XSS)allowscriptaccess=sameDomainallowscriptaccess默认属性Flash-based存储型XSS及其防御flash.external.ExternalInterface.call(JS代码)navigateToURL(newURLRequest(JS代码))getURL(JS代码);loaderInfo.parametersxxx.swf?func=JS代码flashvars=func=JS代码App.baidu.com百度应用iframexxx.duapp.comiframeApp.baidu.com/xxx.swf合法的存储行为开发者developer.com………..黑客(本身是开发者)攻击反射型FLASHXSS1.FLASH开发人员缺乏安全意识(jwplayer,openflashchart,swfupload类程序…)2.FLASHXSS可以绕过主流浏览器的XSSFilter3.传统扫描器不易扫描WooYun-2012-07050Wooyun-2010-07085(新浪微博,淘宝网Cookies盗取)Wooyun-2010-08318(gainover,百度应用XSS)Flash-based存储型XSS及其防御受害者调用=(function(){functionj(w){window.s=document.createElement('script')

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功