Misc
火锅链观光打卡
签到题没什么好说的,写题兑换flag
Power Trajectory Diagram
思路来源于大一的队友(不然真急眼了)
从index中猜测13位输入,并且在trace的深度图中可以看到确实有十三条类似于输入信号的内容
每条内容都会有缺失一条部分 也是功率波动的部分
手动读出缺失的Y轴坐标再根据inputs表读出内容
import numpy as np
ind = [35,41,87,138,162,212,275,307,346,388,438,476]
data = np.load('./input.npy')
for i in ind:
print(data[i+1],end='')
得到flag{_ciscn_2024_}
Tough_DNS
数据流前部分01010的二进制串数量和长度是二倍关系,可以推测为二维码,写脚本导出
from scapy.all import rdpcap, DNSQR, DNS
def extract_dns_queries(pcap_file):
# 读取 pcapng 文件
packets = rdpcap(pcap_file)
# 存储所有的 DNS Queries Names
dns_queries = []
# 遍历所有的数据包
for packet in packets:
# 检查数据包是否包含 DNS 层
if packet.haslayer(DNS):
dns_layer = packet[DNS]
# 检查 DNS 请求
if isinstance(dns_layer.qd, DNSQR): # 确保有 DNS 查询请求存在
dns_queries.append(dns_layer.qd.qname.decode('utf-8'))
return dns_queries
# 指定你的 pcapng 文件路径
pcap_file = 'Tough_DNS.pcapng'
queries = extract_dns_queries(pcap_file)
print("Extracted DNS Queries:", queries)
每四个都会重复,去重做成二维码扫描得到一串密码
后续是txt类型的dns记录,对每个txt内容写脚本导出
from scapy.all import rdpcap, DNS, DNSQR, DNSRR
data=[]
def extract_txt_records(pcap_file):
# 读取 pcapng 文件
packets = rdpcap(pcap_file)
# 存储所有的 TXT 记录内容
txt_records = []
# 遍历所有的数据包
for packet in packets:
# 检查数据包是否包含 DNS 层
if packet.haslayer(DNS):
dns_layer = packet[DNS]
# 检查是否有回复记录
if dns_layer.an: # an is the answer field of DNS
for i in range(dns_layer.ancount):
# 获取单个记录
record = dns_layer.an[i]
# 检查记录类型是否为 TXT
if isinstance(record, DNSRR) and record.type == 16: # 16 is the type code for TXT records
txt_content = record.rdata
if isinstance(txt_content, bytes):
txt_records.append(txt_content.decode('utf-8', errors='ignore'))
elif isinstance(txt_content, list):
for entry in txt_content:
txt_records.append(entry.decode('utf-8', errors='ignore'))
return txt_records
# 指定你的 pcapng 文件路径
pcap_file = 'Tough_DNS.pcapng'
txt_contents = extract_txt_records(pcap_file)
print("Extracted TXT Records:", txt_contents)
for i in txt_contents:
print(i,end='')
观察得到的内容再与DNS请求分析可以看到是0x4500和0x6421交替发出请求,继续分离
for i in range(0,len(data),2):
print(data[i],end="")
print("\n")
for i in range(1,len(data),2):
print(data[i],end="")
明显一个压缩包(504b0304)和一个不知道是什么的文件,这里先保存压缩包并尝试用前面拿到的密码解开得到一个secrt.pgp,然后用题目给出的字符串反转再hex2str再反转得到私钥导入密码。。。(吐槽一下这个只能纯猜有点无语)
然后就是用密码导入密钥 密钥打开前面和压缩包混杂的文件得到flag
神秘文件
一个怨念很深的无语题目
Part1:
在附件元信息中,用exiftool可以导出
丢进赛博厨子得到part1: flag{e
Part2
ppt中附着的word,字体中隐藏取消隐藏文字 调整字体颜色字号得到凯撒
part2: 675efb
分析zip文件发现藏有宏
Part3
问GPT之后用olevba导出宏
olevba ./attachment.pptm
同样问gpt发现是rc4 赛博厨子一把梭了
part3: 3-34
Part4
直接解得到part4:6f-40
Part5
最后一页的注释可以看到N轮加密base64,随波逐流秒了
part5:5f-90d
Part6
缩小之后看到明文,base64
part6:d-2
Part7
zip打开找到一段rot13
part7:b3
Part8
手翻看到一段很让人在意的全拼中文单引号,跟随提示删除所有 B b 1 3,得到
Part9
第五张ppt可以看到一个盖住的图片,在zip中找到之后打开这图片底下得到
part9:deH
Part10
缩小看到注释 维吉尼亚解得到
Part10: 9}
连起来得到flag{e675efb3-346f-405f-90dd-222b387edee9}
盗版软件
打开exe得到一个R通道隐写文件的lenna 打开后得到一个.b 根据字符特征分析可能是base85,丢进厨子之后根据开头的8猜测是shellcode,直接丢进沙箱可以得到回连ip(写wp的时候懒得复现了)
通风机
没啥意思的一题,下载西门子下蛋软件(真的会下很多东西),无法正常打开,创建一个新的可以发现缺少文件头,补全后打开一顿翻可以找到flag