复现~
rookie hacker-2
关于E01格式,参考这里;通常可以用取证大师直接梭,也可以用OSFMount先挂载再用DiskGenius打开对应盘查看即可。挂载:
这题要找docker相关配置,而docker默认的数据目录是/var/lib/docker,所以直接到该目录下去搜索:
这题要找容器的ip地址,直接查看hosts就行了:
这题还有一种解法是去看.bash_history文件,因为部署docker可能会用shell命令处理ip地址,所以直接查看即可:
这里出题人刚好用了ping命令,或许是故意的吧。
rookie hacker-1
到上述目录下查看config.v2.json文件即可。
rookie hacker-3
首先在docker目录下找到日志文件:
可以知道数据库为mongodb 2.6.12,存在控制访问漏洞,泄露的文件为:
个人觉得这题有点牵强,即使找到这个洞,也难以确定泄露的文件吧qwq.
OCR
OCR算是AI题的helloworld吧,说是misc也不为过。
分析png,crc报错,于是用脚本跑一下宽高。
1 | import struct |
可以发现377ABCAF是7z的文件头,那么很明显了,需要用ocr把16进制识别出来转化成压缩包文件。
1 | import easyocr |
由于这个模型识别准确率8太行,所以可以尝试下百度识图或qq识图再用脚本替换一下不确定的字符。调了很久得到压缩包,里面是base64,解一下得到flag。
1 | RGVzdDBnM3szNDUxMjA5OC0zMzA5LTc3MTItODg2NS03ODM0NjAyMjE2NDd9 |
The correct flag
下载word以后发现有隐藏字符,自然想到粘贴到txt中,发现是这样的字符:
大道至简,很多人工智能的模型最后学习到的内容也就是频率统计的结果,于是随便找个脚本统计下每两个字符为一组的每组的频数:
1 | def stats_words(filename): |
1 | [('l1', 30), ('lt', 29), ('ll', 29), ('0g', 29), ('li', 29), ('87', 29), ('l8', 29), ('0N', 28), ('l}', 28), ('0x', 28), ('8A', 28), ('8F', 28), ('06', 28), ('8U', 28), ('l9', 28), ('lH', 28), ('0j', 28), ('lP', 27), ('0D', 27), ('8u', 27), ('8g', 27), ('0Y', 27), ('0W', 27), ('0H', 27), ('0i', 27), ('lf', 26), ('lJ', 26), ('t0', 26), ('lc', 26), ('0r', 26), ('0p', 26), ('8t', 26), ('tb', 25), ('lT', 25), ('tS', 25), ('lR', 25), ('0w', 25), ('}D', 25), ('t6', 25), ('lp', 25), ('81', 25), ('ti', 25), ('8X', 24), ('}e', 24), ('tT', 24), ('8M', 24), ('}o', 24), ('tp', 24), ('t1', 24), ('8h', 24), ('88', 24), ('8I', 23), ('lu', 23), ('00', 23), ('8T', 23), ('NW', 23), ('t5', 23), ('tg', 23), ('{2', 23), ('8n', 23), ('tw', 23), ('tF', 23), ('8w', 23), ('8o', 23), ('}B', 23), ('}r', 23), ('8J', 23), ('qS', 23), ('}j', 23), ('0l', 23), ('Wq', 23), ('N0', 22), ('8H', 22), ('0Z', 22), ('{m', 22), ('ls', 22), ('}t', 22), ('{k', 22), ('{I', 22), ('lX', 22), ('Nw', 22), ('}v', 22), ('tm', 22), ('N6', 22), ('0K', 22), ('qP', 22), ('8P', 22), ('}X', 22), ('8d', 22), ('0f', 22), ('{x', 22), ('NV', 22), ('8D', 22), ('qX', 22), ('{t', 22), ('}f', 22), ('lL', 22), ('Nj', 22), ('{r', 22), ('W}', 22), ('Nr', 21), ('8e', 21), ('qe', 21), ('tM', 21), ('lI', 21), ('N9', 21), ('tY', 21), ('q{', 21), ('{U', 21), ('{g', 21), ('{v', 21), ('t9', 21), ('8S', 21), ('}5', 21), ('8Q', 21), ('{D', 21), ('0o', 21), ('Ne', 21), ('8f', 21), ('W6', 21), ('Wf', 21), ('{Y', 21), ('V}', 20), ('Kk', 20), ('Ai', 20), ('UX', 20), ('AB', 20), ('xM', 20), ('bM', 20), ('RE', 20), ('8i', 20), ('0I', 20), ('kG', 20), ('LF', 20), ('6X', 20), ('Xn', 20), ('oX', 20), ('Xm', 20), ('jr', 20), ('vB', 20), ('hd', 20), ('fC', 20), ('Vr', 20), ('uR', 20), ('}S', 20), ('O8', 20), ('uJ', 20), ('fx', 20), ('z5', 20), ('BT', 20), ('tZ', 20), ('OV', 20), ('6v', 20), ('Xb', 20), ('b{', 20), ('kB', 20), ('xB', 20), ('4K', 20), ('El', 20), ('rx', 20), ('On', 20), ('ay', 20), ('zf', 20), ('H5', 20), ('jV', 20), ('FA', 20), ('oD', 20), ('nt', 20), ('lj', 20), ('rd', 20), ('bG', 20), ('y6', 20), ('tc', 20), ('jb', 20), ('xN', 20), ('r7', 20), ('vf', 20), ('5o', 20), ('kf', 20), ('A0', 20), ('i0', 20), ('l3', 20), ('vs', 20), ('N}', 20), ('Yj', 20), ('fQ', 20), ('OT', 20), ('pc', 20), ('zO', 20), ('rD', 20), ('pz', 20), ('OM', 20), ('PP', 20), ('nb', 20), ('VB', 20), ('Lt', 20), ('VY', 20), ('uI', 20), ('YH', 20), ('TW', 20), ('PX', 20), ('vp', 20), ('Oe', 20), ('i4', 20), ('ri', 20), ('ER', 20), ('Je', 20), ('NY', 20), ('R8', 20), ('Ad', 20), ('bN', 20), ('FR', 20), ('yq', 20), ('o{', 20), ('c3', 20), ('Ps', 20), ('k3', 20), ('XI', 20), ('HD', 20), ('yP', 20), ('Zq', 20), ('LU', 20), ('U0', 20), ('kD', 20), ('F3', 20), ('i9', 20), ('{n', 20), ('QK', 20), ('bQ', 20), ('wS', 20), ('wd', 20), ('JE', 20), ('w6', 20), ('A2', 20), ('5e', 20), ('RK', 20), ('pP', 20), ('z4', 20), ('r0', 20), ('bz', 20), ('Zv', 20), ('in', 20), ('wu', 20), ('LH', 20), ('Lv', 20), ('MR', 20), ('ao', 20), ('59', 20), ('BG', 20), ('nP', 20), ('4D', 20), ('aA', 20), ('m0', 20), ('ju', 20), ('hZ', 20), ('hP', 20), ('J0', 20) ...] |
因为知道flag格式为Dest0g3{
,可发现规律:D开头的字符组中De出现最多,e开头的字符组中es出现6次,最多,s开头的字符组中st出现最多,规律比较明显了,类似于贪吃蛇;依照规律得到Dest0g3{2987NWqSdIl1}
.