str_replace函数绕过GPC的例子

  • A+
所属分类:WooYun-Zone

Ecshop支付模块注入那个漏洞

<?php

$test=str_replace($_GET['a'],'',$_GET['b']);

echo $test;

?>

test.php?a=&b=%00′

\0\'

把0给替掉

test.php?a=0&b=%00'

\\'

  1. 1#

    xsser | 2013-02-20 12:59

    茄子大神发现的啊?

  2. 2#

    rayh4c | 2013-02-20 13:11

    @xsser …. 微博上看人说,就试了下。

  3. 3#

    livers (如梦似幻) | 2013-02-20 13:44

    我更认为这算是代码逻辑问题。

  4. 4#

    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2013-02-20 14:02

    没见过这样替换的

  5. 5#

    Seay (x) | 2013-02-20 16:17

    具体漏洞分析http://www.cnseay.com/archives/2237  昨晚写的

  6. 6#

    Xhm1n9 | 2013-02-20 16:19

    这种写法有点奇葩

  7. 7#

    magerx (为什么要去争论。) | 2013-02-20 16:36

    \0 真不错。

  8. 8#

    猪猪侠 | 2013-02-20 17:02

    http://t.qq.com/hi_heige

  9. 9#

    请叫我大神 | 2013-02-20 18:01

    @rayh4c 又见茄子

  10. 10#

    horseluke (微碌) | 2013-02-20 18:04

    @Seay 话说,在respond()之前,$_GET有没有作安全处理?
    如果有的话,Taint扩展(https://github.com/laruence/php-taint )估计就没法检出来了…
    同意3#说的代码逻辑问题