2023"安洵杯"第六届网络安全挑战赛-Misc WP

打印 上一主题 下一主题

主题 872|帖子 872|积分 2626

dacongのsecret

题目

我的解答:
题目给出一张png图片和一个加密压缩包,压缩包里面还存在另一张jpg图片

看名字就知道是盲水印。由于压缩包里的图片提不出来,因此是单图盲水印,我们使用工具得密码

d@C0ng 1s cUt3!!!
解压得到另一张图片,010分析一下得到一串字符

一眼丁真压缩包逆过来了,我们给他反转一下


提取出来后需要密码,接下来我们寻找密码。。。分析原本第一张图片发现有两个IDATx,删除第一部分保存。

然后爆破宽高(自己试着估计宽高就行,数据不唯一)得到密码


然后解压之前提取出来的压缩包里的文本得到

一眼base64隐写,B神工具直接梭

最后用jphs(参考:https://blog.csdn.net/qq_53079406/article/details/124578357)解出flag

得到
flag{d@C0ng_1s_r3@lIy_Re@iLY_Cute}
dacongのWindows

题目

我的解答:
一个取证题目,R-STUDIO恢复一下

发现一个flag3.txt,打开得到
U2FsdGVkX18M+E34cKJlmTU3uo1lHqjUQhKPTBGJiMjg4RWX6saTjOJmLU86538e
AES解码,但需要密码,我们需要找到密码。。
根据文件描述提示可知是注册表,利用vol输入指令:
python vol.py -f dacong.raw windows.registry.printkey得到一串字符
d@@Coong_LiiKEE_F0r3NsIc

猜测是AES密码,解码得到

这个一看就是flag最后一段,根据文件名flag3猜测还有flag1,flag2,我们继续分析取证出来的信息
我们看到还有一个压缩包

我们把压缩包恢复出来然后解压,但是解压出现问题

我们使用vol给整下来得到

很明显会发现是无密码的snow隐写,直接解码得到的二段flag:
_tHE_Dddd
还剩最后一段,继续找

txt文件提示

根据这个提示在加上daco​ng_l​ike_​list​en里面好多wav文件,听着像sstv。但这么多的文件总不能一个个试着听吧。。。。
我们搜索一下上面txt文件里面提到的???music,搜索这个歌名发现一个可疑之处39,那么我们就找到第39个wav听一听

 

使用手机打开robot36得到第一段flag

flag{Ar3_Th3Y
拼接得到最终flag
flag{Ar3_Th3Y_tHE_DddddAc0Ng_SIst3Rs????}
Nahida

题目
hi.txt
  1. 初次见面,我已经关注你很久了。我叫纳西妲,别看我像个孩子,我比任何一位大人都了解这个世界。所以,我可以用我的知识,换取你路上的见闻吗?
  2. wink!
复制代码

我的解答:
将第二个文件010分析,发现是逆着的jpg

右键导出16进制

然后得图片


我们根据hi.txt里的wink!翻译为:眨眼示意(和眼睛有关而且看图片小女孩在眨眼睛捏。。)
可知是silenteye解码,而密码猜测就是题目名字Nahida

d0g3{Nahida_is_the_best_in_the_world!}
疯狂的麦克斯

题目

我的解答:
把麦克斯的称号文件零宽隐写得到密码

解压嗨.zip,得到一个docx文件,改后缀为zip得到一个txt文件

末尾有

ROT13解码得到(随波逐流凯撒解码也可以,实际上是把零宽得到的密码换成整数就是偏移量。但随波逐流直接就出来了哈哈。)

既然末尾是凯撒偏移,那说明整个文本都偏移了。对列表同样使用ROT13解码

根据题目描述麦克斯MAX(最大值),只要找到列表中最大值就是压缩包密码,遍历得到456788P
  1. import re  
  2.   
  3. def extract_numbers(s):  
  4.     # 使用正则表达式提取数字  
  5.     return [int(num) for num in re.findall(r'\d+', s)]  
  6.   
  7. def find_max_in_list(lst):  
  8.     max_val = -1  # 初始化一个很小的值  
  9.     for item in lst:  
  10.         numbers = extract_numbers(item)  
  11.         if numbers:  # 如果在字符串中找到了数字  
  12.             max_val = max(max_val, max(numbers))  
  13.     return max_val  
  14.   
  15. lst = ['71132E', '328051N', '248199O', '96369v', '216076R'...]  
  16. print(find_max_in_list(lst))
  17. '''
  18.     遍历数组中的每个字符串。
  19.     使用正则表达式或其他方法提取每个字符串中的数字部分。
  20.     将提取的数字转换为整数或浮点数。
  21.     比较这些数字并找出最大值。
  22. '''
复制代码

根据麦克斯的称号文件里面信息:
都看到这里了!
最后的密码是 某个值的base64+麦克斯的称号 哦
得到密码需要base64加密一下

解压得到
D0g3{Th1s_REA11Y_MAX_F1A4_GGB0ND}
或者使用脚本对列表base64加密(推荐此方法!)
  1. import base64
  2. lst = ['71132E', '328051N', '248199O'... ]
  3. # base64加密函数
  4. def encrypt_string(string):
  5.     encoded_bytes = base64.b64encode(string.encode('utf-8'))
  6.     return encoded_bytes.decode('utf-8')
  7. # 打开自定义文件
  8. with open('output.txt', 'w') as file:
  9.     # 遍历列表中的每一个值
  10.     for value in lst:
  11.         # 加密信息并写入文件
  12.         encrypted_value = encrypt_string(value)
  13.         file.write(encrypted_value + '\n')
复制代码
得到

然后字典爆破密码,一样可以得到密码

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表