作者:狐灵科技 | 2020-01-12 17:30 |点击:
这里以位图 BMP 为例演示图片文件黑客攻击的原理及实现。
创建或者随便找一个位图,使用编辑器(本文使用 UltraEdit 作为编辑查看工具)打开,可看到 16进制数。
BMP 格式中,前 2 字节是用于识别位图文件格式的字段,可以看到它对应 ASCII 码的 BM
,只要该字段正确,图片文件就能被正确识别处理,而无论其余数据是否损坏。随后 4 字节用于指示文件大小,单位为字节。
在此基础上,我们就可以对图片动一些手脚了,我们可以在图片中插入一段 JS 脚本。
比如获取该网页cookie的脚本或者重定向到目标网站的脚本。这里我们仅作效果演示,所以用了弹框:
然后我们将脚本插入到图片中,具体步骤如下:
2A 2F
(即 JS 多行注释中*/
的十六进制码)替换为00 00
,防止语法错误干扰脚本运行2F 2A
( JS 多行注释中/*
的十六进制码)FF 2A 2F 3D 31 3B
(即*/=1;
),其中=1;
用于结束开头的BM
。
以上操作可以通过 Python 脚本简单实现:
创建index.html
文件,内容如下:
其他图片格式也可以通过类似的操作实现。