我们有一个正在运行WordPress和Magento的服务器,并且在同一服务器上运行大约5个域。
黑客通过数百个位置的所有文件系统上传了这些恶意脚本。这是一个噩梦在这个阶段,我仍然无法找到入口点。
我只是注意到我们的AJAX图像上传字段之一允许我将PHP文件重命名为。jpg并将文件上传到服务器。
当我在浏览器中访问PHP .jpg文件时,它提供了一个破碎的图像。
所以我不确定黑客是否能够在这里上传PHP文件并作为PHP文件访问它,或者如果它只是作为一个破碎的图像,就像它在浏览器中为我做的那样?
你知道这会造成多大的安全威胁吗?有没有可能是我的入口黑客从这里获得了初始访问权限?或者当我在浏览器中加载时,它作为一个破碎的图像而不是处理PHP文件,这是否意味着它有点安全?
任何帮助都很感激,谢谢你
如果没有实际检查,很难说黑客是否做了什么。
关于如何保护未来的图像上传,我建议使用像PHP http://php.net/manual/en/function.finfo-file.php中的finfo
这样的函数来查找文件是否属于任何批准的mime类型,顺便说一句,您应该限制到只有有限类型的图像类型。
你也应该考虑不允许使用原始图像,而是一个调整后的版本,以避免用户最终下载巨大的图像或类似的东西。
答:
通常(取决于web服务器配置)如果PHP文件有不同的扩展名,没有人可以执行它,他们可以上传它,但他们不能运行它,至少在任何常见配置下。
所以,理论上你不应该担心这个具体的事情,但要担心有人花时间试图入侵你,这意味着你应该花时间保护网站和服务器。
我建议您搜索有关如何保护您的特定服务器和配置的文章,并确保您将软件,操作系统等更新到最新的安全更新。
能够上传扩展名为.jpeg但PHP内容的文件本身并不是一个漏洞。然而:
-
如果攻击者在整个文件系统中写入,您可能有一个带有目录遍历漏洞的上传函数,需要修复,理想情况下,不让上传者选择自己的文件名;
-
当您让用户从与站点相同的主机名上传要提供的内容时,跨站点脚本还存在其他问题;
-
这可能是值得检查的上传文件使用
getimagesize()
,以确保你有一个JPEG文件和非荒谬的尺寸,但考虑到"变色龙"文件的可能性,可以解释为多种不同的类型,这并不一定是无滴不漏的,所以这是一个"纵深防御"的措施在最好的
让web服务器运行。jpeg文件作为PHP代码可以通过以下方式实现:
-
能够写入服务器配置,将.jpeg与PHP处理程序相关联。通常这种情况会发生,因为另一个易受攻击的文件上传功能允许攻击者在同一目录下编写
.htaccess
文件供Apache拾取。 -
一个有本地文件包含安全漏洞的PHP脚本。通常是这样的代码:
包括(包括/$变量);
攻击者可以将内容放入$variable
,指向某物。jpeg。一般来说,include
/require
不应该与变量一起使用,除非这些变量被明确地限制为几个已知的好值。
另一个可能的可能性,如果你有加载恶意页面上传到你的服务器是你的服务器登录被泄露。