CTF 未分类题目 WriteUp
Misc
MASK
zip相关考点,掩码攻击,明文攻击等
- base32 => base64 => 保存为zip。
- 解压出hint提示 ZZLT123???
- Advanced Archive Password Recovery 掩码攻击, 得到密码 ZZLT123&*% 解压文件
- 看到zip有desktop.png。手动将desktop.png压缩为zip存储。
- 明文攻击 pkcrack
flag{zip_1s_sooo000_funny_20220826_ggGGGGG}
hide.zip
1.伪加密
2.jpg后面尾部有内容。提取出来。
3.50 4b 03 04 逆向提取得到zip文件。
4.大小为4.可以爆破crc32.找脚本爆破一下。
别人的脚本。抄过来。
import zipfile, zlib, string, itertools, tqdm
crcs = {int(i.filename.split('.')[0]): i.CRC for i in zipfile.ZipFile('C:/Users/david/Desktop/1.zip').filelist}
crcs = [crcs[i] for i in sorted(crcs)]
with tqdm.tqdm(total=100 ** 4) as pbar:
for i in itertools.product(string.printable, repeat=4):
crc32 = zlib.crc32(''.join(i).encode())
if crc32 in crcs:
crcs = [''.join(i) if crc == crc32 else crc for crc in crcs]
pbar.update(1)
print(''.join(crcs))
# flag{a7646474-53c7-46f2-8d0f-d995d06d2d}
mimazip.zip
题目:密码忘记了,你能帮我找回吗?
hashcat 7位大小写+数字爆破。 n9jIBPon
解压出来是个乱码文件。可能是交md5吧。
4.zip
jpg文件后面。手动分隔2个文件。
1.密码字典
2.zip包。
跑字典得到密码 Anonymous
解压得到01的二进制。
转二维码。得到反色图像。反色扫码。
flag{c8cf3607383484d7cda7070742ac00d4}
一夫当关
1.手动分隔文件尾部文件
2.末尾是 40 30 B4 05 是50 4B 03 04倒过来。
处理后解压有密码。打开一看全是4b小文件。crc32破解后为 ZmxhZ3vlm73lrrbmnLrlhbPlupTlvZPkvp3nhafms5Xlvotf44CB6KGM5pS/5rOV6KeE55qE6KeE5a6a77yM5bu656uL5YGl5YWo5pWw5o2u5a6J5YWo566h55CG5Yi25bqmX++8jOiQveWunuaVsOaNruWuieWFqOS/neaKpOi0o+S7u++8jOS/nemanCDmlL/liqHmlbDmja7lronlhajjgIJ9
flag{国家机关应当依照法律_、行政法规的规定,建立健全数据安全管理制度_,落实数据安全保护责任,保障 政务数据安全。}
2022年济宁市网络安全大赛 - logtime
流量提取flag.zip里面有个png
流量里提取password 有个!=xxx的比较明显 username: zipzip 用户的password为
pAsswoRdPa55W0rD
解压得到png。
可能是 cloacked-pixel 。r7通道边缘的小点。
。然后用 cloacked-pixel 脚本提取。
crypto01
2016-西普杯京津冀信息安全挑战赛-crypto01
题目: Lf512alKZ84flUk6g+u7Kw== 注意看看hex哦
base64解码完的16个字节直接转hex当成flag
xx - 未做完
enlyZ2h3eXlmeHc0ezhpMAMX1tMzk3amNpNXZqdDRrZg====
拆成2段base64。第一段22位。
enlyZ2h3eXlmeHc0ezhpMA==
MX1tMzk3amNpNXZqdDRrZg==
zyrghwyyfxw4{8i0
1}m397jci5vjt4kf
再处理。
2021长三角示范区网络安全攻防大赛-Misc_blasting
图2 CRC修复。
试了一下音频文件有deepsound隐藏文件, 打开看频谱有一半flag。调一下显示完整: flag{iheat
bwmforpy3.py 双图解水印。。出来个deepsound。已经试到了
文件名john,是直接爆破么?
爆了一下得到 !@#$%^&*
。deepsound提取出来flag的一半 radio}
flag{iheatradio}
b64
分离出rar用winrar打开,报错了。
010 editor打开。
Header CRC mismatch in Block #4: expected CRC is 0xE213, got 0xFB6
将header修改为0xE213。正常了。注释有个375c24f24
不知道是啥。
rar伪加密。24 90 改 20 90。得到图
Mc25LaMdwVfSrAcTi5hUjdjZigLVtdfWj50Btbvat5YTtJjZiV7JXL==
不知道这是啥。可能上面的 375c24f24 是key.
回头看一下b64.png有隐写。
python lsb.py extract b64.png out.txt 375c24f24
得到
0!1bc2defG3Hij4KLMN5OPQ6rtsuv7wXYZ8ghIJ9klmonpqRSTUVWaABCDEF#xyz
换表解一下上面。得到flag
iwanna类型
一般是改存档, 第3个字节是房间号。
ezQR 2023贝格通杯 MISC
旋转180度然后,作为version1的二维码右下角部分, 导入到 QRazyBox
Tool - Brute-force Format Info Pattern, 爆破,然后Decode
得到解压密码, 然后0宽隐写解码。
reverse
陕西省某个 re题目 re8124021974
后面是rc4.前面是一个自解密,在这部分仍然是在自解密
0x6011b0 movzx rax, byte ptr [r11 + r13]
0x6011b5 xor al, 0x26
0x6011b7 mov byte ptr [r11 + r13], al
0x6011bb inc r13
0x6011be jmp 0x6011aa <0x6011aa>
0x6011aa cmp r13, 0x39
0x6011ae ja 0x6011c0 <0x6011c0>
实际还是在解密代码。
r11: 677167706fafd96fa7c1d92626266fa5c1296fafd86fa7c0d92626266fe7d8226fa5c0296fe7c1226b2fd86aafd6d8eed8eed8ee123a677867
异或后: 415741564989ff4981e7ff0000004983e70f4989fe4981e6ff00000049c1fe044983e60f49c1e7044d09fe4c89f0fec8fec8fec8341c415e41
全部解密完来到 601169
.bss:0000000000601164 call sub_6011A5 ; DATA XREF: main+B3↑w
.bss:0000000000601164
.bss:0000000000601169 push r15
.bss:000000000060116B push r14
.bss:000000000060116D mov r15, rdi ; Str[i]
.bss:000000000060116D
.bss:0000000000601170 and r15, 0FFh ; DATA XREF: main+C1↑w
.bss:0000000000601177 and r15, 0Fh ; DATA XREF: main+CF↑w
.bss:0000000000601177 ; 低位
.bss:000000000060117B mov r14, rdi
.bss:000000000060117E and r14, 0FFh ; DATA XREF: main+DD↑w
.bss:0000000000601185 sar r14, 4 ; 高位 >> 4, 去符号
.bss:0000000000601189 and r14, 0Fh
.bss:000000000060118D shl r15, 4 ; 低位左移4
.bss:0000000000601191 or r14, r15 ; 高低位互换了
.bss:0000000000601194 mov rax, r14 ; 赋值回去
.bss:0000000000601197 dec al ; 减3 ^0x1c
.bss:0000000000601199 dec al
.bss:000000000060119B dec al
.bss:000000000060119D xor al, 1Ch
.bss:000000000060119F pop r14 ; DATA XREF: main+115↑w
.bss:00000000006011A1 pop r15
每一位进行变换, 1.高低位互换 2. 减3 3. ^0x1c
逆向回去,(ch ^0x1c ) + 3, 再高低位互换, 后面就是rc4正常解了。好像异或了个啥,不管它直接用它的自动解。
enc1 = bytearray.fromhex('7FDF0F6FA89C1C7C8C3F1C5C7F2C7C7C5C3F2C6C1C5F4F8C3C6C3C2C7F7C0C6C2F3F4C2C5FC8')
for i, ch in enumerate(enc1):
# 逆向回去,(ch ^ 0x1c) + 3, 再高低位互换
a = (ch ^ 0x1c) + 3
a1 = a >> 4
a2 = (a << 4) & 0xff
res = a1 | a2
print(chr(res), end='')
# flag{8069b04f3664b370de92723f617cb53d}