- 浏览: 139797 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (129)
- ActionScript (38)
- 生活 (5)
- 创业 (0)
- 在深圳 (0)
- Air专区 (7)
- Flash/flex专区 (9)
- Flash/Flex与后台 (1)
- Aswing应用专区 (2)
- 影视业 (1)
- 服务器知识 (7)
- webGame (8)
- dos/linux (1)
- flash 问题搜集 (5)
- flashDevelop (2)
- javascript (0)
- 备忘录 (0)
- 3D 打印机 (0)
- ioError 和服务器不存在 (0)
- web问题收集 (2)
- as问题收集 (0)
- swf (1)
- oc (14)
- crash (1)
- IOS (0)
- swift (0)
- iphone (1)
最新评论
-
pgy20032000:
好使 谢啦 [img][/img]
怎样从DOS的telnet中退出 -
txlong_onz:
图片不知道怎么上传的,见谅。
怎样从DOS的telnet中退出 -
txlong_onz:
虽然命令行上写的有Ecsape字符是引用CTRL+],但是我试 ...
怎样从DOS的telnet中退出 -
txlong_onz:
老大,你怎么代码不放到专门的代码区啊?我看的好费力啊,因为是新 ...
flash 加载gb2312乱码的处理(2中方法)
http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html
March 06, 2011
The other reason to beware ExternalInterface.call()
Adobe Flash has a function called ExternalInterface.call(...), which implements a JavaScript bridge to the hosting page. It takes two parameters: the first one is the name of the JavaScript function to call. The second one is a string to pass to this function.
It is understood that the first parameter should not be attacker-controlled (of course, mistakes happen :-). It is also understood that there is no inherent harm in putting user input in the second parameter, if the callback function itself is not behaving stupidly; in fact, Adobe documentation gives an example that follows this very pattern:
...
ExternalInterface.call("sendToJavaScript", input.text);
...
Such a call would be translated to an eval(...) statement injected on the embedding page. This statement looks roughly the following way:
try {
__flash__toXML(sendToJavaScript, "value of input.text"));
} catch (e) {
"<undefined/>";
}
When writing the supporting code behind this call, the authors remembered to use backslash escaping when outputting the second parameter: hello"world becomes hello\"world. Unfortunately, they overlooked the need to escape any stray backslash characters, too.
So, try to figure out what happens if the value of input.text is set to the following string:
Hello world!\"+alert(1)); } catch(e) {} //
I reported this problem to Adobe in March 2010. In March 2011, after following up, I received the following response:
"We have not made any change to this behavior for backwards compatibility reasons."
Caveat emptor :-)
解决时发现这个xss是攻击者利用了Adobe的一个已知漏洞,我们简称之为ExternalInterface.call 注入,此漏洞于2010.03已经被report给Adobe了,但是被Adobe拒绝修复,官方回复是: "We have not made any change to this behavior for backwards compatibility reasons." 详细可以参考:http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html 简单来说,Adobe flash里提供了一个调用外部js的方法 ExternalInterface.call(...),此方法有两个参数,第一个参数是要调用的js函数名,第二个参数是传递给这个函数的参数。这个call方法使用了eval实现函数的调用,最后生成的代码有一段是: try { __flash__toXML(js_function, "params"));} catch (e) { ""; } 很明显,参数params里面不能有“"”,以防止try块里面的函数调用被破坏,Adobe的开发人员也注意到了这一点,所以他们会转义掉“"”。 例如,params如果是xxx"yy,那么会转成xxx\"yy。 但是,他们忘了转义“\”,所以如果params是xxx\"yy,那么最后得到的是xxx\\"yy。 注入漏洞就此产生。 攻击者可以构造这样的params来进行xss攻击: 1:\",alert(1)));}catch(e){}// 2:\"))}catch(e){alert(2)}// 经由Adobe eval生成的js代码则大致如下: try { __flash__toXML(js_function("\\",alert(1)));}catch(e){}//")) ; } catch (e) { ""; } try { __flash__toXML(js_function("\\"))}catch(e){alert(2)}//")) ; } catch (e) { ""; } 可以看到,如果你在flash as代码里使用了 flash.external.ExternalInterface.call (),并且直接使用用户输入作为第二个参数的话,那么你就存在上面论述的xss风险。 我们建议的修复方案是,对第二个参数做限制,使用前对用户输入进行过滤,一般来说,过滤掉\、/这样的特殊字符即可,具体可由实际需要而定。也可以不允许使用用户输入作为第二个参数。seanzhu,本内容来自腾讯内部分享,请勿外传!
March 06, 2011
The other reason to beware ExternalInterface.call()
Adobe Flash has a function called ExternalInterface.call(...), which implements a JavaScript bridge to the hosting page. It takes two parameters: the first one is the name of the JavaScript function to call. The second one is a string to pass to this function.
It is understood that the first parameter should not be attacker-controlled (of course, mistakes happen :-). It is also understood that there is no inherent harm in putting user input in the second parameter, if the callback function itself is not behaving stupidly; in fact, Adobe documentation gives an example that follows this very pattern:
...
ExternalInterface.call("sendToJavaScript", input.text);
...
Such a call would be translated to an eval(...) statement injected on the embedding page. This statement looks roughly the following way:
try {
__flash__toXML(sendToJavaScript, "value of input.text"));
} catch (e) {
"<undefined/>";
}
When writing the supporting code behind this call, the authors remembered to use backslash escaping when outputting the second parameter: hello"world becomes hello\"world. Unfortunately, they overlooked the need to escape any stray backslash characters, too.
So, try to figure out what happens if the value of input.text is set to the following string:
Hello world!\"+alert(1)); } catch(e) {} //
I reported this problem to Adobe in March 2010. In March 2011, after following up, I received the following response:
"We have not made any change to this behavior for backwards compatibility reasons."
Caveat emptor :-)
解决时发现这个xss是攻击者利用了Adobe的一个已知漏洞,我们简称之为ExternalInterface.call 注入,此漏洞于2010.03已经被report给Adobe了,但是被Adobe拒绝修复,官方回复是: "We have not made any change to this behavior for backwards compatibility reasons." 详细可以参考:http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html 简单来说,Adobe flash里提供了一个调用外部js的方法 ExternalInterface.call(...),此方法有两个参数,第一个参数是要调用的js函数名,第二个参数是传递给这个函数的参数。这个call方法使用了eval实现函数的调用,最后生成的代码有一段是: try { __flash__toXML(js_function, "params"));} catch (e) { ""; } 很明显,参数params里面不能有“"”,以防止try块里面的函数调用被破坏,Adobe的开发人员也注意到了这一点,所以他们会转义掉“"”。 例如,params如果是xxx"yy,那么会转成xxx\"yy。 但是,他们忘了转义“\”,所以如果params是xxx\"yy,那么最后得到的是xxx\\"yy。 注入漏洞就此产生。 攻击者可以构造这样的params来进行xss攻击: 1:\",alert(1)));}catch(e){}// 2:\"))}catch(e){alert(2)}// 经由Adobe eval生成的js代码则大致如下: try { __flash__toXML(js_function("\\",alert(1)));}catch(e){}//")) ; } catch (e) { ""; } try { __flash__toXML(js_function("\\"))}catch(e){alert(2)}//")) ; } catch (e) { ""; } 可以看到,如果你在flash as代码里使用了 flash.external.ExternalInterface.call (),并且直接使用用户输入作为第二个参数的话,那么你就存在上面论述的xss风险。 我们建议的修复方案是,对第二个参数做限制,使用前对用户输入进行过滤,一般来说,过滤掉\、/这样的特殊字符即可,具体可由实际需要而定。也可以不允许使用用户输入作为第二个参数。seanzhu,本内容来自腾讯内部分享,请勿外传!
发表评论
-
九宫切割
2013-12-30 19:52 535function reslice():void { ... -
fp flash.ocx npswf32
2013-11-18 15:02 422fp flash.ocx npswf32 -
allowDomain
2013-11-13 10:28 504allowDomain xss 如:加载a.qq.com/a ... -
fileReference && bmp
2013-10-11 15:20 7631:当加载一个记事本修改成jpg的文件的时候. fileRe ... -
wup 解析
2013-09-29 11:33 485大于14后边要用f等来作为占位符,紧跟类型,然后才是正真的ta ... -
正则表达式
2013-07-30 22:12 568_bgUrl = _bgUrl.replace(/^http ... -
面试题
2013-07-29 22:37 6481:为什么fp渲染位图比矢量图快? 2:为什么fp需要设 ... -
ioError 和服务器不存在
2013-06-07 12:14 0ioError 和服务器不存在 区别 -
嵌入字体
2013-04-26 18:48 622CFF(压缩字体格式) package { im ... -
TextField中运用setTextFormat()方法和defaultTextFormat的区别
2013-04-26 10:47 1453备忘下: 在使用TextFormat类来对TextFiel ... -
flash socket 连接顺序
2013-04-15 16:23 5871、首先检查服务器843端口是否有安全策略 2、如果843 ... -
RegExp.exec遇到的问题
2012-07-18 18:33 768const _reg:RegExp = new RegE ... -
播放器支持的长宽(出自于api的cacheAsBitmap)
2011-08-31 19:58 703位图过大。在 AIR 1.5 和 Flash Player 1 ... -
偷懒使用try catch的悲剧啊
2011-05-19 20:22 765/*try { parseAssets(res ... -
mark
2011-03-15 18:19 684*********************** 1:脏矩形 ... -
fp11 不一样的体验啊
2011-03-06 23:32 727http://tech.weiphone.com/2011-0 ... -
azoth与alchemy
2011-01-22 15:31 781Azoth is a Windows console (Win ... -
flash 版本工具地址
2010-12-26 13:04 587http://appimg.qq.com/flashver.h ... -
一个文档类访问不到舞台上元件的处理
2010-12-23 12:48 931方法1:在ActionScript版本选择后面的“设置...” ... -
一个优秀的ActionScript程序员应该具备的特殊技能(转)
2010-11-30 12:54 777除了一些基本的OOP思想之外,我认为一个优秀的ActionSc ...
相关推荐
console.log xss的各种变体
"xss.js.zip"是一个专注于防止XSS攻击的JavaScript模块,它通过严格的输入过滤和白名单策略来确保用户提交的内容不会引入潜在的恶意代码。 首先,"xss.js"的核心功能在于提供了一套完整的输入过滤机制。这个模块会...
教主Kali与Python黑客.6.WEB攻击.3.XSS
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...
在Typora 0.9.67中存在一个XSS漏洞,该漏洞会导致远程执行代码。
Web 应用安全:href 属性与 src 属性的 XSS(实验) 在 Web 应用安全中,跨站脚本攻击(Cross-Site Scripting,XSS)是一种常见的攻击方式,攻击者可以通过 inject 恶意脚本到 Web 页面中,从而盗取用户敏感信息或...
反射型XSS发生在用户点击一个包含恶意脚本的链接时,存储型XSS则是恶意脚本被持久化存储在服务器上,当其他用户访问这些数据时触发,而DOM型XSS则涉及到了JavaScript对DOM(Document Object Model)的动态修改。...
XSS(Cross-site scripting)攻击是一种常见的网络安全威胁,它利用了网站对用户输入的不当处理,使得攻击者能够注入恶意脚本,进而控制或者窃取用户的浏览器数据。防止XSS攻击是保护Web应用安全的重要一环,对于...
360提示[严重]Ecshop会员中心XSS漏洞修复.txt 360提示[严重]Ecshop会员中心XSS漏洞修复.txt 360提示[严重]Ecshop会员中心XSS漏洞修复.txt
**XSS(跨站脚本攻击)基础知识** XSS,全称为Cross-Site Scripting,是一种常见的网络安全漏洞,主要发生在Web应用中。攻击者通过注入恶意脚本到网页上,当用户浏览这些网页时,恶意脚本会在用户的浏览器中执行,...
XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的网络安全问题,它发生在攻击者通过在网页中注入恶意脚本,使得用户在不知情的情况下执行这些脚本,从而盗取用户数据或者控制用户浏览器的行为。XSS攻击主要分为...
*swfUpload/Flash/swfupload.swf?movieName=aaa"])}catch(e)...*解决swfupload-xss注入,自己项目中遇到的,已经修改 亲测通过 *将文件中的swf文件替换掉项目中的swf文件 *将swfupload.as文件替换掉项目中的as文件 即可
**XSS注入详解** XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见的Web应用程序安全漏洞。它允许攻击者在用户浏览器上执行恶意脚本,从而获取敏感信息、操控用户行为或进行钓鱼攻击。`xss-labs-master....
XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的网络安全问题,尤其是在Web前端开发中尤为突出。XSS攻击允许攻击者在用户浏览器上执行恶意脚本,从而窃取用户数据、操纵用户界面或者执行其他有害操作。以下...
原理过程 Springboot中会使用FilterRegistrationBean来注册Filter,Filter是Servlet规范里面的,属于容器范围,Springboot中没有web.xml,那Springboot中,不用管Filter是如何交给Ser...SpringBoot整合XssFilter,...
xss攻击处理的几种方式
50.存储XSS.mp4 51.反射XSS.mp4 52.domxss.mp4 53.XXSSProtection.mp4 54.CRLF+XSS.mp4 55.xss修补.mp4 56.闭合XSS.mp4 57.搭建XSS平台.mp4 3.csrfxss蠕虫ssrfxxe 58.了解CSRFCSRF攻击.mp4 59.csrf漏洞修补.mp4 60....
基于JS的XSS扫描器——XSS Rays. 最近The Spanner发布了一个名为XSS Rays的 XSS漏洞扫描器。这tool有点意思,是使用JS写的,JS遍历目标的link、form,然后构造测试用例去测试,可以发现DOM的XSS(当然是在测试用例打...
XSS(Cross-Site Scripting)是一种常见的网络安全漏洞,它允许攻击者在用户浏览器中注入恶意脚本。这个“xss-labs.zip”文件显然是一个专门为学习和理解XSS漏洞而设计的实践平台,包含了20个具有不同XSS特征的网页...
7. FlashXss入门和进阶:讨论了如何利用Flash组件的API函数navigateToURL和ExternalInterface.call进行XSS攻击。 8. XSS过滤器绕过:介绍了在已有的XSS过滤器保护下,攻击者可能采取的绕过技术,包括通用绕过和更为...