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

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

缺陷编号:wooyun-2014-051360

漏洞标题:PHPMyWind最新版SQL注射#1

相关厂商:phpmywind.com

漏洞作者: terrying

提交时间:2014-02-20 13:08

修复时间:2014-05-18 13:09

公开时间:2014-05-18 13:09

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-02-20: 细节已通知厂商并且等待厂商处理中
2014-03-02: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-04-26: 细节向核心白帽子及相关领域专家公开
2014-05-06: 细节向普通白帽子公开
2014-05-16: 细节向实习白帽子公开
2014-05-18: 细节向公众公开

简要描述:

通用型软件有奖励吗?怎么在重点应用跟一般应用都找不到PHPMyWind???

详细说明:

在官网http://www.phpmywind.com/看了下,最新版是4.6.6,更新时间是13/11/28。去年知道创宇曾发布PHPMyWind三个SQL注入补丁→http://bbs.anquan.org/forum.php?mod=viewthread&tid=26575
本次报告的漏洞文件是order.php,上面的补丁包修复了order.php的31行的level,但是在374行的id却置之不理,因此漏洞产生了。

漏洞证明:

下载最新版PHPMyWind v4.6.6,找到order.php的GetTopType函数。

function GetTopType($tbname='', $tbname2='', $colname='', $id=0, $i=0)
{
global $dosql;
if(isset($_GET['id']))
{
$r = $dosql->GetOne("SELECT `$colname` FROM `$tbname2` WHERE `id`=".$_GET['id']);
}
$dosql->Execute("SELECT * FROM `$tbname` ORDER BY `orderid` ASC",$id);
$i++;
while($row = $dosql->GetArray($id))
{
$selected = '';
if(isset($r) && is_array($r))
{
if($row['id'] == $r["$colname"])
$selected = 'selected="selected"';
}
echo '<option value="'.$row['id'].'"'.$selected.'>'.$row["classname"].'</option>';
}
}


一眼就看到$id直接扔数据库了,产生注入。
于是访问order.php这个页面,得先添加商品到购物车才能够GetToyType这个函数。

q.jpg


提交访问order.php同时监控Mysql执行情况,可以发现顺利插入。
http://127.0.0.1/PHPMyWind/order.php?id=2 and 3=2

w.jpg


但是整套程序都是有检测SQL语句合法性的,不幸的是早已被大牛们无视了,故提交测试可得:

e.jpg


修复方案:

intval

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-05-18 13:09

厂商回复:

最新状态:

暂无