Winrar

0x00 环境搭建

  1. WINACE

  2. acefile.py

  3. 010editor

0x01 ACE 格式

用WINACE手动生成一个ACE后缀的压缩包

[Ⅰ] acefile.py

img
img

[Ⅱ]hex editor

首先我比较想知道。。最开始checkpoint的文章里面的高亮是特效吗,为什么我的没有

201902202321c037f382-b4cb-48c2-9018-362606bf30dd
201902202321c037f382-b4cb-48c2-9018-362606bf30dd

姑且用010editor打开,然后并没有模板可以用

姑且分析一下ACE结构

  1. 首先,我没觉得这个格式有任何压缩,或者说因为小文件才没有任何压缩。
  2. ACE格式大致上是将整个压缩包分块,其中第一个块作为整体压缩包的信息,每个块有一个header用于标识该块信息,对于文件的块,在勾选store full path的情况下,每个块的末尾是文件的二进制信息
  3. 结合原文章的图(就上面那个花花绿绿的图),根据*UNREGISTERED VERSION*字符串的位置可以确定其后方的hdr_crchdr_size
  4. filename前两位是filename的长度

1550996698673

POC研究

POC 地址:https://github.com/Ridter/acefile

根据该poc提供的1.rar拖进010editor研究一下

1551001175023
1551001175023

其实也没什么可以研究的,

直接参考了实战!打造WinRAR代码执行漏洞的种植EXP

修改filename->修改filename_length->修改hdr_size

关键一步:此时还需要修改CRC的值,这里可以直接用acefile.py来获取正确值

1551001413176
1551001413176

遇到的问题:最开始用的是https://github.com/droe/acefileacefile.py脚本,但是很遗憾并不输出正确CRC,于是转而使用Ridter的POC中附带的acefile.py

阶段性成果

1551001658940
1551001658940

如此修改好了一个ACE包,执行解压操作以后,就在C盘生成了一个ttesttesttst\test.txt