前言

考点:

  • tshark提取请求体
  • 时间隐写

正文

开局一个pcap包

打开之后,流追踪tcp,只有fake_flag

但是看到了大量的icmp包,而且里面的内容都有START后面加一串类似base64的字符串

猜测关键内容在这里,先用tshark把请求体提取

tshark -r out.pcap -T fields -e data >out.txt

拿到一个txt文件,可以看到每四行都是一样的,这里我个人理解是ping走的是icmp协议,ping默认就是四次对不对不重要我菜是真的

16进制转字符串 去掉标志的字符串“START”看到是PK开头,知道是zip了

接下来把所有文本都给转字符串 截掉标志字符串前面的部分,后面的写到zip文件里面

import base64
import binascii
def hexStr_to_str(hex_str):
    hex = hex_str.encode('utf-8')
    str_bin = binascii.unhexlify(hex)
    return str_bin.decode('utf-8')


b=''
f1=open('1.zip','wb')
with open('out.txt') as f:
    a=f.read().split('\n')
    for i in range(int(len(a)/4)):
        if( a[i*4] == ""):
            continue
        f1.write(base64.b64decode(hexStr_to_str(a[4*i]).split('$$START$$')[1]))
f1.close()

拿到一个zip文件

里面是一个蜘蛛侠的gif

看了每个帧没啥特别的,想到用时间隐写

identify -format “%T\n” flag.gif

这个工具是ubuntu下自带的

然后拿到一个文本

20
50
50
20
50
50
20
50
20
50
20
20
20
50
20
20
20
20
50
50
20
50
20
50
20
50
20
50
50
50
50
50
20
20
50
50
20
20
20
50
20
50
50
50
20
50
20
20
66
66

后面的66去掉 可以看到只有20和50 想到把它们转为0和1

with open('1.txt','r') as f:
    a=f.read().split('\n')
    sum=''
    for i in a:
        if(i=='20'):
            sum+='0'
        else:
            sum+='1'
    print(sum)

得到一串二进制数

011011010100010000110101010111110011000101110100

然后二进制转字符串

再拿去md5就行

flag{f0f1003afe4ae8ce4aa8e8487a8ab3b6}

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...