crazy无敌少年要求我写个稍详细点的WP,鉴于crazy无敌少年这么好学,我就重做一遍题。
其实这也是我常遇到的问题,看别人WP,明明不是特别简单的题,就两句话完事了,连思路都没有,还不如直接上flag了事。我深刻理解这位少年的无奈。

==========================================================================

此题已经提示是明文攻击,自然说的就是zip的"Known-plaintext attack",也就说明我们要从文件中提取出加密的zip文件和对应的部分明文文件。关于明文攻击知识请自行查阅资料。大概意思就是:如果拥有加密包中任意一个文件内容的前提下,对该明文文件进行同样算法的无加密压缩,然后对比两个压缩包中相同文件,得出差异值获取这个加密包的三个Key,压缩包中的每个文件都是通过这三个Key进行加密压缩的,只要得到了这三个Key就能解压整个加密的压缩包(这个方法只适用于ZIP的加密压缩)。
先看下提供的是什么。如图,像是vmware的镜像文件,但是和目前vmware的镜像文件不一样,如果是此类文件,也似乎经过修改或其它原因已经破坏镜像文件的分区等信息,无法映射成磁盘了。
西普CTF-XDCTF misc200-以夕阳落款
那就用binwalk或foremost尝试提取文件。先用binwalk提取文件存在很多问题,且无法找到明文文件。图中可以看出明文zip是存在的,但是binwalk分割文件时有问题,其实也可以再手动分割下文件,我当时想偷懒,毕竟做过了一遍了。
西普CTF-XDCTF misc200-以夕阳落款
再尝试使用foremost提取文件,似乎文件较为完整。其它文件略过,直接看zip文件。一共有两个zip。一个是未加密,另一个加密。对比下就能看到里面都有readme.txt文件,且CRC值相同,则认定为同一文件。此文件就是我们需要的明文文件。

西普CTF-XDCTF misc200-以夕阳落款
西普CTF-XDCTF misc200-以夕阳落款西普CTF-XDCTF misc200-以夕阳落款

但是,在后续的操作过程中发现提取的加密zip文件有问题,不完整。我均是在win下使用的工具,所以请尝试在linux下提取文件。(第一次做似乎没有这么麻烦,直接能得到完整文件,具体也忘了)无法,缺失的部分是包含文件内容的,过了许久才发现binwalk提取的zip文件里有我需要的部分。直接16进制编辑器整过来。除此之外,还用16进制编译器纠正下文件压缩后的大小,删除了文件多余的一个字节0x00。下面两张图,前一张是修复前的zip结构图,后面是修复后的zip结构图。

西普CTF-XDCTF misc200-以夕阳落款
西普CTF-XDCTF misc200-以夕阳落款

接下来就是用软件进行明文攻击了。把readme.txt从未加密的zip中解出来,再单独压缩成zip。工具选用了ARCHPR,选择明文攻击模式,分别加载文件加密zip和刚才压缩的明文,start,接下来就只能等待了。

西普CTF-XDCTF misc200-以夕阳落款

这里注意下,我们不是要解密码,所以不用等密码出来,3个key出来就可以解压文件了,时间不会很长,应该几十分钟就行了,不用看我的时间,我睡觉了。选择stop后,只要日志里“Encryption keys successfully recovered !”就可以恢复文件,会有按钮可以恢复成不加密的zip文件,文件名加“_decrypted”后缀。

西普CTF-XDCTF misc200-以夕阳落款
西普CTF-XDCTF misc200-以夕阳落款

Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Flag请点击这里查看索引

查看所有Flag文章需要输入密码,需要获取文章密码的童鞋请扫描下面微信或支付宝二维码捐助至少2元(老哥,捐多捐少是个缘分)之后发送支付凭证号联系我获取,Flag大全地址:Flag大全

新功能:捐款的小伙伴请联系我把自己的注册邮箱加入网站白名单,可以免回复看到本站所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜!

微信二维码:
支付宝二维码: