“网谷杯”安全极客大赛 Writeup
碎念
这次比赛是在看见群里有人说起这个比赛,刚好闲着没事顺手打了一下,主要写了 Crypto 和 MISC (流量分析也算 MISC 吧)方向的题目,整体来看难度不高,但有些时候需要一些想象力,因为对其他的方向并不是很了解,因此一个人想打入决赛还是有点难度的=͟͟͞͞( •̀д•́)
不过想要吐槽的一点就是这个比赛的赛制,没想到它的动态积分竟然是越早提交分越高,那这样的话拼的不就是简单题的手速和网速了吗,简单题和难题都没有什么差别了,感觉是有点离谱的。。
Crypto
证书修复-wgb
本题考查 PEM,首先我们要了解私钥文件的格式
1 | |
flag1
直接给出了私钥文件,将 base64 解码后能够得到 n、d,我们便可以直接解密
1
2
3
4
5
6
7
8
9
10
11
12
13MIICXAIBAAKBgQCsnlJbVdPOwSCVdI6tiL7J88QfPFomm4mySzKu6AHCVS8gMJc+
OTV+k14Q3M9PjqEDQfpt/oP2nNq0Z8sDYErT323Q75gsJM8YNe+sK/W2qzsP/XP2
y+Z6qLZXYXgE9g1ofqeZYgcwN819Xiw7ELHkHP53w+KChUDp7fJH/s0+wwIDAQAB
AoGAIwia5Gid7UdrCoo2bufi+O/dbQ19qnpEzwfOCIuT19IcF2dlOr63qbHVFI0M
EjR7X0LjxbEzLTkWdijenhfL96+IwzPig5PFL1dzxwp7bFct/9sQNuf/FZD1eC56
QjzXxOD0v9itzVMvbIR80MclgEK1zUeg7tlIRHCofoLoALECQQD8sNNSgmMKdXBt
dimY6ziK/xXtQ2TW2ekQ8l2VT5f/HD2M6n7gwadSPM2P2/UVC2ekK9SMGwe5giGR
bTerjjNZAkEAruELdXFBj/iheihbSXO3uDf9+BdvQFyMDIjPDTjx3GaY2Rwvl1Da
Cnwx2326mW3fuRYT/r9KZ9ViM5VX23vLewJAF7VrjnFHY6LTMqIEkyF2w6vdXc6V
9oaplHp5B1pZc4ktyTvzPZlN3qxvyRClNR1F0yR9o8uhdOldxuxNbd5AuQJAAJAi
7E7gCimfw3fry1G/Dq3HeIwCxK9HmCa8m+tKBA6kgVZw5MjS2uPJeU5vUl0jMkJa
8CAHikwKk+XwMXm1jwJBAK8rEl7TVWO5vmP2Xt/JITHUu5qSgYB9p9YwnfhQa4b/
rOIIFyuuq0tg3xASP+50O+fqvSOK5gZIx+KbNtWugcI=
转换成十六进制后,可以按照上边格式拆分,最终得到:
1
2n = 121216793759965406495195349784688471172903898464863919579528667261419201175006158506254851920269184174476441342645096664857617956346276850231302641370595849992364168925183323567715165305825214477546120105756089950903529561478112787635175307546002017263761103481685637785188859785795387227441771118141108993731
d = 24601440007954283409258790415889365626604738597756305511807235656867674669709582591386480696270815244895420087866738342299329789849425948470734950224610450629270896689735724164750653504067075012851069860052288413393492140397638874689747304249627737638521072321625292497180208183282090634794285367566044496049
直接给出私钥 d,直接解密
flag2
与 flag1 相比,多了一个公钥文件,里边只有 n、e,
而私钥文件的前半部分不显示,但是我们可以得到 p、q,并且 n、e 和公钥文件中相同,因此也可以直接解 rsa 了。
1 | |
flag3
与第二问不同的是,该私钥文件前边缺失的地方更多,但观察后发现仍然可以得到 d mod p-1,d mod q-1,即 dp,然后便可以使用最常规的 dp 泄露的思路来做
1 | |
脚本
1 | |
三重秘影-wgb
Hint:一个神秘的间谍组织使用了三重加密来隐藏他们的通信内容。你拦截到了一串奇怪密码线索,请注意他们的神秘标记!
还有一段密文:依稀只剩下:“Stone Memory For…?”,请解开此段密文,获取flag
分析
题目首先给出了一个 text.txt 文件,查看过后发现是 BASE64 编码后的结果,先进行 BASE64 的解码,发现开头字符为 PNG 图片的数据开头格式。
直接保存为 PNG 图片,打开后发现是一个二维码,扫码能得到一个字符串...--cfadeb-----,明显前后两个是摩斯密码,得到3cfadeb0.png)
接着使用 010 Editor 打开该图片,往下翻找发现 JPG 的文件格式,并且在文件末尾找到一个字符串d96247f2167ba262a5d8325019623b035436a8be27f807516a76c231307994b0
再将 JPG 文件保存之后,得到一串摩斯密码
解密后得到9273016854,结合前边的两端也是摩斯密码,且刚好在下边这个图片中相邻,因此猜测第一个字符串应该插在第二个字符串中间,得到9273cfadeb016854
这两个字符串一长一短,很容易把它们当作一个密文一个密钥,但是不知道是什么加密。最后结合题目所说Stone Memory For...?,猜测加密算法为 SM4,9273cfadeb016854也刚好 16 个字节,直接 ECB 模式解密便得到 flag
脚本
1 | |
MISC
Format-8bit-wgb
Hint:看不懂的汉字隐藏了什么秘密呢?
分析
题目给了一个 JPG 文件,010 Editor 打开查看十六进制数据,发现文件结尾存在着一个 Zip 压缩包,可以使用 Binwalk 直接分离
1 | |
得到一个 422.txt 文件,查看发现文件内好像是非常复杂的汉字还有一些乱码,猜测是utf-16编码的字符,尝试过后发现是大端序 utf-16be,将其转换为字节流,然后再使用gbk解码便能得到flag
脚本
1 | |
non-interlaced-wgb
Hint:神奇的图片有什么意义呢?
分析
题目给出了 9 张不同颜色的像素图片,分别为 3 张红色,3 张绿色,3 张蓝色,因此猜测和像素的 RGB 值有关,将图片放入 Stegsolve 进行分析。
以 图片 1 为例,发现在 Red 的每个通道上都存在很多数据
然后使用 Data Extract 对通道上的数据进行分析,勾选 Red 的所有通道,查看十六进制数据,发现是 Zip 的数据,但是并不完整,因此猜测后边的每个图片是否都带有一部分数据
为了验证猜测,直接查看 图片9 是否含有 Zip 的文件结尾
查看之后,说明确实如我们所假设的那样,因此我们便可以将每个图片中隐写的数据都提取出来,拼接在一起便可以得到一个 Zip 压缩包,解压之后得到 flag.jpg
流量分析
Spyware-wgb
Hint:情况紧急,小A使用了绝妙的隐藏方法传输了密码信息。
分析
附件中给出了一个 1.pcapng 的流量数据包,使用 Wireshark 打开查看发现是 USB 流量,猜测是否会是鼠标流量或者键盘流量。
但是我们并没有发现 usbhid,只发现了许多 Leftover Capture Data ,搜索之后发现是没有被认出的报文数据,因此它们本质上是一样的,只不过需要使用capdata将数据过滤出,然后使用 tshark 提取即可。
1 | |
观察提取出的数据,发现其数据的变换并不连续,因此猜测不是鼠标流量,而是键盘流量,
1 | |