0%

[P5726]官方解题思路

2024-08-28 20:00By
d3f4u1t
MISC
  • 题目名称

The Least Secret

  • 描述

集齐流量中的所有碎片,换取NSS round 3rd最深处的大礼吧!

  • 附件

message.pcapng

  • 思路

流量包中dump下相关数据,对数据按照索引进行排序,对键值hex2ascii后进行LSB提取得到隐藏的信息

  • 考点
  1. wirshark简单分析、tshark提取数据
  2. 排序及批量解码脚本的编写
  3. LSB原理(
  • 解题

流量包拖入wirshark分析,发现对话很简单只有192.168.1.5到193.134.211.19的单次握手包

分别查看每一个包发现都发送了类似[index:"value"]格式的数据

tshark全部导出

tshark.exe -r message.pcapng -T fields -e tcp.payload > message.txt

然后做简单的转换

def hex2ascii(hex_string):
    split_hex = [hex_string[i:i+2] for i in range(0, len(hex_string), 2)]
    ascii_chars = [chr(int(h, 16)) for h in split_hex]
    ascii_string = ''.join(ascii_chars)
    return(ascii_string)

mes=[]
with open("./message.txt", "r") as f:
    message = f.readlines()
    for i in message:
        mes.append(hex2ascii(i.strip()))

得到完整数据:

image-20240728192212146

根据题目名称(Least)及描述

对键值按照索引排序后再提取所有的最低位数据

二进制转ascii码后得到flag:

sort_data=sorted(mes,key=lambda x:int(x.split(":")[0][1:]))
extract_data=''.join([item.split(':')[1].strip('"]')[-1] for item in sort_data])

def binary_to_string(binary_str):
    chars = [binary_str[i:i + 8] for i in range(0, len(binary_str), 8)]
    result = ''.join([chr(int(char, 2)) for char in chars])
    return result

result = binary_to_string(extract_data)

print(result)

image-20240728192457969

还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论