D^3CTF 2021 - Misc - easyQuantum WriteUp

D^3CTF 2021 - Misc - easyQuantum WriteUp

图源:@しぐれうい 《雨に恋う》 83975808

cap.pcapng用Wireshark打开,清晰可见TCP的三次握手和四次挥手:

image-20210225173442277

image-20210225173518052

于是需要仔细分析中间的数据传输过程。

注意到某些数据包内有“numpy”等字符串:

image-20210225173716886

于是想到可能是某种兼容Python的序列化方法。

又注意到有固定的头部数据:

image-20210225174044360

image-20210225174106286

而pickle序列化时也有固定的头部数据(协议版本4.0):

image-20210225174451338

于是尝试利用pickle进行反序列化。示例如下:

1
2
3
4
5
6
7
8
9
10
import pyshark
import pickle

cap = pyshark.FileCapture('cap.pcapng')
test_pack = cap[3]
data = test_pack.data.data.binary_value

deserialized = pickle.loads(data)

print(deserialized)
阅读更多
D^3CTF 2021 - Misc - Robust WriteUp

D^3CTF 2021 - Misc - Robust WriteUp

图源:@電瘋扇 《仓鼠松鼠》 91999586

“Robust”意为“鲁棒性”。

打开cap.pcapng,发现都是QUIC协议的数据包。结合提供的firefox.log(即使用firefox浏览器访问时生成的SSL Key Log)可以想到基于QUIC协议且强制使用TLS 1.3的HTTP3。

导入SSL Key Log:

image-20210301153942031

清晰可见HTTP3数据包。利用过滤器过滤出所有HTTP3数据包,然后从头查看:

1
http3

image-20210301154351049

可以明显看出,642号包之前的部分是在载入网页和JavaScript脚本。在第642号包处可以发现一个m3u8 playlist:

image-20210305163835730

阅读更多
RCTF 2019 杂项 Disk WriteUp

RCTF 2019 杂项 Disk WriteUp

图源:《明日方舟》游戏背景 龙门之夜

我又来随便糊一篇文章了。

题目设定如下:

An otaku used VeraCrypt to encrypt his favorites.

Password: rctf

Flag format: rctf{a-zA-Z0-9_}

题目给的提示十分简单。于是准备 VeraCrypt,开始解题。

找前半段Flag

首先下载题目附件,得到 rctf-disk.zip,解压得到 encrypt.vmdk。因为无法确定 vmdk 是 VeraCrypt 加密完的虚拟硬盘文件随便改了个格式,还是存储了 VeraCrypt 加密后虚拟磁盘文件的虚拟磁盘(这话真的超级绕hhh),因此先尝试使用 7zip 打开该文件。

7zip可以成功打开

阅读更多
西湖论剑预选赛Misc第二题Write-UP

西湖论剑预选赛Misc第二题Write-UP

图源:“西湖论剑”线上赛主页

所以说,近期铺天盖地宣传的“西湖论剑”网络安全技能赛预选已经结束了。在这里随便糊一篇文章(也是我第一次写Write-Up文章),就聊聊杂项最先放出的那个第二题的解法。

首先拿到题,解压,发现里面有“题目描述”,先看描述,是这么写的:

我们截获了一些IP数据报,发现报文头中的TTL值特别可疑,怀疑是通信方嵌入了数据到TTL,我们将这些TTL值提取了出来,你能看出什么端倪吗?

然后看给出的另一个文件,ttl.txt,里面的内容是这样的:

image-20210411163821143

不难发现TTL值只有 $63$,$127$,$191$,$255$ 四种,都是$2$的某次幂$-1$的值。于是将这四个数都转换成二进制,得到 $111111_2$、$1111111_2$、$10111111_2$、$11111111_2$ 四个二进制数。从后面两个数字可以观察到二进制数的开头两位似乎有关系。又因为TTL值为一个8位整数,进行合理猜想,不妨将不足8位的二进制数开头补0,变为8位后再取开头两位。即:$00111111_2$、$01111111_2$、$10111111_2$、$11111111_2$提取开头两位为:$00_2$、$01_2$、$10_2$、$11_2$,恰好为全排列,可以用于数据的存储。

这样每组两个比特,四组就可以组成一个字节。博客园上也有文章提到了这种数据隐藏方式(点击这里)。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×