首页 > 网络安全 > javascript事件解码引起的问题

javascript事件解码引起的问题

2010年1月22日 发表评论 阅读评论

在javascript 事件中,当参数是经过编码的值,javascript 会将期解码进行执行,如下代码。

<a href=# onmousemove="&#97;&#108;&#101;&#114;&#116;&#40;&#47;&#119;&#111;&#121;&#105;&#103;&#117;&#105;&#47;&#41;">xxx</a>

另外,由于 javascript 支持 函数参数可以是 函数特性,如下代码:

<script>x( alert(1) );</script>

利用两种特性,就可以引发如下的安全问题:

<a href="#" onmousemove="xxx('&#39;+alert(1)+&#39;',44);return false;">woyigui</a>

当 javascript 代码经过编码带入页面,可以利用事件执行时解码的特性对单引号进行闭合,然后利用 函数参数 可以是 函数的特性进行代码。该方法不能直接用于 《script》内,比如如下代码是不能执行的:

<script>
xxx('&#39;+alert(1)+&#39;');
</script>

由于如上问题,在特定应用环境中,处理与解决 DOM 型XSS 的时候,将更具有挑战。解决方法就是在解码后,再次使用 \ 符号对其处理,但是考虑到特殊应用可能有所影响。

转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:javascript事件解码引起的问题
本文地址:http://www.woyigui.cn/2010/01/22/javascript-decode-xss/

分类: 网络安全 标签:
  1. 2010年1月24日13:09 | #1

    XSS有时可以借鉴下!

    [回复]

  2. kxlzx
    2010年1月28日02:37 | #2

    在js执行的地方,要做jsencode,而不是htmlEncode等编码。

    [回复]

    woyigui 回复:

    是呀,就是出在未正确的处理上。

    [回复]

  3. 2010年1月30日14:01 | #3

    是可以借鉴一下的

    [回复]

  4. xixi
    2010年2月6日10:01 | #4

    偶像。。。看官快献菊。。

    [回复]

  5. 2010年2月24日07:52 | #5

    借鉴了哦。。。。

    [回复]

  6. 2010年3月1日04:46 | #6

    学习了

    [回复]

  7. Ivan
    2010年3月15日12:19 | #7

    经典

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*