mics-Make Png Great Again——CVE-2023-28303(截图修复)
CVE-2023-28303——截图修复
一、前言
今天群友分享了一道很有意思的一道mics,附件如下;
123网盘下载;
解压得到一张打不开的图片,010分析,发现4位倒转了;
“打不开的图片”
010打开分析,发现4位倒转了;
翻到最底下又有意外发现,发现是一个“zip”;
这里为了防止手动提取出问题,这里推荐直接使用“binwalk”或者“foremost”进行分离较便捷;(这里懒得开“kali”了,直接使用的工具“随波逐流”进行文件分离)
打开发现里面有一个“zip”,没有密码可以直接解压,得到一个“hint.txt”以及"snip.jpg";
“hint.txt”
“snip.jpg”
那这里我们先整个脚本恢复一下“secret.png”先;
脚本如下;(Python)
def restore_file(input_file, output_file):
# 读取文件内容
with open(input_file, 'rb') as f:
data = f.read()
restored_data = bytearray()
# 每4个字节为一组
for i in range(0, len(data), 4):
# 取出4个字节并倒转顺序
restored_data.extend(data[i:i+4][::-1])
# 将恢复后的数据写入输出文件
with open(output_file, 'wb') as f:
f.write(restored_data)
# 输入和输出文件路径
input_file = './123.png'
output_file = './restored.png'
# 调用函数进行文件恢复
restore_file(input_file, output_file)
得到;
哎,看见这种只出现一个边边角角的图片再结合我们前面分离出的一个“hint.txt”还有一张名字为“snip.jpg”的图片,就我想起来了“CVE-2023-28303”,那这里既然提到了我们就简单介绍一下什么是“CVE-2023-28303(截图修复)”吧;
简单来说,CVE-2023-28303 是一个被公开的安全漏洞编号,通常用于识别和追踪特定的软件或系统中的安全缺陷。在这个特定的情况下,漏洞涉及一个截图相关的修复,具体情况可能与某个应用程序或操作系统在处理截图功能时存在的安全问题有关。
CVE-2023-28303 是一个与截图处理或截图功能相关的漏洞,可能导致以下情况:
- 信息泄露:攻击者可能利用漏洞获取敏感的屏幕内容或信息。
- 权限提升:某些情况下,截图功能的漏洞可能允许攻击者以更高权限执行操作。
- 远程代码执行:在恶意代码与截图处理结合的情况下,可能引发远程代码执行风险。
那这里我们网上查找资料也是发现了一篇有关于“CVE-2023-28303(截图修复)”的文章这里我们简单参考一下,所以这里我们也直接使用工具“Acropalypse Restoration and Detection Multi-Tool”
这里不建议在"windows"中运行,因为我相信绝大多数的师傅“Python”都会缺很多陌生的库,所以这里我们还是不要嫌麻烦了,直接丢进”kali“里面运行;
解压完成,进入工具的目录,直接右键选择“在这里打开终端”,接着输入命令运行“gui.py”即可;
输入命令;
python gui.py
接着在弹出的对话框中选择“Restoring Tool”,接着导入图片进行测试大小即可;
那可能做到这里,有的师傅可能就有疑问了,关于工具“Acropalypse Restoration and Detection Multi-Tool”到底是个怎么样的工具?那我们简单说明一下;
简单来说,Acropalypse Restoration and Detection Multi-Tool 是一种专门设计用来检测和恢复因“Acropalypse”漏洞(例如 CVE-2023-28303
)导致的被部分截断或未正确删除的图像文件的工具。
工具的具体功能分析:
-
检测未正确删除的图像内容:
- 工具能够检测出由于漏洞导致的图像文件,其中部分数据(通常是敏感信息)未被正确地删除或遮盖。
- 这些残留的数据可能被恶意用户恢复并利用,从而带来信息泄露的风险。
-
恢复被截断的图像文件:
- 该工具提供了恢复原始图像内容的能力,即使文件被截断或部分内容被覆盖,也能尽量还原出未被正确删除的部分。
- 这种恢复功能可能帮助安全研究人员评估漏洞的影响或分析图像内容是否存在潜在风险。
-
多工具支持和易用性:
- 该工具可能支持多种图像格式,并且提供了简便的操作界面或命令行工具,使得用户能够快速地检测和恢复受影响的图像文件。
-
与漏洞相关的背景:
- “Acropalypse”类漏洞涉及到在截图、编辑图像文件时,编辑后的文件仍保留了原始数据的部分信息。未被清除的数据可能包含敏感信息,如部分截图内容、被剪裁掉的图像边缘等。
总的来说,Acropalypse Restoration and Detection Multi-Tool 是一款专注于图像文件安全检测与恢复的工具,主要用于处理因类似 Acropalypse 类漏洞(如
CVE-2023-28303
)引发的数据残留问题,帮助用户检测和恢复可能泄露的敏感信息。
得到;
导入我们4位一组已经逆好的图片,版本选择“windows 11”(不难看出图片中的系统就是win11),接着开始调整大小;
这里也是调试了好几遍但发现都是不正确,那没办法了,又折返回查看那个“snip,jpg”图片,但是从头翻到尾也是没有任何发现,那这里我们直接尝试一下“snip,jpg”图片的宽高试试看;
得到;
“snip.jpg“图片的宽高:2880 1800,那这里我们直接填入尝试看看;
这里也是成功显示出来了,就是有点模糊,不过没关系,我们点击保存图片,放大来进行查看;
这里显示password:Google_ChrOm3_#@!
那这里就又给了一个提示给我们,现在只需要在图片中继续找出一个带锁的“zip”即可;
那刚刚在查看“snip,jpg”图片大小的时候,发现它的位深度是“24”,那这里只要经常做“mics”的师傅肯定就会知道里面肯定藏有东西,那想想里面能藏些什么呢?那这里我们直接使用“随波逐流”自带的功能“foremost”直接分离即可
打开查看,确确实实是发现了“flag.txt”,那这里我们尝试输入刚刚我们得到的密码:Google_ChrOm3_#@!
哎,是不是会发现不管怎么输入兜不正确?那这里我们使用的是“360压缩”打开的,看不见什么有用的信息,这里我们使用“winrar”来打开分析;
这里观察到“hint.jpg”的CRC值是:0949D823,这时候结合之前给出的“hint.txt”以及“snip.jpg”我们都尝试给它们压缩一下(建议这里使用“winrar”来进行压缩),看看他们的CRC值是否有相似之处,因为这里我们就可以使用“明文攻击”;
哎,在压缩完成“snip.jpg”的时候,惊奇的发现他们的CRC值既然是相同的,那既然是这样,我们就可以使用“mics”常用的“明文攻击”!
什么是“明文攻击”?
简单来说,明文攻击(Plaintext Attack)是指攻击者在已知或能够获取部分明文的情况下,利用这些已知明文来破解密码或进行其他类型的攻击。这种攻击方式通常用于分析加密算法的弱点或者推测密钥,从而解密更多的数据。
常见的明文攻击类型:
-
已知明文攻击(Known-Plaintext Attack, KPA):
- 攻击者已知一部分加密前的明文及其对应的密文,利用这些信息推测加密算法的内部工作原理或密钥,以便解密其他密文。
-
选择明文攻击(Chosen-Plaintext Attack, CPA):
- 攻击者可以选择一段明文并获取其加密后的密文。通过分析这个过程,攻击者试图获取密钥或解密更多密文。
-
选择密文攻击(Chosen-Ciphertext Attack, CCA):
- 与选择明文攻击相反,这种攻击允许攻击者选择一段密文并获取其解密后的明文,从而推测密钥或加密算法的弱点。
那这里推荐大家使用一个较为便捷的工具“bkcrack”来进行破解,简单介绍一下这个工具;
简单来说;
-
bkcrack 是一种专门用于攻击使用了 ZIP 加密的文件的工具。它利用已知明文的部分内容来推测加密密钥,从而解密整个 ZIP 文件。
-
已知明文攻击:在这种攻击中,攻击者需要知道一小部分加密前的原始数据(明文)及其对应的加密后的密文。通过这些信息,工具可以逆向推测出用于加密的密钥,从而解密其他密文部分。
应用场景:
- ZIP 文件破解:如果攻击者知道 ZIP 文件中某个压缩文件的一部分原始内容(如文件头或常见文本),那么可以使用 bkcrack 工具来推测出加密密钥,并解密整个 ZIP 文件。
所以这里下载好对应的版本之后,把我们需要用到的文件一起丢到“bkcrack”的目录下即可;
“123.zip”:就是带锁的“zip”;
“hint.jpg”:就是“snip.jpg”改个名
“snip.zip”:也还是“snip.jpg”压缩一下得到
是的没错,其实三个都是“snip.jpg”由来的,因为它与带锁的“zip”中的“hint.jpg”CRC值相同!
使用命令;
./bkcrack -C 123.zip -c hint.jpg -P snip.zip -p snip.jpg
得到Keys:0b951702 ccf91e9e 420f5576
接着继续使用已知的key来进行破解;
使用命令;(注意大小写!)
./bkcrack -C 123.zip -k 0b951702 ccf91e9e 420f5576 -U new.zip 123
这里我们简单分析一下;
命令分析;
./bkcrack
:执行 bkcrack 程序。-C 123.zip
:指定目标加密 ZIP 文件为123.zip
。-k 0b951702 ccf91e9e 420f5576
:提供 ZIP 文件的 3 个 32 位密钥流值,这是由已知明文和密文的部分内容计算出来的。-U new.zip 123
:-U
表示解锁 ZIP 文件,并将其保存为new.zip
,使用的密码是"123"
。
输出分析;
- bkcrack 1.7.0 - 2024-05-26:显示了 bkcrack 的版本和构建日期。
- Writing unlocked archive new.zip with password “123”:表示 bkcrack 正在用密码
"123"
创建一个未加密的 ZIP 文件new.zip
。 - 100.0 % (2 / 2):表示解密过程完成,解锁了 2 个文件。
- Wrote unlocked archive:最终提示新解锁的 ZIP 文件
new.zip
已经成功创建。
总的来说,我已经通过 bkcrack
成功地破解了 123.zip
,并将解锁后的内容保存到 new.zip
中,使用的密码是 "123"
。这表明 bkcrack
工具有效地恢复了 ZIP 文件的密码,完成了解密任务。
所以这时候我们在使用password:123,直接轻松打开“zip”了;
里面的“hint.jpg”果然就是原图;
接着“flag.zip”我们使用前面解出的密码:Google_ChrOm3_#@!,打开得到;
至此;
flag{89aae652751b60edd2a26280f731d885}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)