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

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

缺陷编号:wooyun-2014-048454

漏洞标题:phpmywind sql注入二

相关厂商:phpmywind.com

漏洞作者: pandas

提交时间:2014-02-24 11:32

修复时间:2014-04-10 11:32

公开时间:2014-04-10 11:32

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-02-24: 细节已通知厂商并且等待厂商处理中
2014-03-03: 厂商已经确认,细节仅向厂商公开
2014-03-13: 细节向核心白帽子及相关领域专家公开
2014-03-23: 细节向普通白帽子公开
2014-04-02: 细节向实习白帽子公开
2014-04-10: 细节向公众公开

简要描述:

这套程序一个月前读过,发现了一些问题,厂商来注册了,就一并提交给厂商修复吧!希望厂商不要回复我说某创某宇已经联系过你们报告过该漏洞,我想说的是请尊重作者!

详细说明:

这个漏洞我之前在t00ls发过(请不要怀疑我抄袭),因为当时厂商没来乌云,现在厂商终于来了,就提交一下,希望尽快修补。
之前提交的注射一需要登录,这个地方不需要登录

shoppingcart.php 
//初始化参数
$a = isset($a) ? $a : '';
//添加购物车
if($a == 'addshopingcart')
{
//构成选中属性
if(isset($typeid))//同样未做过滤
{
//获取商品属性
$dosql->Execute("SELECT * FROM `#@__goodsattr` WHERE `goodsid`=$typeid");//上面的Execute方法没跟,这里跟一下吧
if($dosql->GetTotalRow() > 0)
...
}
function Execute($sql, $id='me')
{
global $dosql;
if($dosql->isclose)
{
$this->Open(false);
$dosql->isclose = false;
}
if(!empty($sql))
{
$this->SetQuery($sql);
}
else
{
return false;
}
//SQL语句安全检查
if($this->safecheck)
{
$this->CheckSql($this->querystring);//这里CheckSql是80sec的防注入检测函数,就不继续跟了
}
$this->result[$id] = mysql_query($this->querystring, $this->linkid);//这里才进入数据库查询

漏洞证明:

exp见图片中的url:

bbb.jpg

修复方案:

再过滤一下

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2014-03-03 08:15

厂商回复:

该文件的确存在 将typeid 直接带入sql查询的设计,但Execute函数有过滤。报告的最后结果未出现在复测的最新版本中。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-03-03 09:09 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    汗,已经说的很清楚了,你们excute的过滤就是加的80sec的内置防注入么,都已经说明绕过了绕过了,厂商你咋就这么迷信80sec的内置ids?@phpmywind.com @疯狗

  2. 2014-03-05 11:23 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    厂商反复和我站内信说不能复现,实在忍不了就加了他们官网上留的q群进去找到了管理,巴拉巴拉一大堆之后,终于复现成功了。我都感动的要哭了,厂商你也不来说几句?@PHPMyWind

  3. 2014-03-05 11:47 | PHPMyWind(乌云厂商)

    @pandas 非常感谢你的热心帮助,漏洞确实存在。跟MYSQL的安全性也有关系,之前我们在较高安全性的环境里测试没能复现。感谢!