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

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

缺陷编号:
漏洞标题:
PHPMyWind最新版SQL注射#1
相关厂商:
漏洞作者:
提交时间:
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

厂商回复:

最新状态:

暂无