“某X宝...到帐...100...万元......某X宝...到帐...100...”

本就因工作不顺心情不爽的陈倩云忍无可忍,一把抓起手机接通了电话......


“请问是陈XX女士吗?”

“你谁啊?”

“您好!我是XX市XX区公安局民警,您涉及一起案件......”

对方话音未落,陈倩云咧嘴“哼”了一声,冷冷地说道:“哦,是我杀人的事儿吗?”

对于这不按剧本突如其来的话语,对方显然没有反应过来:“你...你杀谁了?”

“我老公,我把他放冰柜里了......”

“他太不听话了,肚子里的东西都把人家的地板给弄脏了......”

“屋子里......好像有点味道......真麻烦......”


话筒里只剩对方吞咽口水的声音,半晌过后才传来话语。

“陈女士,请...请不要开玩笑!”

“您是不是近期有发送过账单到XXX的情况?”

“事出紧急,请您明天务必到我们这边来一趟,方便核实情况,谢谢您的配合!”

陈倩云撇了撇嘴,恶狠狠道:“大晚上的,再来骚扰,我就把你也给杀了放冰柜!”

说完她用力按下手机,屋里恢复了平静。


翌日清晨,一阵急促的敲门声无情地将陈倩云从梦中拉回到了现实。

陈倩云火往上撞,好不容易周末,连睡个懒觉都成了奢望,谁人如此大胆,竟敢扰了老娘的清梦,倒要尔等好看!

陈倩云心里这么想着,稍作收拾后三步并作两步推开房门。

“你好!是陈女士吧?我们昨晚联系过你......”

正想发作,却见两位民警立在门外,陈倩云就是一愣。

事后陈倩云才得知,来的两位民警非是旁人,正是简睿和蔡学飞。


简睿二人将案件情况向陈倩云讲述一遍,原来前几日陈倩云曾经通过某通讯软件发送给XXX方账单图片,而这些图片可能因系统漏洞导致相关信息(比如密码)泄漏,最终引发经济案件。

事情究竟如何,见陈倩云不是非常明白怎么回事,于是简睿二人就当场做起了说明和演示。


比如,手头上有一个图片文件名为 Original.png

然而这张图片可能包含有密码之类的敏感信息,因此需要将其裁剪,把不希望别人看到的部分去掉。

类似于手机上截图后裁剪,最后再发送给他人。

但就是这样的操作导致了漏洞出现,信息泄漏。


OK,我们可以按照以下步骤复现漏洞。

  1. 备份 Original.png 图片文件(这是个良好习惯),用于之后文件变化的对比。
  2. 使用截图工具打开 Original.png 图片文件。
  3. 裁剪图片,使其比原始尺寸更小一些(比如将敏感信息部分裁剪掉)。
  4. 覆盖保存图片到当前文件(可将其重命名为 Modified.png 方便之后与原文件比较),注意覆盖保存是关键。
  5. 最后比较裁剪后保存的文件与原始文件的大小(存在漏洞则两个文件大小是一样的)。


漏洞相关官方链接:

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-28303
 


好,为重现演示漏洞,我们特意重新安装了旧版的截图工具(新版有可能已经修复漏洞)。

我这儿有之前写的一个小工具 Windows内置应用安装卸载工具 ,可用于卸载应用(文末下载)。


找来一台电脑,安装的是 Windows 11 系统,其中的截图工具版本为 11.2302.20.0Windows 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 结束标记在文件最后面,这没有问题。


而修改过的文件,它的结束标记却出现在了文件中间。


那结束标记之后的数据是什么呢?

很显然嘛,那些后面的数据是原始文件残留的。

截图工具只是简单地将结束标记放到了裁剪后有效内容的后面,结束标记之后的部分并没有删除而是直接保留了下来。

因此,我们就可以明白,这个漏洞的根源就是在这里了。

因为被保留下来的数据是有可能被识别出来,从而没有任何保密可言。


天啊!我以前一直这么干(裁剪)的,有不少图片都是这么生成的,怎么才能看得出来哪些图片有问题呢?

既然漏洞被发现,那么肯定是有一定的检测手段,下面我们就来介绍几个。


命令行检测漏洞的方法,可以在 WindowsLinux 平台上做到。

比如 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 & SketchWindows 11 中的 Snipping Tool 受此漏洞影响。

注意,我补充一下,这个漏洞其实涉及不仅是 截图工具 ,还有 截图和草图 等类似的工具。


如果怀疑我的截图工具有漏洞,那么如何检查是否已安装更新呢?

  • 对于 Windows 10 上安装的 截图工具 ,应用版本 10.2008.3001.0 及更高版本包含此更新。
  • 对于安装在 Windows 11 上的 截图工具 ,应用版本 11.2302.20.0 及更高版本包含此更新。


我发现我的截图工具并不是修补漏洞后的版本,怎么更新呢?

其实很简单,只要打开微软应用商店,更新应用就会自动修补。


这个漏洞同样也曝光于 Google Pixel 手机裁剪图片操作,有兴趣的小伙伴也可以研究研究。

此外漏洞涉及图片格式不仅限于 png 格式,其他诸如 jpg 等常见格式也未能幸免。

虽然看似一个不起眼的小漏洞,却可能会引发天大的事件,毕竟漏洞利用不算太难。

请小伙伴们务必要小心重视,关于这个漏洞的修补更新,官方只是在前几天(2023年4月初)刚刚发布的。

如果你还在使用旧版截图工具(比如旧版或不联网的 Windows 系统)来截图裁剪图片,那么友情提醒,赶紧更新修补漏洞哦!


将技术融入生活,打造有趣之故事

网管小贾 / sysadm.cc

暂无评论

登录并提交评论

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接