【发布时间】:2013-08-21 12:12:08
【问题描述】:
我读到 exif_imagetype 是一种安全功能,可以避免上传 php 或其他 shell 代码而不是图像文件。最近我读到另一篇文章,我们可以通过一些简单的方法绕过这个安全功能。因此,如果有人知道绕过的确切方法,您可以分享您的答案。
我在我的 php 脚本中使用了以下代码,所以我想知道这是否易受攻击并对此进行补救
if (! exif_imagetype($_FILES['upload']['tmp_name']))
{
echo "File is not an image";
}
【问题讨论】:
-
手册的第一行说:“exif_imagetype() 读取图像的第一个字节并检查其签名。” - 所以欺骗前几个字节来查看就像图像签名一样。
-
您的实际情况是什么?
-
如果您正确处理图像,无论图像中是否存在代码,都不会执行任何代码。图像文件包含序列
<?php ... ?>可能只是偶然 -
我找到了这个,有一个简单的 python 脚本和很好的解释:raidersec.blogspot.com/2012/10/…
-
有趣的是,寻找
exif_imagetype文档以解决 overthewire ctf 挑战如何首先提出这个问题。
标签: php file-upload