[安全警告] 一键 php 开发环境暗藏杀机, phpstudy 一键包

2016-02-24 19:53:30 +08:00
 tntsec

昨晚在某群讨论 phpStudy 时,某大牛直说, phpstudy 的 fastcgi 安全性问题,并说了是解析漏洞 a.jpg/1.php

本人也是一方良辰,对于此漏洞也分析过,这个漏洞是 nginx 和 fastCGI 下触发的,由于 phpFPM 默认只解析 php 文件,如果用解析漏洞访问会返回 Access denied ,所以我是没测试过这个漏洞的。

本着以理服人的原则,本人还是对 phpstudy 进行了一下测试,结果自己的脸肿的都不敢摸了。。

phpstudy 刚刚更新, nginx 更新到了 1.9.9 ,增加了 php7 的支持,由于 win10 兼容问题,我这里只能启用 php5.5
当我用 /.php 访问时
我他么尿了。。

解析了,先不惊慌,能跨目录吗?

不惊慌,跨目录怕啥,权限在这不是?
嗯?权限呢??
没错,是当前用户,所有目录畅行无阻

你可能会说,这有啥?别人能访问吗?
能,因为默认监听了所有 IP


触发漏洞的条件也是默认开启的。

你可能疑问,这有啥?
我们设想一下,当你在咖啡厅,愉快的写着 PHP ,然后第二天,你的源码满天飞
这并不可怕,最可怕的是,什么都没发生。
就如同 linux 某编译器后门,多年后才被发现

为什么会发生?
1.默认监听了所有 IP ,内网都可以访问
2.触发漏洞的条件具备
3.fastCGI 权限过高,导致硬盘访问无阻

你必须承认,在你写代码的时候不会过多考虑权限问题,甚至你会用一个 update.php 上传文件,这本身已经足够严重了。

SO ?便捷的危险,复杂的安全,是时候选一个了!

最后可能有人会说,我不是 windows 啊?
那我只能说,我尽力了,但我救不了你

12630 次点击
所在节点    互联网
53 条回复
Citrus
2016-02-24 20:26:40 +08:00
没懂,如果我正在开发的代码完全没有上传接口呢?
niaoren
2016-02-24 20:33:20 +08:00
我记得这个是老问题了, php 官方也提过。

是 nginx 的 fastcgi_split_path_info 和 php 的 fix_pathinfo 不兼容
geeglo
2016-02-24 20:33:40 +08:00
怎么说呢,确实是漏洞,但是应该没人用这个当服务器环境吧。

至于代码泄露,要求这个条件太苛刻了吧。
VmuTargh
2016-02-24 20:37:17 +08:00
@tntsec apache 没挂, lighttpd 也没挂……
orFish
2016-02-24 20:41:28 +08:00
linux 下你也可以配置的很不完全的。。。
raincious
2016-02-24 20:44:18 +08:00
@geeglo

我也是这样想的,“学习”环境嘛,谁敢用来开真服务器。但是有一天我看到了某朋友开了个网站,顺手敲了下 /phpmyadmin ,然后 root/root 进去之后发现还可以 SELECT INTO OUTFILE 。当时我就乐了。
tntsec
2016-02-24 20:48:26 +08:00
@shyling 我救不了你
tntsec
2016-02-24 20:52:38 +08:00
@Citrus 这不是漏洞,这是配置错误
就跟 apache2.2 默认列目录
而 apache2.4 默认不列目录

他只是一个特性,跟 php 特性在一起就触发成漏洞了,解决办法也很简单
但本文仅仅指出开发环境而不是服务器环境
tntsec
2016-02-24 20:56:32 +08:00
特指开发环境
真是因为开发环境才会有人用这种用东西
真是如此才更危险
https://www.baidu.com/s?wd=site%3Awww.wooyun.org+%E5%86%85%E7%BD%91
kn007
2016-02-24 21:00:49 +08:00
不要在公共场所,或 DMZ 主机上用,一般没什么问题。。。
kn007
2016-02-24 21:02:28 +08:00
很多软件都是检测全局:端口(比如 0.0.0.0:80 ),这没办法。本身软件在用户授权和配置上不可能做到那么细,太细有些东西不利于新手调试。要知道,一般工具面向对象是小白。
tntsec
2016-02-24 21:03:19 +08:00
@kn007 如果你这么想,下次你就会想
在公共场所,或 DMZ 主机上用,一般也没什么问题
再下次
被黑一次,也没什么问题
kn007
2016-02-24 21:09:23 +08:00
@tntsec 或许吧,只是我从不在非信任区上网,即便带笔记本,我一般也不联网。。。所以。。。呵呵。。。
你要明白,我并不是否认你说的。

如果这篇帖子能举几个例或新闻,或许更有说服力。

但是工具,你要明白,好用才是硬道理,如果因为安全,关闭某些功能,而小白尝试使用这种功能未果。
你知道的,小白不会承认自己笨自己傻,只会认为你这个工具不好用而已。
所以既然你本身有安全知识,我觉得在用这种第三方工具时,也尽量还是自己配置下为好。

大部分工具还是定义为小白使用,配置其实也是公开可改的,拥有能力和条件的,也可以自行修改,并不矛盾。
tntsec
2016-02-24 21:12:40 +08:00
@kn007 然而,即使我贴出来,上面还有几个看不明白的
maskerTUI
2016-02-24 21:14:00 +08:00
配合上传点来干活的话,确实是个有重大安全隐患的漏洞。
kn007
2016-02-24 21:17:05 +08:00
@tntsec 对,没错,总有比自己低水平的,不是么?
你是就此满足,还是继续探究呢?
我还是强调一下,没有否定你这张帖子。上面这句也只是说继续努力的意思。
个人觉得这些有点老生常谈了,但是不知道有没有倒绷孩的(笑
jacy
2016-02-24 21:30:46 +08:00
正准备说还是不懂的时候突然懂了
楼主你就说 1.jpg 其实是 php 代码扩展名为 jpg ,这下别人就都懂了
xuhaoyangx
2016-02-24 22:07:40 +08:00
老问题了。这个参数默认都是改成 0 ,一般也不用一键,除非快速演示搭建。 Win 一般喜欢用 apache 的一键环境,偶尔会用 nginx 反代下
要有被黑了,才有注意这方面的觉悟,不然一般跟他讲安全,一大批人只会和你呵呵
shyling
2016-02-24 22:32:37 +08:00
@tntsec
lecher
2016-02-24 23:43:29 +08:00
http://www.v2ex.com/t/228961
论站内搜索的重要性。漏洞的原理 2012 年就被发出来了,上面这个链接之前就讨论过原理和解决方案。
楼主用这个标题颇有闭关多年重新发明轮子的感觉。

令人震惊的是,竟然还有那么多的自动配置工具不考虑在配置加上检测脚本类型才执行的处理。反正 Nginx 和 PHP 都不打算就这个交互环境的 bug 做修复了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX