首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >一个网站是如何被一个“隐藏着PHP脚本的恶意编码图像”所攻击的?

一个网站是如何被一个“隐藏着PHP脚本的恶意编码图像”所攻击的?
EN

Stack Overflow用户
提问于 2010-08-30 07:57:35
回答 3查看 15.5K关注 0票数 16

我的广告服务器在周末被黑了。

根据this article的说法,这似乎是一个普遍存在的问题。

里面有些东西让我思考..。

他说,

攻击者利用一次攻击获得了他的服务器的登录权限,然后上传了一个恶意编码的图像,其中包含一个隐藏在其中的PHP脚本。通过查看图像,攻击者强制脚本在服务器上执行

这怎麽可能?它依赖于用GD或类似的方式打开的图像吗?他们会上传一个伪装成图片的脚本,并以某种方式将其包含进来吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-30 08:18:44

它可以像上传一个文件一样简单,比如

代码语言:javascript
复制
GIF89a<?php
echo 'hi';

如果您的上传脚本通过fileinfomime_content_type()测试内容类型,它将被识别为"GIF image data,version89a“,因为GIF89a是将文件标识为gif所需的唯一模式/幻数。

OpenX上传脚本显然保留了建议的文件名,即可以将此“图像”保存为服务器上的foo.php。现在,如果您通过http://hostname/uploaddir/foo.php请求该文件,则该脚本将作为php脚本执行,因为was服务器通常/通常仅通过文件扩展名来确定内容类型

代码语言:javascript
复制
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

然后,php回显前导GIF89a并执行<?php ...code...块。

票数 35
EN

Stack Overflow用户

发布于 2010-08-30 08:09:43

您的服务器正在解析该文件,原因如下。攻击者将PHP放入图像注释中。

您如何验证该文件是否为镜像?如果你只在mime类型上这样做,那么我相信他们可以伪造图像标题并在之后包含任何他们想要的内容。VolkerK has a practical example

在完美的世界里,我不会通过PHP处理任何面向公众的图片,因为我担心会出现这样的问题。

使用服务器直接提供图像;一个好的建议是将这些图像保存到一个目录中,在那里它们可以在没有的情况下被提供。

我想这就是它的要点,如果我错了,谁来纠正我。

票数 5
EN

Stack Overflow用户

发布于 2010-08-30 08:05:49

我认为服务器受损的唯一可能性是镜像是included,而不是通过readfile和其他流函数读取。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3597082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档