那些CTF中的ZIP问题

1.消息隐藏

image.png

写入zip文件,转码有点恶心


image.png

2.伪加密

自己写了个脚本查伪加密

# coding='utf-8'
"""
判断文件是否是伪加密
有两个加密表示位:
第一个:文件[6:8]
第二个:文件目录区,504B0102开头,再也8,9位
第一个:第二个:是否加密
0000:0000:没有加密
0000:0900:伪加密
0900:0900:真加密
0900:0000:没有加密
使用方法:python3 is_pe filename.zip
"""
import sys
import os

def is_pe(file):
    flag_pe_top = b'PK\x01\x02'
    flag_te = b'\t\x00'
    flag_ne = b'\x00\x00'

    with open(file, 'rb') as f:
        text = f.read()
        
    flag_index = text.find(flag_pe_top)
    if  text[6:8] == flag_ne and text[flag_index+8:flag_index+10] == flag_te:
        return 1
    elif text[6:8] == flag_te and text[flag_index+8:flag_index+10] == flag_te:
        return 0
    elif text[6:8] == flag_ne and text[flag_index+8:flag_index+10] == flag_ne:
        return -1
    elif text[6:8] == flag_te and text[flag_index+8:flag_index+10] == flag_ne:
        return -1
    else:
        return -2


def main():
    if len(sys.argv) != 1:
        for arg in sys.argv[1:]:
            flag = is_pe(arg)
            if flag == 1:
                print("[+] %s 是伪加密!"%arg)
            elif flag == 0:
                print("[*] %s 是真加密"%arg)
            elif flag == -1:
                print("[#] %s 文件无加密"%arg)
            else:
                print("[-] %s 文件损坏"%arg)
    else:
        print('help: python3 is_pe file1 file2 file3')


if __name__ == '__main__':
    main()
image.png

3.图片隐藏压缩包

第一步:分析

root@kali:~/桌面# ls
u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png
root@kali:~/桌面# binwalk u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png //分析图片

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PNG image, 370 x 370, 1-bit grayscale, non-interlaced
41            0x29            Zlib compressed data, default compression
694           0x2B6           Zip archive data, encrypted at least v2.0 to extract, compressed size: 54990, uncompressed size: 292875, name: C8-E7-D8-E8-E5-88_handshake.cap
56130         0xDB42          End of Zip archive
//有两个文件,一个图片一个zip

第二步:使用dd分离

//使用dd分离dd if=文件名 of=分离文件名, skip=开始分离地址,bs=一次读写字节数
root@kali:~/桌面# dd if=u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png of=u.zip skip=694 bs=1
记录了55458+0 的读入
记录了55458+0 的写出
55458 bytes (55 kB, 54 KiB) copied, 0.122583 s, 452 kB/s
root@kali:~/桌面# ls
u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png  u.zip

第二步:使用foremost分离

root@kali:~/桌面# ls
u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png
root@kali:~/桌面# foremost u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png 
Processing: u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png
|foundat=C8-E7-D8-E8-E5-88_handshake.capc���-Bp��9�<`=HBQwჇ.���SDlPeE�he�����%��0`K��J��BQ�
�4
�+���W��OP?�;�߿w    ��r�4�������K�A�4�œ ���P2�X�����銃�0����G�޿��L��[�L���u|�^9e���*S��tCw/�n�;�}J��)t������=d�W������l������p��6Bc�4�(�'�W�����l �:%��@/,Ѷ���(v�g�e��F8�h�k�GAh��Vm���\�m������`��� 4
*|
root@kali:~/桌面# tree
.
├── output
│   ├── audit.txt
│   ├── png
│   │   └── 00000000.png
│   └── zip
│       └── 00000001.zip
└── u5bc6u7801u7eafu6570u5b57u5171u0038u4f4d.png

3 directories, 4 files

4.ADPR: 爆破/字典/掩码/明文攻击

爆破(不推荐)

image.png

字典

image.png

掩码

image.png

明文攻击,文件不能太小,要能看到每个文件都有crc32效验码

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 隐写篇 0x01. 通过进制转换隐藏信息 0x02. 在图片中隐藏压缩包(图种) 加密篇 0x03. 伪加密 0x...
    查无此人asdasd阅读 5,865评论 0 4
  • 001 #晨读感悟# 不纠结小事,学会抓大放小 ,做重要的事。 三思而后行,做事想想最坏的结果,主动积极做,态度积...
    研悟阅读 271评论 0 1
  • 10月份以来一直跟展翔学习美语音标,收获很大,纠正了很多以前错误的发音,但是仍然需要大量练习,为了及时复习音标,今...
    worldlyf阅读 2,533评论 3 4
  • 和儿子一起到超市购物,经过路口,儿子提醒我是反道,我以为过去就过去了,没承想儿子喊我停车,下车一看,一位骑自行车的...
    梦想的简书阅读 202评论 0 0
  • 现代的社会,虽说女性地位有所提升,但在我看来依旧是表面工作。 1.婆媳矛盾严峻,婆媳矛盾的源头,实际确是大众性别歧...
    bwgc阅读 620评论 0 5