broken-hash:
有个tips和图片,tips里是MD5加密模板;图片放到随波逐流里binwalk提取一下,有个压缩包要密码
打开发现下面有字符串

这个和那个MD5脚本联系起来,但是不知道这字符串是前11位还是后11位,那就暴力破解
import hashlib
import itertools
import string
# 目标 MD5 截断值(你提供的字符串)
target_md5_trunc = "7bf21a26cd6"
# 密码字符集:字母(大小写)+ 数字(对应你的注释 letters+digital)
chars = string.ascii_letters + string.digits
# 密码长度范围(CTF 常见 4-8 位,可调整)
pwd_length_range = range(4, 9)
def brute_force_md5_trunc():
for length in pwd_length_range:
# 生成所有可能的字母数字组合
for pwd_tuple in itertools.product(chars, repeat=length):
pwd = ''.join(pwd_tuple)
# 计算 MD5 哈希
md5_full = hashlib.md5(pwd.encode()).hexdigest()
# 对比前 11 位(也可试后 11 位,把 [0:11] 改成 [-11:])
if md5_full[0:11] == target_md5_trunc:
print(f"找到匹配密码!原始密码:{pwd}")
print(f"完整 MD5 哈希:{md5_full}")
return
print("未找到匹配密码(可调整密码长度范围再试)")
if __name__ == "__main__":
brute_force_md5_trunc()
得到原始密码:H3lo
完整 MD5 哈希:7bf21a26cd627170e0e05ceee551c044
MD5是压缩包密码,解压即可得到flag
deep:
有一个数字文本和一段代码,代码运行的是文本中的,需要逆向推出flag
这段代码的算法是将g_szBuffer也就是flag以每四个字节为一组,以每四个字符为一个unsigned int小端序为存储,转换为十进制存储
例如:
如果g_szBuffer中有 "abcd",
则:a的 ASCII 码是 0x61,b是 0x62,c是 0x63,d是 0x64。小端序存储为:0x64636261
对应的十进制值是:1684234849
那么就逆向写代码:
def restore_flag(numbers):
flag = ""
for num in numbers:
# 将每个整数转换为4字节的小端序字节串
bytes_data = num.to_bytes(4, byteorder='little')
# 转换为ASCII字符并拼接
flag += bytes_data.decode('ascii', errors='ignore')
return flag
# 你提供的hint数据
hint_numbers = [
859254885,
1714499893,
875837240,
825505075,
962737761,
1647404083,
842360118,
811938613
]
# 恢复flag内容
original_data = restore_flag(hint_numbers)
# 按要求格式输出
print(f"flag{{{original_data}}}")
爱你:
图片放入stegsolve里进行分析,红绿蓝0位

发现了有压缩包,提取出来,把多余的删掉,放到010中,结尾发现有东西

有个rfc4042,后面那个不知道是啥,去搜一下,参考其它博客,在愚人节这天IEEE发表的rfc4042文件规定了utf9和utf18这2个所谓的Unicode的高效转换格式
用代码解:
import utf9
pwd = b",\x9b\xce\xa6s)\xd0\xd2t\x10\x9c\x0c'3\x99\xdc`r2\x08\r'1\x010\xdev2\x90\xcf&\xe3 \xc4"
result = utf9.utf9decode(pwd)
print(result)
运行这个要安装utf-9库 https://github.com/FantasqueX/utf9
得到压缩包密码LoveCynd1,解压即可
菜狗:
压缩包里面有文件,binwalk提取出来压缩包,里面有个图片,爆破提取出来的压缩包

得到密码解压出一张图片,看别人的博客,这是cloacked-pixel隐写,密钥是压缩包密码
用PuzzleSolver一把梭 https://blog.csdn.net/gitblog_09787/article/details/143126554

东北话是最好的语言:
打开是一个文本,结尾发现倒叙的data等数据,用cyberchef逆转一下

在线base64转图片

把图片拖进010里,末尾有base64编码,解一下

这是东北话,以为是有关东北话的加密,但是不是
后面没有思路了,看一下别人的思路 https://blog.csdn.net/m0_62584492/article/details/134846318
这是东北话编程语言,接这个还需要环境 https://github.com/zhanyong-wan/dongbei
用命令解出来

根据题目要求要换成字符,转过后就是flagizhere,MD5加密即可
路由自启动:
还是根据别人的博客,binwalk分离,再用unsquashfs root提取

在提取文件中找etc/rc.local即可找到flag

让op跑起来:
参考博客 https://blog.csdn.net/m0_62584492/article/details/134846318
这是让跟着步骤进行的,但是这里需要注意在步骤当中

上面标红的得转换一下,还有修改网络连接,Win+R,输入ncpa.cpl并回车,会直接弹出 “网络连接” 界面,在这里能快速找到 “VMware Network Adapter VMnet1” 网卡

启动虚拟机,看到内核输出信息,刷屏过后等待其静止不动,按一下回车,进入终端。输入vi /etc/config/network,按i编辑,修改ip地址为192.168.2.50(和上面设置虚拟网卡的ip地址在同一个网段,但不要重复),注意修改的是len那一段的。编辑完成后按ESC,输入:wq,保存配置文件
reboot重启虚拟机,静待其刷新完成,可能会停在一个类似于错误的地方,但是这里其实不用启动成功,直接去浏览器输入路由192.168.2.9就可以访问,账号密码题目给了,点进去即可

谁动了乃怪的数据:
参考博客 https://blog.csdn.net/m0_74051295/article/details/133846413
挂载起来啥都没有,用DiskGenius恢复文件,有一个压缩包和PDF,复制到文件夹
用010打开PDF搜索key找到

base32解密,删除05,这是压缩包密码,解压后是个MP3,后缀改为txt,里面就是flag
生产环境下的lvm:
依旧参考上面的博客 https://blog.csdn.net/m0_62584492/article/details/134846318
跟着步骤来,大致是添加虚拟机,查看信息,挂载分区,发现有个文件损坏,卸载分区并恢复快照,最后挂载分区并查看内容即可
Mozilla:
依旧还是上面的博客
使用firepwd.py工具可解密该题的密码,GitHub - lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords
解码的时候要将key3.db和logins.json以及整个文件夹5vz0vl9j.default放到firepwd的文件夹中
python firepwd.py -d 5vz0vl9j.default/

MD5加密即可
鎏金哇开呀库裂!:
是张图片,放入随波逐流,又隐藏文本,binwalk分离一下,两个压缩包,放到010里

看到结尾都有一个base64编码,解一下

以为是压缩包密码,但是解压发现错误,它让仔细看图片,好家伙,在图片左下角有owForever

这是A9B0A.zip压缩包的密码,解压后发现里面一堆名,是字典爆破,后缀改为dic

解压后是一个文本,零宽字节解密 隐藏字符加密

四选其二:
三个文件,目前有点眉目的就是看着那个表格有个起字好像跟迷宫一样,6位爆破awsd.zip

得到解压密码nopass,解压出来都是网页啥的,好像就是个表格还有把表格给拆分了,无语
好吧,卡着了,看一下别人的博客,把另一个压缩包放到010里没发现啥
又是个根据那题目,四选其二意思是四个字节为一组选其第二个,仔细观察压缩包每个字节发现一个有意思的情况,就拿50 4B 03 04 来说,本来是03变成了00也就是把它的第二个位置变成了0,再往后面观察,会发现整体上整个压缩包每个字节的第二位为0或者1的情况很多,四个字节为一组,而且每个字节的第二位都变成0或1,写一个脚本提取
用一下大佬的代码:
import binascii
with open('flag6.3.zip',"rb") as flag:
b = flag.read()
b=binascii.hexlify(b).decode()
a=[]
for i in range(0,len(b),4):
group=b[i:i+4]
if len(group)>2:
ch=group[1]
a.append(ch)
print(''.join(a))
运行出来是一串二进制,要转二维码
下面可以当成模板
from PIL import Image
with open('1.txt', 'r') as file:
content = file.read()
width = int(len(content) ** 0.5)
height = (len(content) + width - 1) // width
image = Image.new('1', (width, height), color=255)
pixels = image.load()
for i in range(len(content)):
x = i % width
y = i // width
if content[i] == '1':
pixels[x, y] = 0
image.save('222222.png')
扫一下得出路径,根据表格转换成0和1
0010 0100 01 110 1111011 11000 0010 01111 0 0010 0 0010 0010 00011 01 01111 00001 01111 00011 11110 100 10000 10000 00001 01 11111 1000 1000 0010 00111 00001 00001 11000 00111 00111 11110 11110 1111101
摩斯解码

大写转成小写 flag{7f1efeff3a14139d664a0bbf24472299}
EZ签到:
脑洞题,hinit.zip是伪加密,修复后解压出一只猫,这图片去其它工具里查看一堆,但都没用,看来别人的WP,才知道是F5隐写,不过这个挺常见的,密码只能根据题目猜qiandao

这仔细看啊可能意思还挑逗我们是吧,不过依旧会被我们解出来
这是flag.zip压缩包密码,解压后看样子像是分开的图片,而且图片大小不一样,用PS修应该像素为40,这里用AI教的


弄好之后,用Imagemagick工具和虚拟机指令

拼接完成后发现还是乱序的,用Puzzle-Merak排序,其实可以直接用这个,不用拼接
还原后是一段base64编码
R1kzRE1RWldHRTNET04yQ0dRMlRNTUpYSUUzVFNOS0dHVVpUTU9KV0c0M0VLTktHR1E0VE1SSlhJUT09PT09PQ==
base64解
GY3DMQZWGE3DON2CGQ2TMMJXIE3TSNKGGUZTMOJWG43EKNKGGQ4TMRJXIQ======
base32解
666C61677B45617A795F5369676E5F496E7D
base16解 flag{Eazy_Sign_In}
社会主义大法好:
这东西靠经验和感觉,压缩包需要密码,图片改后缀后是一段话,根据内容,试一下压缩包密码,是1945
解出来一眼社会主义核心价值观加密

以为这是base64加密,但不是
继续参考别人的博客,是rabbit加密,没有密钥解不出来,再根据图片,另一个时间2014即可解出来

&spm=1001.2101.3001.5002&articleId=155356538&d=1&t=3&u=f8b814bb9bdd4a93abfcaed7e37aa549)
1393

被折叠的 条评论
为什么被折叠?



