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

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

缺陷编号:wooyun-2014-051687

漏洞标题:PHPMYWIND sql 一枚 无视GPC

相关厂商:phpmywind.com

漏洞作者: ′雨。

提交时间:2014-02-22 18:20

修复时间:2014-05-23 18:21

公开时间:2014-05-23 18:21

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-02-22: 细节已通知厂商并且等待厂商处理中
2014-03-03: 厂商已经确认,细节仅向厂商公开
2014-03-06: 细节向第三方安全合作伙伴开放
2014-04-27: 细节向核心白帽子及相关领域专家公开
2014-05-07: 细节向普通白帽子公开
2014-05-17: 细节向实习白帽子公开
2014-05-23: 细节向公众公开

简要描述:

今天又去重新看了看phpmywind
在官网上下的 版本还是4.6.6
无需登录 无需单引号。

详细说明:

在order.php中

if(empty($_COOKIE['shoppingcart']))
{
header('location:shoppingcart.php');
exit();
}
//不允许游客下单跳转登陆
if(empty($_COOKIE['username']))
{
header('location:member.php?c=login');
exit();
}


让这两个不为空就好。

$action    = isset($action)    ? $action    : '';
$datagroup = isset($datagroup) ? $datagroup : '';
$level = isset($level) ? $level : '';
$v = isset($areaval) ? $areaval : '0';
//获取级联
if($action == 'getarea')
{
$str = '<option value="-1">--</option>';
$sql = "SELECT * FROM `#@__cascadedata` WHERE level=$level And ";
if($v == 0)
$sql .= "datagroup='$datagroup'";
else if($v % 500 == 0)
$sql .= "datagroup='$datagroup' AND datavalue>$v AND datavalue<".($v + 500);
else
$sql .= "datavalue LIKE '$v.%%%' AND datagroup='$datagroup'";

$sql .= " ORDER BY orderid ASC, datavalue ASC";
$dosql->Execute($sql);


什么$level v啊 都是可控的 但是会被转义。
观察这个语句。、
else if($v % 500 == 0)
$sql .= "datagroup='$datagroup' AND datavalue>$v AND datavalue<".($v + 500);
只要满足这个 可以发现 v是没有单引号的。 所以就可以持续注入了。
但是内置80sec的ids 就是dede那个
不过已经被绕过了。
@`'` 但是这个单引号会被转义。 我添加一个这个还是没绕过
然后再在结尾又添加了一个 然后绕过成功。
然后构造一下语句
注入成功。

漏洞证明:

_)(05V$`XNQ(AFX`S[T`YKX.jpg


注入成功 有图 有真相。

修复方案:

求20分.
求包养。
求过滤。

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-03-03 13:40

厂商回复:

感谢提交漏洞

最新状态:

暂无