跟着大师傅的公众号做题的week1
来源以及说明
(文章主要是了解怎样使用长弓三皮大师傅的随波逐流工具,wp以及附件来自大师傅长弓三皮)
(这周主要是做笔记的软件老是出现问题,有一些笔记有点乱,后面慢慢改进)
软件及题目下载
http://www.1o1o.xyz/bo_softdown.html
CTF题目writeup讲解教程见微信公众号:长弓三皮
1.[0xGame-2022] [MISC]_看不见的字符
题目:
不管他是什么,先拖入****[随波逐流]CTF编码工具
零宽字符
呵呵,文件中包含零宽字符
拖进 subtext 是的显示
[随波逐流]CTF编码工具****---字密4---JS零宽字符解密1
base16-32-64-91混合多重解码
[随波逐流]CTF编码工具****---base/rot---base16-32-64-91混合多重解码
得到flag
0xGame{Inv1sible_W0rds}
2.[0xGame-2022] [MISC]_ezPcap
题目:
不管他是什么,先拖入[随波逐流]CTF编码工具********
随波逐流解流量包
[随波逐流]CTF编码工具---文件---pacp流量分析
协议下拉:get
得到flag
3. [0xGame-2022] [MISC]_Time To Live
题目:
进制转换补全0位
把所有数字转2进制之后可以发现后4位全是1
补全2进制,取前4位即可解密
import binascii file_path = r'Time To Live.txt' try: with open(file_path, 'r') as file: lines = file.readlines() # 初始化二进制字符串 bina = '' for line in lines: a = int(line.strip()) # 去除可能的换行符并转换为整数 a = bin(a)[2:].zfill(8) # 转换为二进制并填充到8位 bina += a[:4] # 只取前4位 # 将二进制字符串转换为字节 # 由于a2b_hex需要十六进制字符串,我们需要将二进制字符串转换为十六进制 # 每两个二进制位对应一个十六进制位 hex_str = '' for i in range(0, len(bina), 4): binary_chunk = bina[i:i+4] hex_str += format(int(binary_chunk, 2), 'x') # 转换为十六进制 # 使用binascii.a2b_hex将十六进制字符串转换为字节 base = binascii.a2b_hex(hex_str) print(base) except Exception as e: print("发生错误:", e)
明显是个图片
base64转图片
[随波逐流]CTF编码工具---图片---base64转图片
盲水印
0xGame{2ade442e-2b56-4794-9d58-cff8eb88b2bf}
4.[0xGame-2022] [MISC]_隔空取物
题目:
不管他是什么,先拖入[随波逐流]CTF编码工具********
************是真加密
明文攻击(利用文件头解密版)
新建一个1.png文件,拖入[随波逐流]CTF编码工具********
[随波逐流]CTF编码工具****** ---文件---读取 为16进制 ******
删除第一行的所有数据,右键:导出为hex文件,2.png
点击“命令行窗口”图标
输入命令:
bkcrack -C f:\temp\flag.zip -c flag.png -p f:\temp\2.png -o 0
(我的命令)
bkcrack -C D:\同步文件\OneDrive\桌面\0题库\1\flag.zip -c flag.png -p D:\同步文件\OneDrive\桌面\0题库\1\2.png -o 0
-C参数为被爆破的文件名
-c密文,即解压后得到的文件名
-p明文 png的文件头89504E470D0A1A0A0000000D49484452
-o表示明文相对于密文开头的偏移量,本题知道的是文件头,因此偏移量为0
得到keys,开始破译数据
破译数据
bkcrack -C f:\temp\flag.zip -c flag.png -k ab7d8bcd 6ce75578 4de51c12 -d flag.png
(这里虽然报错,但是flag.png已经拿出来了)
得到flag.png图片
拖入[随波逐流]CTF编码工具
图片宽度和高度被修改过,自动修复高度
得到flag
5.[0xGame-2022] [MISC]_babyRe
反编译pyc文件
pyc文件
F:\ctftool\反编译pyc\afe4b-main\afe4b-main\pycdc
pycdc.exe flag.pyc > 1.py
利用pycdc.exe反编译得到1.py
# Source Generated with Decompyle++
# File: flag.pyc (Python 2.7)import base64def encode(str):fflag = '0'for i in range(1, len(flag)):x = ord(flag[i]) ^ ord(flag[i - 1])x += 30fflag += chr(x)return base64.b64encode(fflag)flag = open('flag.txt').read()
enc = encode(flag)
print enc
6.0xGame-2022] [MISC]_booooom
CRC爆破
题目:
注意到password被分成了三个部分并且每个部分都在6字节以下,考虑crc32爆破,使用现成工具或者写脚本爆破都可以,得到password:You_Know_CRC32
得到
🙃💵🌿🎤🚪🌏🐎🥋🚫😆✅🚫😁ℹ🎈🚨🌊📮😁🔬🌏🍵🚫✖🎅🕹🐘🎈⌨😇🚹☂🚰☀🌿😎😂🐅💵☀💵⌨🤣🚫😇😎☀🤣🚫😀😆🚪😂🦓🌏ℹ🎤🍴👉🎈😇✉⏩🏹🔪🎤🏎🚹🐍⏩💵🎤🚨🚫⌨🎤🌪👑📮✉✉ℹ🍌💵📂😀🗒🗒
JS:emoji-aes CryptoJS加解密**
(Key和上面同步)
[随波逐流]CTF编码工具---字密4---JS:emoji-aes CryptoJS加解密
得到flag
0xGame{8d815cfe-851c-4c8c-b283-858d3f3e8c91}