小白的第七天,日常记录WP。
flag奉上:wctf2020{h3re_1s_y0ur_fl@g_s1x_s1x_s1x}
1.打开下载的附件发现里面有内容但是被隐藏了。
2.使用Sublime_Text打开选中发现了一堆点。
3.猜测是二进制数,将长的替换成1,短的替换成0。(先替换长的不然会将短的部分变为1)
4.使用python脚本转化为字符得到flag。
脚本如下,仅供参考~:
import binascii
# 打开 attachment.txt 文件进行读取
with open('attachment.txt', 'r', encoding='utf-8') as input_file:
# 打开 output.txt 文件进行写入
with open('output.txt', 'w', encoding='utf-8') as output_file:
temp_lines = [] # 临时列表,用于存储八行内容
result_chars = [] # 用于存储所有转换后的字符
# 逐行读取文件内容
for line in input_file:
temp_lines.append(line.strip()) # 去除每行末尾的换行符
# 每八行处理一次
if len(temp_lines) == 8:
# 将八行内容拼接成一个字符串
combined_str = ''.join(temp_lines)
# 将拼接的字符串转换为十六进制数,再转为字符
try:
hex_number = hex(int(combined_str, 2))[2:] # 转换为十六进制数
if len(hex_number) % 2 != 0:
hex_number = '0' + hex_number # 确保十六进制数长度为偶数
char = binascii.unhexlify(hex_number).decode('utf-8', errors='ignore') # 转为字符
result_chars.append(char) # 添加到结果列表中
except ValueError:
print("转换失败,请确保输入内容只包含二进制字符(0和1)。")
# 清空 temp_lines 以便处理下一组
temp_lines = []
# 如果文件行数不是8的倍数,处理剩余的行
if temp_lines:
combined_str = ''.join(temp_lines)
try:
hex_number = hex(int(combined_str, 2))[2:]
if len(hex_number) % 2 != 0:
hex_number = '0' + hex_number # 确保十六进制数长度为偶数
char = binascii.unhexlify(hex_number).decode('utf-8', errors='ignore')
result_chars.append(char)
except ValueError:
print("转换失败,请确保输入内容只包含二进制字符(0和1)。")
# 将所有字符拼接成一个字符串写入 output.txt 文件
output_file.write(''.join(result_chars))
print("处理完成,结果已写入 output.txt")
标签:buuctf,WUSTCTF2020,temp,lines,hex,number,output,txt,spaceclub
From: https://blog.csdn.net/2303_77121517/article/details/143664567