题目分析
下载得到一个`pcapng`的流量包,打开之后分析了一下,在`ICMP`数据包的`data`中可以发现有一些数据,如下

基本都是一些标签,估计是一串HTTP的字符串,使用如下命令取出来
tshark -r attachment.pcapng -T fields -e data |sed '/^ *$/d' > data.txt
提取的都是16进制,然后写个脚本处理一下
file = open("flag.txt","r")
str = ""
k = 1
for i in file.readlines():
if (k%2==1):
str += i[16:32]#有效数据段
k += 1
str = str.replace("\n","")
# print(str)
for i in range(0,len(str),2):
print(chr(int(str[i:i+2],16)),end="")
#得到如下
<html>
<head>
<title> I <3 Corgi </title>
<script>
document.write(atob("Q1RGe0p1c3RBUzBuZ0FiMHV0UDFuZ1Awbmd9"));
</script>
</head>
<body>
<h1> Woof!! </h1>
</body>
</ht
进程已结束,退出代码为 0
把其中的base64字符串取出来,然后解码一下就得到了flag。
或者可以利用如下脚本,直接分析流量包
from scapy.all import *
from scapy.layers.inet import ICMP
packets = rdpcap('attachment.pcapng') # rdpcap()读取pcapng文件
for packet in packets: # 遍历每一个数据包
if packet.haslayer(ICMP): # haslayer()判断数据包的类型,此处为ICMP
if packet[ICMP].type == 0: # 每一个ICMP的type值为0的包
print((packet[ICMP].load[-8:]).decode('utf-8'),end="")
# 每个数据包的最后8位是有效数据
得到差不多的数据,然后同样可以得到flag
版权声明:本文为qq_51447967原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。