当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-085948

漏洞标题:PHPMyWind绕过过滤SQL注入(限定条件)

相关厂商:phpmywind.com

漏洞作者: agnes0621

提交时间:2014-12-08 14:13

修复时间:2015-03-08 14:14

公开时间:2015-03-08 14:14

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-08: 细节已通知厂商并且等待厂商处理中
2014-12-08: 厂商已经确认,细节仅向厂商公开
2014-12-11: 细节向第三方安全合作伙伴开放
2015-02-01: 细节向核心白帽子及相关领域专家公开
2015-02-11: 细节向普通白帽子公开
2015-02-21: 细节向实习白帽子公开
2015-03-08: 细节向公众公开

简要描述:

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

<?php
if(!empty($keyword))
{
$keyword = htmlspecialchars($keyword);
$sql = "SELECT * FROM `#@__infoimg` WHERE (classid=$cid OR parentstr LIKE '%,$cid,%') AND title LIKE '%$keyword%' AND delstate='' AND checkinfo=true ORDER BY orderid DESC";//这里拼sql
}
else
{
$sql = "SELECT * FROM `#@__infoimg` WHERE (classid=$cid OR parentstr LIKE '%,$cid,%') AND delstate='' AND checkinfo=true ORDER BY orderid DESC";
}
$dopage->GetPage($sql,9);
while($row = $dosql->GetArray())
{
if($row['picurl'] != '') $picurl = $row['picurl'];
else $picurl = 'templates/default/images/nofoundpic.gif';

if($row['linkurl']=='' and $cfg_isreurl!='Y') $gourl = 'productshow.php?cid='.$row['classid'].'&id='.$row['id'];
else if($cfg_isreurl=='Y') $gourl = 'productshow-'.$row['classid'].'-'.$row['id'].'-1.html';
else $gourl = $row['linkurl'];
?>


这里我们添加一个cookie名字叫GLOBALS[keyword]

Screenshot from 2014-12-05 10:17:14.png


打印一下$keyword:

Screenshot from 2014-12-05 10:18:38.png


绕过了过滤,引入了'
payload:

Screenshot from 2014-12-05 10:22:01.png


修复方案:

全局过滤函数中检查cookie

版权声明:转载请注明来源 agnes0621@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-12-08 16:07

厂商回复:

感谢提交漏洞

最新状态:

暂无