BUUCTF [BSidesSF2019]table-tennis

题目分析



下载得到一个`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版权协议,转载请附上原文出处链接和本声明。