freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课
FreeBuf+小程序

FreeBuf+小程序

官方公众号企业安全新浪微博

国内领先的互联网安全新媒体,同时也是爱好者们交流与分享安全技术的社区

[新思路]Flash ExternalInterface函数导致的XSS
2012-05-23 10:34:31
我们都知道Flash的ExternalInterface.call()可以调用外部的JS函数,一般如果在flash代码中看到这个函数,而且里面的参数可以是用户可以控制的话,就会有XSS的风险,flash安全扫描工具的扫描原理也是如此,碰到这个函数还有geturl,如果里面的参数来自外部的话就认为是漏洞。 一般情况下我们ExternalInterface.call(param1,param2),我们只要在param1中设为eval,param2中附加我们的js语句就可以了,param2为param1的参数,真正执行的时候类似于这样: param1 = eval; param2 = alert(/XSS/); 那么结果就是eval("alert(/XSS/)") 悲剧的是如果param1我们不可以控制,我们只能控制param2,那还有办法XSS吗。就像到sql注入一样,这里可以联想到注入")来闭合前面的引号后再次插入JS来X,但是这里adobe做了jsencode,我们插入的"会变成\",所以我们又X不了了 喜剧的是老外在测试的过程中发现了一个BUG: http://s2.kkdaili.com/0b0d97edc58e6b5.php?u=T2k4dmJHTmhiWFIxWmk1aWJHOW5jM0J2ZEM1amIyMHZNakF4TVM4d015OXZkR2hsY2kxeVpXRnpiMjR0ZEc4dFltVjNZWEpsTFc5bUxtaDBiV3c9&b=29&f=norefer 当插入\"这样的符号时,flash会在经过jsencode后既然只赚了前面的\,所以最后变成了\\",这样我们的“又能闭合了,悲了剧啊,这种漏洞也有,想测试的搞80vul吧,黑锅正愁没流量呢  ‍ 当然,这是针对param1不可控的情况下的办法,反过来,如果只有param1可控,param2不可能控的话,我们可以用function方法来执行,如下: http://www.80vul.com/xss.swf?a=function(){alert(/xss/);alert(1)} 同理的漏洞还有:http://www.wooyun.org/bugs/wooyun-2010-07265 文/ben

本文作者:, 转载请注明来自FreeBuf.COM

# xss # flash # ExternalInterface
被以下专栏收录,发现更多精彩内容
+ 收入我的专栏
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦