25

当有人将恶意二进制代码注入图像文件(在Windows上)时,会发生什么情况?这是怎么做到的?

2
  • 1
    你是说注入二进制代码(恶意软件?)还是指类似HTML代码注入攻击的东西(那么Windows就没有意义了)?此外,损坏的图像不是成功攻击的情况,它仍然可以保持有效。
    – 匿名的
    评论 2010年11月21日0:50
  • @Ams-我是指二进制代码。
    – 摩西
    评论 2010年11月21日0:51

4个答案4

重置为默认值
13

这种攻击依赖于图像解析器,该解析器包含一个错误,该错误允许执行一个稍微古怪的图片。

例如,计算机可能会尝试将“红色”解释为shell命令,而不是将其解释为颜色。

  • 针对它的防御是什么? 评论 2012年7月13日2:29
  • 你可以通过提出一个新的问题来获得更好的结果。 评论 2012年7月21日1:30
  • 你是说一个没有错误的图像解析器将100%安全变色龙文件夹? 评论 2012年7月21日4:15
8

比@Zian提到的缓冲区溢出类型的bug更常见(尽管我认为最近4-5年前Windows中还存在类似的WMF漏洞)GIFAR公司(同时搜索SO):
一个既是有效图像文件(例如GIF)又是有效ZIP文件(例如JAR(编译的java字节码))的文件。
这是可能的,因为这些格式存储标题的方式:特别是,它们不是互斥的。

因此,您可以拥有一个通过所有有效性检查的文件,但当它在浏览器中显示时,java代码就会被执行(因为,您刚刚下载了一个有效的JAR文件dincha?)

据我所知,主要供应商已经解决了这个问题,但我承认我并不是最新的。
(可以找到GIFAR的原始发现者在这里.)

  • 1
    我记得GIFAR易受蛇油攻击。GIF部分中的JAR仅对攻击者与XSS结合加载上传的JAR/GIF文件有价值。我相信,这里的目标是让攻击者加载一个具有相同域策略的java小程序“绕过”。 评论 2011年11月3日7:52
  • 根本不是蛇油,正如您所说,它允许加载applet(例如,请注意),而不考虑域。此外,无论您在哪里上传GIF文件供他人查看,您都可以上传GIFAR,从而在受害者的浏览器上运行小程序。您甚至不需要XSS,因为它已经被加载了。
    – 阿维德
    评论 2011年11月3日11:44
  • 我记得我在新的时候做了一些测试,我运行gifar的唯一方法是使用<applet…/>html标签<img>标记从未加载applet。 评论 2011年11月3日11:50
5

我想当你说“图像”时,你是指JPEG或GIF之类的东西。

答案是,旧的软件有错误,当它们显示图像时,可能会产生混淆。例如,图像中有注释字段,通常不会显示,但可以包含拍摄照片的iPhone相机的GPS坐标等内容。典型的软件预计这些评论永远不会超过100个字符,但黑客可以做一些荒谬的事情,比如发表10000个字符的评论。软件应该安全地拒绝这种情况,但有些软件没有,它们有一个错误,这些意外的字符会溢出到内存的其他区域。如果黑客正确地处理了那10000个字节,他可以让有缺陷的软件运行代码。

仅仅因为我们人类期望这些注释是简短的英文文本,并不能阻止黑客在这些字段中输入长的可执行代码。

从MSPaint到Internet Explorer,再到Microsoft Word,有很多不同的代码可能都有这样的错误。他们都使用不同的代码来做相同的事情,并且他们都有不同的bug。这就是为什么你应该保持你的软件是最新的,这样当发现新的错误时,这些损坏的图像不会影响你。

从评论到问题,我知道有人可能有兴趣了解可执行映像(oops,“图像”与磁盘的副本相冲突,比如说,图片是可执行/可运行的脚本或程序),它们将人类视为图像(图片),将计算机视为可执行脚本(程序):

更新:
这里还有一个关于如何将病毒(PHP、JavaScript、ActionScript等)代码嵌入图像的参考:

2
  • “仅仅是链接到其他网站的答案通常是不可接受的”——这是你自己的说法。此外,你的链接告诉我们:“链接太棒了”。此外,例如,我通常会跳过没有链接的答案。所以,这是你个人的主观意见 评论 2011年11月2日10:50
  • 1
    这些不是我的意见,而是更广泛的StackExchange社区的意见,如果我们想参与,我们都需要遵守他们的规则。 评论 2011年11月2日11:30

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.