右侧有目录导航
[BUUCTF]RSA
分析
得到一段文字:
在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
求解出d作为flga提交
解题
第一想法是python脚本,网上找到一个
import gmpy2
p = 473398607161
q = 4511491
e = 17
d = int(gmpy2.invert(e,(p-1)*(q-1)))
print(d)
得到flag{125631357777427553}
本应在这里就结束……但在其他博主发现一个关于rsa解密软件
RSATOOL
使用: 1.Number Base 设置为十进制 2.注意:Public Exponent这里要使用16进制的数,如果公钥e=17的话,就应该填入十六进制的11 3.给出p,q,e的话直接填入,再点击Calc.D,获得d 4.给出的是n和e的话,输入n和e,点击Factor N(分解),得到p,q,再重复第3步就能得到d了
原文链接:https://blog.csdn.net/MikeCoke/article/details/105920084
将本题带入:(已知p,q,e)
keysize不知道是个啥,但数值好像不影响……
得出flag,即D
[BUUCTF]Mysterious
分析
下载得到可执行文件,随便输入一些,没得反应
解题
PE..L..说明其为32位的exe文件,放入IDA
PE…d…是64位程序
shift+F12检索字符串,看到well done,点进去
原因:大佬说这可能表示该程序输入成功后的情况
类似于答案的文字
左侧401090进去,接着F5进行反编译
将已编译的机器码或字节码重新转换回高级编程语言的过程,让其“易读”
主要分析这一段:
if ( v10 == 123 && v12 == 120 && v14 == 122 && v13 == 121 )
strcpy(Text, "flag");
memset(&v7, 0, 0xFCu);将v7的前252个字节设置为0。
_itoa(v10, &v5, 10);将v10转换为字符串并存储在&v5中。即v5=“123”
strcat(Text, "{");
strcat(Text, &v5);将v5(即v10的字符串表示)连接到Text的末尾。
strcat(Text, "_");
strcat(Text, "Buff3r_0v3rf|0w");
strcat(Text, "}");:将"}"
MessageBoxA(0, Text, "well done", 0);显示一个消息框,内容为Text,标题为"well done"。
所以输出txt为
flag{123_Buff3r_0v3rf|0w}
[BUUCTF]disk
分析
VMDK:(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统)
解题
凡是先打开010
获得ctf{unseCure_quick_form4t_vo1umer
查找另外一半
用7Z打开该vmdk文件,发现fat
FAT文件系统是微软在上个世纪七八十年代为DOS系统开发的一种文件系统。最初是FAT12系统,用在软盘上。后来计算机硬件不断发展,逐渐推出了FAT16和FAT32。 它们大体上是一致的,本质的不同之处在于描述文件存储的FAT表中各元素的长度分别为12位, 16位和32位。
fat文件可以使用VeraCrypt进行挂载
选择一个磁盘,我这里选择E,然后加载
发现需要密码
猜rctf
图片名称提到ignore,那就先不管,在网上看到这段话
这里就有个盲区知识点,在挂载输入密码的时候,不同的密码可以进入不同的文件系统
使用这个password2
用winhex-工具-打开磁盘
找到另一半 李大普
_and_corrupted_1nner_v0lume}
flag{unseCure_quick_form4t_vo1ume_and_corrupted_1nner_v0lume}
知识点:vmdk与fat文件,veracrypt使用
[BUUCTF]数据包中的线索
解题
打开pcapng,进行协议分级,发现Line-based text date占比较大,将其过滤出来
追踪HTTP流,发现base64编码
复制 解码
没看到JFIF以为magic又出问题了,于是换了个网址https://the-x.cn/base64,
下载JPG文件,得出flag
发现电脑好像不可以识图复制flag,果断拿起手机微信识图……
[BUUCTF]喵喵喵
分析
题目是一张图片,打开属性,放入010editor,无果;于是想到LSB隐写
解题
发现一张PNG,但开头不太对劲
将其保存txt文件,发现放入010editor并不可以修改开头
在某位大佬博客中学到一个方法,如下:
首先,在notepad中打开txt文件
Alt按列选择左侧复制,放入Cyberchef
两者交换
下载图片,得到一个二维码
大概率宽高被修改了,在010中进行修改,得到一个完整二维码
扫码得到网址:https://pan.baidu.com/s/1pLT2J4f
接着,得到一个flag.rar,用winrar打开,得到flag.txt
太过分了! 在大佬的wp得知,这是NTFS文件隐写
txt文件隐藏的信息思路
1.观察txt文件的属性说不定会有线索
2.txt文件里面是一堆空行可能存在snow隐写
3.存在NTFS隐写
并且在使用该工具时,下载的压缩包用WinRAR解压才可以提取到隐藏的文件
流隐写得用WinRAR解压
随后得到一个反编译文件python pyc文件 - 知乎
利用在线反编译工具在线Python pyc文件编译与反编译,得到如下代码
# Visit https://www.lddgo.net/string/pyc-compile-decompile for more information
# Version : Python 2.7
import base64
def encode():
flag = '*************'
ciphertext = []#初始化一个空列表ciphertext,用于存储加密后的字符
for i in range(len(flag)):#使用一个for循环遍历flag字符串中的每个字符。
s = chr(i ^ ord(flag[i]))#对于每个字符,使用它的索引i和字符的ASCII值进行异或操作,然后使用chr函数将结果转换为一个字符。
if i % 2 == 0:
s = ord(s) + 10#如果是偶数,将字符s的ASCII值增加10。
else:
s = ord(s) - 10#如果是奇数,将字符s的ASCII值减少10
ciphertext.append(str(s))#将处理后的字符s转换为字符串,并添加到ciphertext列表中
return ciphertext[::-1]#函数返回ciphertext列表的逆序。
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']#定义了一个ciphertext列表,包含了加密后的字符的ASCII值的字符串表示,这个列表是按照加密函数的逻辑生成的
这段代码是一个加密程序,据此,可有写一个脚本将flag解出来,由于能力有限,借鉴一下网上大佬
def decode(ciphertext):
# 反转密文列表
ciphertext = ciphertext[::-1]
flag = []
for i in range(len(ciphertext)):
s = int(ciphertext[i])
# 根据索引的奇偶性进行逆操作
if i % 2 == 0:
s -= 10
else:
s += 10
# 进行逆向的按位异或操作
original_char = chr(i ^ s)
flag.append(original_char)
# 将列表中的字符拼接成字符串
return ''.join(flag)
ciphertext = [
'96', '65', '93', '123', '91', '97', '22', '93', '70', '102',
'94', '132', '46', '112', '64', '97', '88', '80', '82', '137',
'90', '109', '99', '112'
]
# 解密得到的flag
flag = decode(ciphertext)
print("解密后的flag是:", flag)
解密后的flag是: flag{Y@e_Cl3veR_C1Ever!}
参考:【CTF入门】BUUCTF Misc刷题(持续更新) - Super_Snow_Sword - 博客园
知识点:图片隐写,Lsb,txt隐写,宽高,NTFS隐写,py反编译
[BUUCTF]丢失的MD5
分析
打开,得到py文件
import hashlib
for i in range(32,127):
for j in range(32,127):
for k in range(32,127):
m=hashlib.md5()
m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM')
des=m.hexdigest()
if 'e9032' in des and 'da' in des and '911513' in des:
print des
诶 我看不懂 运行一下 报错 直接找ai
ai给了我答案
import hashlib
for i in range(32, 127):
for j in range(32, 127):
for k in range(32, 127):
m = hashlib.md5()
m.update('TASC'.encode() + chr(i).encode() + 'O3RJMV'.encode() + chr(j).encode() + 'WDJKX'.encode() + chr(k).encode() + 'ZM'.encode())
des = m.hexdigest()
if 'e9032' in des and 'da' in des and '911513' in des:
print(des)
得出flag{e9032994dabac08080091151380478a2}
非常草率……
[攻防世界]Pixel-Princess
解题
下载得到一个压缩包
一开始用winrar解压。得到一串jpg字符
修改文件头发现没有,以为就是这么一个文件
后面卡住时看一眼wp发现原来这就有一个图片,换成7Z之后能解压出来
分离一下这个,得到MarioCastle.jpg
得到一个密码:BaD_DR4G0N
没错,就是卡在了这里发现winrar解压出来的本应是一个图片文件
看了一下wp,原来这里还要分离,密码就是上图中提供的密码
得到flag
[攻防世界]信号不好先挂了
分析
又是图片隐写
我也先挂了……
解题
save bin
保存后的zip还需要修复一下才能解压缩
……怎么里面又是这张图片
两张一样图片还可在stegslove合成图片
用BlindWaterMark这个工具一直报错(麻木)
直接打开puzzlesolve,得到图片
知识点:盲水印
信女愿一台不会报错的电脑
[攻防世界]看雪看雪看雪
分析
得到一个rar文件,里面有一张jpg
南方孩子羡慕
按照图片隐写思路:
- 属性
- 010editor(隐藏文件分离,宽高)
- stegslove
- 等
解题
按照刚才思路,没有什么发现
回头看看题目“看雪看雪看雪”,好像有个东西叫雪隐写
后面看wp,其实属性里面有提及过,只是我没有注意到…….
所以压缩包内可能有其他我看不见的文件
于是乎
将后面这一大段复制进sublime
看吧,里面还是有东西的
将其全部复制下来进一个新的txt文件,用snow工具
得到flag
知识点:图片隐写,snow隐写
[攻防世界]打野
解题
得到一张bmp文件
查看010,stegslove,暂时没啥发现
看了wp,学到一个新工具———zsteg
然后我一使用,出问题了
(but之前写另外一个题目没问题)
…………
时隔多日,我又回来了
如果zsteg出现栈报错“tack level too deep (SystemStackError)”,可以将命令改成“zsteg --msb 瞅啥.bmp”或“zsteg -o xY 1.bmp”,改变扫描顺序。 -o 是设置行列的读取顺序 --msb:most significant BIT comes first,最高有效位排在第一位
得出qwxf{you_say_chick_beautiful?}
[攻防世界]不确定,再看看
题目
做题做累了吧,给你准备了一道钢琴曲,要仔细听哦!我藏得很深。
hint1:信息隐藏一般要求载体需要有一定的冗余度,而base64编码刚好就有这个特点。
解题
下载得到音频文件
放入Audacity,并无收获
解锁新工具Deepsound
主要用于处理音频文件的加密。以将敏感数据隐藏在音频文件中,从而实现数据的保密和安全传输。
得到txt文件
解码
知识点:音频隐写,新工具Deepsound
标签:文件,ciphertext,des,入门,隐写,MISC,flag,txt,放弃 From: https://www.cnblogs.com/arui-li/p/18562543