在图像中包装可执行文件

时间:2014-12-19 09:19:58

标签: php image security validation user-input

我正在强化不受信任的用户可以上传图像的PHP Web应用程序。我需要确保上传的文件实际上是100%有效,无害的图像。

我已经使用finfogetimagesize验证了文件服务器端。我不相信用户提供的文件扩展名,但我用相应的函数来获取它。

尽管如此,我还是从多个来源中读到了“将可执行文件包装在图像中”并且在将其报告为有效图像时欺骗所述函数。现在我发现以后没有简单的方法来执行它们,但是我仍然希望立即丢弃它们:例如,我担心攻击者可以上传带有PHP的恶意JPEG代码,这对于现在,攻击者可以利用第二个无法预料的漏洞将其重命名为.php并在服务器as described here上运行。

现在我的主要兴趣是创建这样的恶意图像,看看我的代码如何反应。之后我会对抗对策。

那么......我如何“在图像中包装可执行文件”?

1 个答案:

答案 0 :(得分:1)

好的,这样的事情可以解决问题:

GIF89a<?php
echo 'hi';

本文提供了一些其他信息http://ha.ckers.org/blog/20070604/passing-malicious-php-through-getimagesize/

在这里,我找到了一个用于修改EXIF数据的软件,并在那里添加了可执行代码:http://php.webtutor.pl/en/2011/05/13/php-code-injection-a-simple-virus-written-in-php-and-carried-in-a-jpeg-image/

HTH。