漏洞概要
关注数(24)
关注此漏洞
漏洞标题:ThinkPHP某处设计缺陷可导致getshell
提交时间:2015-03-16 23:07
修复时间:2015-06-15 17:19
公开时间:2015-06-15 17:19
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:10
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情
披露状态:
2015-03-16: 细节已通知厂商并且等待厂商处理中
2015-03-17: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-05-11: 细节向核心白帽子及相关领域专家公开
2015-05-21: 细节向普通白帽子公开
2015-05-31: 细节向实习白帽子公开
2015-06-15: 细节向公众公开
简要描述:
ThinkPHP某处设计缺陷可导致getshell
详细说明:
thinkphp中有个缓存函数S,在使用文件方式的缓存的时候,程序会有写出文件的操作。由于没做好过滤导致了代码执行。
判断缓存不存在则写出缓存文件。在使用文件缓存的时候,由于未对缓存文件设置访问权限。导致代码执行。
浏览器中访问
缓存写出成功,然后访问应用目录下的runtime/temp目录,文件名为key的32位md5.
成功执行phpinfo
漏洞证明:
thinkphp中有个缓存函数S,在使用文件方式的缓存的时候,程序会有写出文件的操作。由于没做好过滤导致了代码执行。
判断缓存不存在则写出缓存文件。在使用文件缓存的时候,由于未对缓存文件设置访问权限。导致代码执行。
浏览器中访问
缓存写出成功,然后访问应用目录下的runtime/temp目录,文件名为key的32位md5.
成功执行phpinfo
修复方案:
版权声明:转载请注明来源 zcy@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-06-15 17:19
厂商回复:
最新的版本支持设置 DATA_CACHE_KEY 参数后,可以避免文件名被猜测到,而且官方的安全部署建议是部署到非WEB访问目录,再说runtime目录也是可以定义的。
最新状态:
暂无
漏洞评价:
评论
-
2015-03-16 23:12 |
牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )
-
2015-03-17 07:57 |
bey0nd ( 普通白帽子 | Rank:895 漏洞数:142 | 相忘于江湖,不如相濡以沫)
-
2015-03-17 08:10 |
啊L川 ( 普通白帽子 | Rank:195 漏洞数:39 | 菜鸟 ,菜渣, 菜呀!)
-
2015-03-17 08:14 |
GreenVine ( 路人 | Rank:30 漏洞数:3 | Blooming like a flower!)
-
2015-03-17 09:24 |
hkAssassin ( 普通白帽子 | Rank:358 漏洞数:66 | 我是一只毛毛虫。)
-
2015-03-17 10:00 |
番茄炒蛋 ( 普通白帽子 | Rank:106 漏洞数:31 | test)
-
2015-03-17 17:22 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
-
2015-03-17 17:23 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
-
2015-03-17 22:06 |
上官元恒 ( 路人 | Rank:3 漏洞数:3 | 屌丝程序员一枚,上能修电脑,下能装系统。)
-
2015-04-09 15:29 |
Jonasen ( 实习白帽子 | Rank:64 漏洞数:9 | have no)
-
2015-04-15 08:59 |
带我玩 ( 路人 | Rank:12 漏洞数:6 | 带我玩)
-
2015-04-30 22:59 |
J4nker ( 普通白帽子 | Rank:136 漏洞数:35 | I have a dream)
叉,其实这个漏洞不算蛮严重漏洞的。有过滤的。而且很鸡肋
-
2015-04-30 23:02 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
-
2015-06-16 00:49 |
Q1NG ( 实习白帽子 | Rank:93 漏洞数:16 | 临 兵 斗 者 皆 阵 列 前 行 !)
-
2015-06-16 06:26 |
Me_Fortune ( 普通白帽子 | Rank:209 漏洞数:71 | I'm Me_Fortune)
-
2015-06-16 13:42 |
xsser_w ( 普通白帽子 | Rank:112 漏洞数:33 | 哎)
不建议这样的漏洞 归咎于厂商。。开发要是写出SQL注入我还能报给php官方团队让他们改进PHP呢
-
2015-06-17 00:55 |
Jumbo ( 普通白帽子 | Rank:111 漏洞数:29 | 猫 - http://www.chinabaiker.com)
-
2015-06-17 09:36 |
这只猪 ( 路人 | Rank:5 漏洞数:2 | 南无阿弥陀佛!)
-
2015-06-17 12:54 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
-
2015-06-17 22:09 |
ca1n ( 普通白帽子 | Rank:100 漏洞数:22 | not yet)
-
2015-09-22 19:12 |
wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)
每次生成的缓存的内容都可以操纵?还是说必须要按你这个格式去写才可以操纵内容?如果是要按你这样写才可以的话……那无异于一个留后门的手法而已吧,不会有人特别这样去写代码吧?
-
2015-09-22 19:49 |
roker ( 普通白帽子 | Rank:357 漏洞数:108 )
@wefgod 总之我是没见过有cms这么写的。。S('x',$_GET['w']);
-
2015-09-23 02:56 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
@wefgod 入库没过滤的话。查询出来在写入缓存不就可以了吗。