吾杯网络安全技能大赛------Misc方向WP
Sign
题目介绍: 浅浅签个到吧
解题过程:
57754375707B64663335376434372D333163622D343261382D616130632D3634333036333464646634617D
直接使用赛博橱子秒了
flag为 WuCup{df357d47-31cb-42a8-aa0c-6430634ddf4a}
原神启动!
题目介绍: 旅途的道路很长 加油旅行者!
解题过程:
题目给了一张图片原神启动.png和一个压缩包原神启动.zip,压缩包是有密码的;我们在尝试后发现图片存在RGB通道隐写,直接放入StegSolve,可以得到一个假的flag,但是这个正是我们压缩包所需要的密码(后续两个压缩包也是,不再赘述)
WuCup{7c16e21c-31c2-439e-a814-bba2ca54101a}
解密后得到一个原神启动.docx,将后缀改为zip,解压后可以在word/media/下找到新的图片,再次放入StegSolve中查看,发现新密码
WuCup{6bb9d97d-7169-434b-a7cf-0ee0b6fdfa30}
用第二个密码解密img.zip后得到新的压缩包test.zip,仍然需要密码,我们在word/document.xml中发现第三个密码
WuCup{f848566c-3fb6-4bfd-805a-d9e102511784}
解密后再text.txt中发现真正的flag
WuCup{0e49b776-b732-4242-b91c-8c513a1f12ce}
太极
题目介绍: 太极亦是轮回,周而复始,每一次都是新的开始。
Tips: 来寻找文字中的奥秘吧~
本身入轮回,flag格式:WuCup{xxxxx-xxxxx-xxxxx-xxxxx-xxxxx}
太极本就是在轮回中不断循环
太t极i生s两n仪i
部分flag组成: wucup tieny-
解题过程:
给了一堆乱码,先修复一下得到
一开始没做出来,看完给的提示出了,大概意思就是先列出所有字的拼音
Tai ji sheng liang yi - liang yi sheng si xiang - si xiang sheng ba gua - ba gua ding ji xiong - ji xiong sheng da ye
然后每部分按照拼音分别取每个字的1,2,3,4,5位数(这里注意位数不够的字直接从头重复数),就会得到flag
WuCup{tieny-lieig-sieau-bunig-jieay}
旋转木马
题目介绍: 好大一堆乱码!
解题过程:
题目给了两个很大的文件,里面都是base64字符;首先我们将他们拼接到同一文档内,这里写个脚本拼
python
# 打开第一个文件并读取内容
with open('flag1', 'r') as file1:
content1 = file1.read()
# 打开第二个文件并读取内容
with open('flag2', 'r') as file2:
content2 = file2.read()
# 将两个文件内容拼接
combined_content = content1 + content2
# 将拼接后的内容写入到新文件
with open('out.txt', 'w') as output_file:
output_file.write(combined_content)
print("文件内容已成功拼接并保存到 'out.txt'.")
然后base64递归解密,脚本如下
python
import base64
def decode(f):
n = 0;
while True:
try:
f = base64.b64decode(f)
n += 1
except:
print('[+]Base64共decode了{0}次,最终解码结果如下:'.format(n))
print(str(f,'utf-8'))
break
if __name__ == '__main__':
f = open('./out.txt','r').read()
decode(f)
def b16decode(param):
return None
#[+]Base64共decode了53次,最终解码结果如下:
57754375707b31656239303063302d613738362d343266612d393432632d6639613763323164666564667d
最后使用赛博橱子秒了
flag为 WuCup{1eb900c0-a786-42fa-942c-f9a7c21dfedf}
音文
题目介绍: 兄弟 这个flag太开门了,丢进去听听声音...不对,有裂
解题过程:
只给了一个音频文件,用Audacity、deepsound等软件看完后没发现什么有用的信息,直接尝试foremost,分离出了一个新的压缩包,没有密码直接解压,得到很多空文件,但是文件名有点蹊跷
直接写个脚本将文件名都提取出来
python
import os
import re
# 获取当前目录下的所有文件名
def extract_number(file_name):
match = re.search(r'(\d+)', file_name)
if match:
return int(match.group())
else:
return float('inf') # 如果没有找到数字,返回一个很大的值,放到最后
file_names = sorted(os.listdir('.'), key=extract_number) # 排序文件名
# 拼接文件名中的中文字符
result = ''
for file_name in file_names:
# 仅保留文件名中的中文字符
chinese_chars = ''.join(re.findall(r'[\u4e00-\u9fa5]', file_name))
result += chinese_chars
# 将拼接结果保存到 out.txt 文件
with open('out.txt', 'w', encoding='utf-8') as f:
f.write(result)
print("结果已保存到 out.txt")
然后我们找到了规律,将"苏珊"换成".";"哎哟"换成"-";"你干嘛"换成"空格"。
.-... .---- ----- ....- -.-.-. .-... .---- .---- -.... -.-.-. .-... .---- .---- -.... -.-.-. .-... .---- .---- ..--- -.-.-. .-... .---- .---- ..... -.-.-. .-... ..... ---.. -.-.-. .-... ....- --... -.-.-. .-... ....- --... -.-.-. .-... .---- .---- ..--- -.-.-. .-... ----. --... -.-.-. .-... .---- .---- ----- -.-.-. .-... ....- -.... -.-.-. .-... .---- .---- ----. -.-.-. .-... .---- .---- --... -.-.-. .-... ----. ----. -.-.-. .-... .---- .---- --... -.-.-. .-... .---- .---- ..--- -.-.-. .-... ....- -.... -.-.-. .-... ----. ----. -.-.-. .-... .---- .---- ----- -.-.-. .-... ....- --... -.-.-. .-... ----. ----. -.-.-. .-... .---- ----- ....- -.-.-. .-... ----. --... -.-.-. .-... .---- ----- ---.. -.-.-. .-... .---- ----- ---.. -.-.-. .-... .---- ----- .---- -.-.-. .-... .---- .---- ----- -.-.-. .-... .---- ----- ...-- -.-.-. .-... .---- ----- .---- -.-.-. .-... ....- --... -.-.-. .-... -.... ..... -.-.-. .-... ---.. ....- -.-.-. .-... ----. ..... -.-.-. .-... ....- ----. -.-.-. .-... ....- -.... -.-.-. .-... ....- ---.. -.-.-. .-... ....- -.... -.-.-. .-... ----. --... -.-.-. .-... .---- .---- ..--- -.-.-. .-... .---- ----- --... -.-.-. .-... .---- -----
接着使用脚本解密摩斯密码
python
txt = input().strip()
if '0' in txt:
table = ''.maketrans('01', '.-')
txt = txt.translate(table).split()
else:
txt = txt.split()
morse_code_dict = {
'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F',
'--.': 'G', '....': 'H', '..': 'I', '.---': 'J', '-.-': 'K', '.-..': 'L',
'--': 'M', '-.': 'N', '---': 'O', '.--.': 'P', '--.-': 'Q', '.-.': 'R',
'...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X',
'-.--': 'Y', '--..': 'Z',
'.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5',
'-....': '6', '--...': '7', '---..': '8', '----.': '9', '-----': '0',
'..--..': '?', '-..-.': '/', '-.--.': '(', '-.--.-': ')', '-....-': '-',
'.-.-.-': '.', '--..--': ',', '.----.': '\'', '---...': ':', '-.-.-.': ';',
'-...-': '=', '.-.-.': '+', '-.-.--': '!', '..--.-': '_'}
# reversed_morse_code_dict = {value: key for key, value in morse_code_dict.items()}
for i in txt:
print(morse_code_dict.get(i), end="")
得到
None104;None116;None116;None112;None115;None58;None47;None47;None112;None97;None110;None46;None119;None117;None99;None117;None112;None46;None99;None110;None47;None99;None104;None97;None108;None108;None101;None110;None103;None101;None47;None65;None84;None95;None49;None46;None48;None46;None97;None112;None107;None10
然后我们只保留十进制文本
104 116 116 112 115 58 47 47 112 97 110 46 119 117 99 117 112 46 99 110 47 99 104 97 108 108 101 110 103 101 47 65 84 95 49 46 48 46 97 112 107 10
#ascii(10进制转字符)
https://pan.wucup.cn/challenge/AT_1.0.apk
将得到的apk文件放入模拟器,然后对音频文件进行解密,这里需要音频文件的路径
符)
https://pan.wucup.cn/challenge/AT_1.0.apk
将得到的apk文件放入模拟器,然后对音频文件进行解密,这里需要音频文件的路径
[外链图片转存中...(img-KfnZDcdo-1735829241606)]
[外链图片转存中...(img-fEbMi1ef-1735829241606)]
[外链图片转存中...(img-rEnwZ2WD-1735829241607)]