Windows 自带截图工具存在漏洞,裁剪内容可被还原

2023-03-23 08:58:03 +08:00
 tracert
如题,谷歌手机中也有同样的漏洞

https://news.mydrivers.com/1/899/899180.htm

https://news.mydrivers.com/1/898/898721.htm

所以,比较保险的方法还是打码后另截图
4549 次点击
所在节点    Windows
22 条回复
nothingistrue
2023-03-23 09:16:18 +08:00
标题党,撤了吧。两个问题都是图片修改后原图片还保留着,并不是修改后的图片还携带原始信息。
cherryas
2023-03-23 09:31:47 +08:00
"同时,用户已经上传的图片,也存在被依靠该漏洞复原的可能。"
TGl2aWQgZGUgZGll
2023-03-23 09:50:31 +08:00
@nothingistrue #1 这难道不严重吗?比包含 exif 信息严重多了。exif 最多泄露你的 GPS 位置和手机型号,日期。

这玩意泄露的可能就是你自己已经马赛克掉的各种敏感信息
opengps
2023-03-23 09:52:44 +08:00
你可以套娃啊,截图之后再截图一次
cjpjxjx
2023-03-23 10:00:49 +08:00
那么,下图是使用 Win10 截图工具在截图后点击保存,随后裁剪并再次覆盖源文件保存的截图,有人能还原出被我裁剪掉的内容吗

https://img.cencs.com/images/2023/03/23/O1QP.png
lambdaq
2023-03-23 10:05:54 +08:00
@cjpjxjx 楼主标题党忘记说了,仅限 win11 那个工具。。。。

目测是三哥做的 KPI 应用,编辑新图片后,忘记把老数据截断了。。。
feedcode
2023-03-23 10:11:18 +08:00
中文翻译有问题.

current exploits only work with PNG images, not JPEGs.
A screenshot cropped with Snipping Tool and then saved over the original (the default behavior) adds a new IEND chunk to the PNG image but leaves a bunch of the original screenshot's data after the IEND chunk.
https://www.w3.org/TR/PNG-Structure.html

app https://acropalypse.app/
proof code: https://gist.github.com/DavidBuchanan314/93de9d07f7fab494bcdf17c2bd6cef02
leafin
2023-03-23 10:16:24 +08:00
如果我没理解错,这两个新闻说的是修改前的原始文件没有删除而是被新文件覆盖,有被还原的可能性。
我个人理解这种还原需要接触到存储设备,是类似硬盘数据恢复这种操作。
所以如果把这张图片拷贝/发送给别人,对方是无法还原的
tool2d
2023-03-23 10:21:52 +08:00
@leafin "所以如果把这张图片拷贝/发送给别人,对方是无法还原的"

可以还原,你看 7 楼的代码就知道了。只能是 png 。
newmlp
2023-03-23 10:26:18 +08:00
@leafin 看代码应该不是覆盖旧文件,而是直接在旧文件上重新开始写入新数据
leafin
2023-03-23 10:38:37 +08:00
@newmlp 所以文件还是同一个,不是新建一个文件?
newmlp
2023-03-23 10:50:19 +08:00
@leafin 可能文件句柄都是同一个,然后 seek 0 开始写入新数据,啊哈哈哈
oldshensheep
2023-03-23 11:07:34 +08:00
改原文件的话,打开文件用 r+,然后读取数据,删除全部数据,写入新数据。
正确做法应该是 seek(0),然后 truncate()。

之前开发就遇到这个问题。。。。
oldshensheep
2023-03-23 11:11:00 +08:00
@cjpjxjx 这个需要知道裁剪前原图的大小,用 7 楼的 app 那个链接,或者 Python 代码试试
nothingistrue
2023-03-23 11:25:26 +08:00
@TGl2aWQgZGUgZGll #3 以楼主两个链接的对应内容来看,问题是,本地文件系统残留原始内容,修改之后的文件是没有残留的,那就自然不严重。当然看 7 楼贴出英文原文后,问题是修改之后的文件当中,而非本地文件系统残留原始内容,那就是很严重的。这不但表示楼主的两个链接仍然是标题党,还表示特么的是机翻加农场。
nothingistrue
2023-03-23 11:35:49 +08:00
@tracert 再加个附言吧:

原始链接的内容有问题,1 楼的回复基于原始内容也是错的,问题很严重。7 楼英文的真正意思大致如下。截图修改并保存的时候,在文件系统处理上上用的是追加方式,于是原始内容仍然存在与新文件中。即,修改之后的文件还保留着修改之前文件的完整信息,所以问题非常大。只有 PGN 有此问题,JPEG 无此问题。
oldshensheep
2023-03-23 13:33:23 +08:00
@nothingistrue 其实是覆盖而不是追加,修改后的文件并没有保留着修改之前文件的完整信息,而是保留了没有覆盖的部分信息。
其实 JPG 保存同样的也是没有调用 truncate ,但是 JPG 不能被复原,是因为 JPG 压缩过程有熵编码,而它的编码信息在文件头部,而软件是从文件头部覆写的,所以就不能复原了。
jhdxr
2023-03-23 15:35:46 +08:00
@cjpjxjx 按照 7L 的工具还需要屏幕分辨率,我盲猜了一个 2560*1440 (从你截图的内容上预估的),但失败了
crokily
2023-03-23 20:08:36 +08:00
我拿 ios 的截图试了下
截图,裁剪成四分之一大小
然后进入图库,此时该图确为四分之一大小,编辑该图,右上角就有一个复原按钮
点复原,图片就变成了原大小。
这说明 ios 的截图裁剪也是有保留原图信息的
2le
2023-03-24 10:20:21 +08:00
看了下代码和原帖,似乎只要存在未被破坏的 IDAT 数据块,就可以实现部分复原。我本地验证了下,只要确保图片宽度是正确的(高度不是必须),就可以实现图片复原。图片宽度可以通过递增尝试,写个遍历脚本,成功率应该挺大的,拿 4k 分辨率来算,只需要尝试 (3840-截图后宽度) 次。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/926407

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX