php上传程序出现漏洞,引发的服务器安全问题

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/68/ ]

最近公司的服务器又被入侵了,上次被入侵,是两个月前的事,当时虽然把恶意添加的PHP代码都找了出来,并做了处理,但就是没找到入侵的线索,只好先把服务器的密码改了,ssh服务的端口也换了。本以为没事了,然而就在前几天晚上,又发现服务器被挂上了赌博的广告。

最近公司的服务器又被入侵了,上次被入侵,是两个月前的事,当时虽然把恶意添加的PHP代码都找了出来,并做了处理,但就是没找到入侵的线索,只好先把服务器的密码改了,ssh服务的端口也换了。本以为没事了,然而就在前几天晚上,又发现服务器被挂上了赌博的广告。

服务器上运行的项目是用PHP语言开发的,然而这个项目的编码很不规范,代码一开始看起来有点MVC模式的意思,但是程序越写到后边,就很随意的把代码写在了看起来能正常运行的地方,导致了代码的臃肿。最关键的是没有一点开发文档,很难维护。直到服务器再次被入侵,才明白,为什么项目的“创始人”都放弃了自己写的代码,跳到了别家公司。

为了找出入侵的原因,我把注意力集中在这被人抛弃的PHP程序上。经过仔细排查,我发现了一个很严重的问题,这个漏洞,可以让恶意用户上传任意文件!

大致说明一下原理:原本是用来接收上传图片的PHP处理程序,就是因为没有在服务器端判断上传文件的类型,导致可以通过特殊手段绕过前端的限制,往服务器上传任意类型的文件!

换个角度,我要是入侵者,我会通过这个漏洞,上传包含如下代码的PHP文件

<?php
eval($_GET['str']);

接下来就可以通过这个PHP文件,执行任意的代码了,很恐怖的。

再加上当初搭建这个服务器的同事,给PHP进程分配的权限很不合理,所以,我真不知道是应该感谢入侵者的手下留情,还是应该反思这个项目的今生来世?

    评论:

    1. 暂无评论...
    2. 我来说两句:

        切换  

      磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

        切换  

      磨途歌随机验证码