80后爆nginx 0day漏洞,上传图片可入侵100万服务器
国内顶级安全团队80sec于5.20日下午6点发布了一个关于nginx的漏洞通告,由于该漏洞的存在,使用nginx+php组建的网站只要允许上传图片就可能被黑客入侵,直到5.21日凌晨,nginx尚未发布修复该漏洞的补丁;已经有一些网站被黑了,管理员速修复!
根据Netcraft的统计,直到2010年4月,全球一共有1300万台服务器运行着nginx程序;非常保守的估计,其中至少有600万台服务器运行着nginx并启用了php支持;继续保守的估计,其中有1/6,也就是100万台服务器允许用户上传图片。有图有真相。
没错,重申一次,由于nginx有漏洞,这100万台服务器可能通过上传图片的方法被黑客轻易的植入木马。植入木马的过程也非常简单,就是把木马改成图片上传就是了,由于危害非常大,就不说细节了。有兴趣的请访问 http://www.80sec.com/nginx-securit.html
说了那么多,我想大家对80sec这个顶级安全团队比较好奇吧,素包子简单介绍一下。
80sec团队由一群年轻、充满活力、充满体力、充满激情、富有创造力的未婚dota男组成,他们均在各大互联网公司从事信息安全工作,他们的口号是know it then hack it,素包子非常认同这个观点:“我们只要非常熟悉一个事物,就有可能客观的发现它的不足之处,同时我们也能的发现该事物的优点”。
80sec的意思是“80端口的安全”,也就是“web安全”;同时由于该团队成员都是80后的年轻人,我们也可以理解为“80后安全”;另外由于sec的发音是se ke,我们还可以理解为“80后色客”、“80后摄客”或“80后S客”,我们对80sec的理解仅受限于想象力。
下面介绍一下他们的丰功伟绩,他们曾发现IIS、IE、FireFox、Maxthon、世界之窗、PHPWind、DeDeCMS、QQ mail、QuarkMail、EXTMail等软件的漏洞,可见硕果累累。
既然介绍了80sec,就不得不介绍另外一个非常专注WEB安全的顶级安全团队80vul,该团队同样也是由80后的男童鞋组成(90后表示压力很大:p),他们也发现了大量WEB APP的安全漏洞,例如IE、Gmail、wordpress、PHPWind、DISCUZ、MYBB等。
看到这里,想必大家心里都有那么点遗憾,那就是为何没有80后女黑客(我不歧视伪娘,但我必须说明不是伪娘),我也有相同的遗憾。
最后发一个小道消息,据说黑客已经在行动了;安全人员、系统管理人员、行动起来吧,赶紧修复该漏洞;最好不要有侥幸心理,否则下一个被黑客入侵的可能就是你的网站。根据80sec安全公告的描述,临时修复方法如下,可3选其一。
1、设置php.ini的cgi.fix_pathinfo为0,重启php。最方便,但修改设置的影响需要自己评估。
2、给nginx的vhost配置添加如下内容,重启nginx。vhost较少的情况下也很方便。
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
3、禁止上传目录解释PHP程序。不需要动webserver,如果vhost和服务器较多,短期内难度急剧上升;建议在vhost和服务器较少的情况下采用。
估计今天黑客和管理员的交互会达到一个小高潮,如果希望进一步的了解相关内幕,请关注素包子的网站 http://baoz.net/nginx-0day-by-80sec/
小道消息发布台:
5.20
若干大型企业网站已经沦陷,包括SNS 游戏 电子商务。
5.21 10:20
听说某黑客团队已经写好了扫描器,已经开发出半自动批量工具了
优先从排名大,流量多,pr大的站开始扫描
5.31
金山词霸网站被黑客通过该漏洞入侵并修改首页
包子猜您可能还喜欢下列文章:

给你,5毛拿去
修复了,谢谢
^__^
前段时间用的国外一个空间放点不可解析shell上去时候莫名出现类似问题,已应用,哈哈!
强大,当当网论坛都被干了。
按描述写描述器就是判断前后Content-Type是否一致:)
i 服了 u 笑死偶了
有劲么?扯呢?
这个0day 是否应该算在nginx头上呢 呵呵
现在我也修复了,谢谢
不过我站点排名比较高,如果有人按排名扫描,我肯定已经中了,现在不知道怎么检测异常
“直到5.21日凌晨,nginx尚未发布修复该漏洞的补丁”
明明知道nginx的开发人员还没有回复,就这么大张旗鼓地发布漏洞,到处宣传。
技术往往都不是个问题,只是时间而已,人难在一种精神。
黑客也有精神么?唉,同为80后,说什么好呢。
大哥.弱弱的问下.上传图片,apache可以判断图片是不是有木马?什么系统都可以传图片,如果在图片中挂马,上传应用程序是无法知道这个图片是不是有问题,怎么会和nginx有关系?上传的图片,会有执行权限?可以写的明白吗?
牛哥牛叉。。。唉。。。我要六毛!
根据RFC 2396,path里面包含‘.’是合法的,为什么php要解析为前面文件名?
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
absoluteURI = scheme “:” ( hier_part | opaque_part )
hier_part = ( net_path | abs_path ) [ "?" query ]
abs_path = “/” path_segments
path_segments = segment *( “/” segment )
segment = *pchar *( “;” param )
pchar = unreserved | escaped | “:” | “@” | “&” | “=” | “+” | “$” | “,”
unreserved = alphanum | mark
mark = “-” | “_” | “.” | “!” | “~” | “*” | “‘” | “(” | “)”
应该是已经过了默认期(缓冲期)了。。。一般来说他们发现0DAY后给开发人员写信,之后7-15天的缓冲期过后,这个0DAY就会被发布了。通常情况下是如此的,没什么好说的。
严格意义讲,这玩意应该不能算是nginx的漏洞,是系统管理员安全设置的问题!
根据rfc3875(cgi的标准),
PATH_INFO是可以包含除了CTL的任意字符的,我觉得很奇怪PHP的CGI实现为什么认为’.'是不属于PATH_INFO的,这个我会尝试询问PHP的作者。总之我觉得这个问题可能是PHP的问题,因为Nginx并没有违反协议。
PATH_INFO = “” | ( “/” path )
path = lsegment *( “/” lsegment )
lsegment = *lchar
lchar = any TEXT or CTL except “/”
SCRIPT_NAME是除了‘/’的任意可见字符
SCRIPT_NAME = “” | ( “/” path )
0day时时有,要升级就赶紧了。。
已改正,狂奔跑过
不管怎么说吧,我觉得nginx还是有点问题的。
见识了
php不是可以判断图片头信息么?怎么可以上传。PHP文件呢?如果用了rewrite还有漏洞吗?
php不是可以判断图片头信息么?怎么可以上传。PHP文件呢?如果用了rewrite还有漏洞吗?
确实是php问题
多亏我还没开始用nginx。打算学习一下,听说速度相当的快。
nginx里面的fastcgi_split_path_info应该就可以改掉这个问题,这个称为bug实在有点牵强:
图片上传的路径加上这个配置可能就可以了
location ~ ^(.+\.jpe?g)(.*)$ {
…
fastcgi_split_path_info ^(.+\.jpe?g)(.*)$;
fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
…
}
借nginx之名炒作吧!!!
学习了,赶紧修复它.
漏洞看起来很严重,要利用还得有上传点。
有意思不?你们这群黑客儿,小心被警察树树抓到,做捞捞
厉害~
全是牛淫啊!膜拜了~~~
嗯,确实很厉害。
膜拜之