最近打的所有比赛中,misc最简单的一次(

但是由于是两个misc手+一个re手组队,局限性可想而知。。。在这记录一下三道misc题

BrickGame

image-20240908192223654

直接玩通关即可

漏洞探踪,流量解密

第一阶段

经过查看流量与在网上搜索,可以发现这是通达OA的洞。根据其原理,可以在给出的日志中搜索/ispirit/im/upload.php,找到攻击来源ip,也就是第二阶段的压缩包的密码192.168.30.234

image-20240908194622178

第二阶段

根据漏洞的原理,可以知道接下来是通过/ispirit/interface/gateway.php路径的文件上传漏洞,我们直接在流量中过滤出用到这个路径的流

image-20240908202627396

其中有一个流可以看到提示,使用的是RC4加密

image-20240908203255737

还可以从此外的两个流中看到从192.168.1.5下载了一个叫做key的文件和一个叫做raw的文件,过滤出目标为192.168.1.5的流

image-20240908203543604

追踪,可以找到密钥和密文

image-20240908203638605

image-20240908203713316

注意这里的密文前跟着密钥,删去以后解密即可得到flag

image-20240908204010288

最安全的加密方式

过滤http流,追踪一下,可以找到一个脚本和一个rar压缩包

image-20240908205114377

image-20240908205026982

导出以后经过尝试,脚本中的pass就是rar压缩包的密码,解压得到大量的md5值。

image-20240908205742264

在cmd5上查了几行可以看出来,这是对flag进行了逐字符求md5值,写个脚本生成一个字典查询拼接即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import hashlib

def generate_md5_dict():

md5_dict = {}

for ascii_code in range(32, 127):

char = chr(ascii_code)

hash_object = hashlib.md5(char.encode())
md5_hash = hash_object.hexdigest()
md5_dict[md5_hash] = char

return md5_dict

md5_dict = generate_md5_dict()
f=open('flag.txt','r')
s=''
a=f.readline().strip()
while a:
s+=md5_dict[a]
a=f.readline().strip()
print(s)

image-20240908210036787