如果它是减压炸弹,如何检查png文件

时间:2015-11-09 03:57:29

标签: security image-processing imagemagick png

我正在玩图片上传到网站,我发现了这些减压炸弹攻击,当它被允许上传png文件(以及其他一些文件)时就会发生。由于我要更改上传的图像,我想确保我不会成为此攻击的受害者。因此,当检查png文件是否是炸弹时,我是否可以只读取文件的标题并确保宽度和高度不超过设定的限制,如4000x4000或其他什么?这是一种有效的方法吗?或者更好的方法是什么?

1 个答案:

答案 0 :(得分:5)

除了大的宽度和高度之外,减压炸弹还可能具有过大的iCCP块,zTXt,块和iTXt块。默认情况下,libpng在某种程度上会对其进行防御。

您的“imagemagick”标签表示您正在询问如何使用ImageMagick进行操作。 ImageMagick的默认宽度和高度限制非常大:“convert -list resource”表示

  

资源限制:宽度:214.7MP高度:214.7MP区域:8.135GP

ImageMagick中的图像宽度和高度限制来自命令行“-limit”选项,我想这也可以通过各种ImageMagick API中的某个等效指令传达。 ImageMagick继承了libpng对iCCP块等的限制。

在IHDR块中伪造较小的宽度和高度值不会欺骗libpng或ImageMagick。他们只发出一个“额外压缩数据”警告并跳过IDAT数据的其余部分而不解压缩。