“某X宝...到帐...100...万元......某X宝...到帐...100...”
本就因工作不顺心情不爽的陈倩云忍无可忍,一把抓起手机接通了电话......
“请问是陈XX女士吗?”
“你谁啊?”
“您好!我是XX市XX区公安局民警,您涉及一起案件......”
对方话音未落,陈倩云咧嘴“哼”了一声,冷冷地说道:“哦,是我杀人的事儿吗?”
对于这不按剧本突如其来的话语,对方显然没有反应过来:“你...你杀谁了?”
“我老公,我把他放冰柜里了......”
“他太不听话了,肚子里的东西都把人家的地板给弄脏了......”
“屋子里......好像有点味道......真麻烦......”
话筒里只剩对方吞咽口水的声音,半晌过后才传来话语。
“陈女士,请...请不要开玩笑!”
“您是不是近期有发送过账单到XXX的情况?”
“事出紧急,请您明天务必到我们这边来一趟,方便核实情况,谢谢您的配合!”
陈倩云撇了撇嘴,恶狠狠道:“大晚上的,再来骚扰,我就把你也给杀了放冰柜!”
说完她用力按下手机,屋里恢复了平静。
翌日清晨,一阵急促的敲门声无情地将陈倩云从梦中拉回到了现实。
陈倩云火往上撞,好不容易周末,连睡个懒觉都成了奢望,谁人如此大胆,竟敢扰了老娘的清梦,倒要尔等好看!
陈倩云心里这么想着,稍作收拾后三步并作两步推开房门。
“你好!是陈女士吧?我们昨晚联系过你......”
正想发作,却见两位民警立在门外,陈倩云就是一愣。
事后陈倩云才得知,来的两位民警非是旁人,正是简睿和蔡学飞。
简睿二人将案件情况向陈倩云讲述一遍,原来前几日陈倩云曾经通过某通讯软件发送给XXX方账单图片,而这些图片可能因系统漏洞导致相关信息(比如密码)泄漏,最终引发经济案件。
事情究竟如何,见陈倩云不是非常明白怎么回事,于是简睿二人就当场做起了说明和演示。
比如,手头上有一个图片文件名为 Original.png
。
然而这张图片可能包含有密码之类的敏感信息,因此需要将其裁剪,把不希望别人看到的部分去掉。
类似于手机上截图后裁剪,最后再发送给他人。
但就是这样的操作导致了漏洞出现,信息泄漏。
OK,我们可以按照以下步骤复现漏洞。
- 备份
Original.png
图片文件(这是个良好习惯),用于之后文件变化的对比。 - 使用截图工具打开
Original.png
图片文件。 - 裁剪图片,使其比原始尺寸更小一些(比如将敏感信息部分裁剪掉)。
- 覆盖保存图片到当前文件(可将其重命名为
Modified.png
方便之后与原文件比较),注意覆盖保存是关键。 - 最后比较裁剪后保存的文件与原始文件的大小(存在漏洞则两个文件大小是一样的)。
漏洞相关官方链接:
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-28303
好,为重现演示漏洞,我们特意重新安装了旧版的截图工具(新版有可能已经修复漏洞)。
我这儿有之前写的一个小工具 Windows内置应用安装卸载工具
,可用于卸载应用(文末下载)。
找来一台电脑,安装的是 Windows 11
系统,其中的截图工具版本为 11.2302.20.0
( Windows 10
也有同样的问题)。
接着利用我自己写的卸载应用程序将这个版本的截图工具进行卸载。
当然了,也可以使用系统中的应用卸载设置来操作。
然后手动将旧版 11.2209.20
截图工具安装上(旧版截图工具文末下载)。
我们使用这个旧版来再现漏洞,当然 Windows 10
也是一样操作。
经过前面几个步骤操作后我们得到两个图片文件。
然后通过两个文件容量的对比,发现两者居然是一样大小的。
然而两者的分辨率,也就是实际高度和宽度却并不一样的。
我们直接来看看数据结束标记块 IEND
,它用来标记 png
图像数据到哪里为止。
标记 PNG
文件结束,一般用 16
进制表示为:
00 00 00 00 49 45 4E 44 AE 42 60 82
这个结束标记是固定的,也就是说,只要是 png
文件就是以这个来标记结尾的,具体的可以参考相关文档。
原始文件 Original.png
结束标记在文件最后面,这没有问题。
而修改过的文件,它的结束标记却出现在了文件中间。
那结束标记之后的数据是什么呢?
很显然嘛,那些后面的数据是原始文件残留的。
截图工具只是简单地将结束标记放到了裁剪后有效内容的后面,结束标记之后的部分并没有删除而是直接保留了下来。
因此,我们就可以明白,这个漏洞的根源就是在这里了。
因为被保留下来的数据是有可能被识别出来,从而没有任何保密可言。
天啊!我以前一直这么干(裁剪)的,有不少图片都是这么生成的,怎么才能看得出来哪些图片有问题呢?
既然漏洞被发现,那么肯定是有一定的检测手段,下面我们就来介绍几个。
命令行检测漏洞的方法,可以在 Windows
和 Linux
平台上做到。
比如 Windows
平台可以这样做。
acropalypse_detect_64_windows.exe <文件夹/文件>
Linux
的语法也差不多,可以这样做。
./acropalypse_detect_64_linux <文件夹/文件>
这两个命令行程序可以在文末下载到。
不过即使命令行支持文件夹的批量检测,但是它也只能是单机上使用,使用的人一多就有点不方便了。
因此再给小伙伴们介绍一个 Web
版图片文件 Acropalypse
检测漏洞的方法。
这种方法就可以方便更多的人同时在线检测了。
Web
版图片文件 Acropalypse
漏洞检测程序官方链接。
https://lordofpipes.github.io/acropadetect/
需要说明的是,可以直接使用官方的链接,也可以使用我修正过的程序包,方便局域网内部署。
如果你是从官网下载的这个源码,可能会由于缺失部分脚本文件而无法正常工作,建议下载我提供的程序包(文末下载)。
另外程序是开源的,检测时并不会上传任何文件到服务端,小伙伴们可以下载我提供的修改版,这样会比较放心一些。
一旦检测出问题图片就会给出警告提示。
检测程序没问题,那么有将漏洞文件恢复出来的工具吗?
关于此漏洞的官方说明中提到过一个大神制作的在线恢复页面。
https://acropalypse.app/
但是很遗憾,它并不能成功修复,甚至识别有漏洞的图片文件都失败了。
反正我尝试过很多次都不灵光,小伙伴们有空有闲可以尝试看看。
图片文件 Acropalypse
漏洞相关工具程序集中下载。
Windows内置应用安装卸载工具.7z(223K)
Microsoft.ScreenSketch_2022.2209.2.0_neutral_~_8wekyb3d8bbwe.Msixbundle.7z(3.53M)
Acropalypse-Detection-Tool-Go单机检测工具.7z(2.19M)
acropadetect在线检测工具.7z(64.7K)
两张示例图片(85.6K)
下载链接:https://pan.baidu.com/s/1KZcVhe5_oOTXYsZjetL-lg
提取码:
★扫码关注公众号, 发送【001025】获取阅读密码
漏洞这么明显,那么肯定会有小伙伴会问,自己的电脑会不会不问题呢?
请仔细看哈,Windows 10
及旧版本中的默认截图工具不受影响。
只有 Windows 10
中的 Snip & Sketch
和 Windows 11
中的 Snipping Tool
受此漏洞影响。
注意,我补充一下,这个漏洞其实涉及不仅是 截图工具
,还有 截图和草图
等类似的工具。
如果怀疑我的截图工具有漏洞,那么如何检查是否已安装更新呢?
- 对于
Windows 10
上安装的截图工具
,应用版本10.2008.3001.0
及更高版本包含此更新。 - 对于安装在
Windows 11
上的截图工具
,应用版本11.2302.20.0
及更高版本包含此更新。
我发现我的截图工具并不是修补漏洞后的版本,怎么更新呢?
其实很简单,只要打开微软应用商店,更新应用就会自动修补。
这个漏洞同样也曝光于 Google Pixel
手机裁剪图片操作,有兴趣的小伙伴也可以研究研究。
此外漏洞涉及图片格式不仅限于 png
格式,其他诸如 jpg
等常见格式也未能幸免。
虽然看似一个不起眼的小漏洞,却可能会引发天大的事件,毕竟漏洞利用不算太难。
请小伙伴们务必要小心重视,关于这个漏洞的修补更新,官方只是在前几天(2023年4月初)刚刚发布的。
如果你还在使用旧版截图工具(比如旧版或不联网的 Windows
系统)来截图裁剪图片,那么友情提醒,赶紧更新修补漏洞哦!
将技术融入生活,打造有趣之故事
网管小贾 / sysadm.cc