漏洞作者: agnes0621
PHPMyWind设计缺陷绕过过滤SQL注入
详细说明:
我会在标题里面告诉你们其实是全局变量覆盖吗?需要register_globals=on。 /include/common.inc.php 注册变量的代码:
foreach(array('_GET','_POST') as $_request) { foreach($$_request as $_k => $_v) { if(strlen($_k)>0 && preg_match('#^(GLOBALS|_GET|_POST|_SESSION|_COOKIE)#',$_k)) { exit('不允许请求的变量名!'); } ${$_k} = _RunMagicQuotes($_v); } }
看到这里,懂的人就懂了。代码中匹配了GLOBALS来禁止提交全局变量GLOBALS防止变量覆盖,但是只对$_GET和$_POST进行了检查,因此只要在$_COOKIE中提交即可绕过RunMagicQuotes。
漏洞证明:
注入点可能有很多,举一个例子吧:phpmywind/product.php
这里我们添加一个cookie名字叫GLOBALS[keyword] 打印一下$keyword: 绕过了过滤,引入了' payload:
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论