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

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

缺陷编号:wooyun-2015-0119999

漏洞标题:74cms三处sql注入漏洞

相关厂商:74c,s.com

漏洞作者: answer

提交时间:2015-06-12 15:40

修复时间:2015-09-15 15:43

公开时间:2015-09-15 15:43

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-12: 细节已通知厂商并且等待厂商处理中
2015-06-17: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-08-11: 细节向核心白帽子及相关领域专家公开
2015-08-21: 细节向普通白帽子公开
2015-08-31: 细节向实习白帽子公开
2015-09-15: 细节向公众公开

简要描述:

代码审计第三发

详细说明:

看代码
include/fun_company.php 963-968行

function action_user_setmeal($uid,$action)
{
global $db;
$sql="update ".table('members_setmeal')." set `".$action."`=".$action."-1 WHERE uid=".intval($uid)." AND effective=1 LIMIT 1";
return $db->query($sql);
}


可以看到$action未做处理就进入SQL语句了。下面看看哪些地方调用了action_user_setmeal这个函数
有以下这些文件

1.png


其中我划线的文件,变量就是我们可控的。下面看看那三个文件
1.plus/ajax_get_promotion.php 263-264行

$user_pname=trim($_GET['pro_name']);
action_user_setmeal($_SESSION['uid'],$user_pname); //更新套餐中相


可看到$user_pname来自用户传过去pro_name参数,而且并未做处理,就进入了action_user_setmeal 函数,所以造成注入。
2.user/company/company_ajax.php 266-267行
3.user/company/company_promotion.php 262-263行
这两处和第一处一样,代码就不贴了。
下面证明

漏洞证明:

我们用第二处来证明,因为这一出,更直观。
首先注明:需要后台的运营模式是套餐模式。(虽然默认的不是,但是总会用网站的是需要第二种模式的。)

2.png


1.注册一个企业账号
2.发布一个职位
3.来到推广的地方

4.png


可任意点击红框内的一个按钮,这里拿置顶来测试。
点击置顶之后,截包,我划红线的地方就是可控的参数

8.png


看看SQL语句监控

6.png


完美执行,这里我们就可以该自己的用户类型,变成高级会员 哈哈哈。
因为有waf,绕不过,所以只能用布尔盲注。
所以找了找页面变化的地方。
加载payload之前的

7.png


加了payload之后的是

9.png


免费会员就成了我们提交的34了,此处就可以作为布尔盲注判断的地方,进行注入。(可以写脚本跑的)。
至于payload中的uid参数,抓个包就能看见是多少了
其他两处都差不多

修复方案:

你懂的额

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


漏洞回应

厂商回应:

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

忽略时间:2015-09-15 15:43

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无