第八届强网拟态决赛-Misc

Misc 泄漏的时间与电码(三血) 把log和chal的加密脚本直接扔给ai def solve(): timings = [ 1.110270, 0.924169, 1.139244, 0.670085, 0.915054, 1.154452, 0.224613, 0.329060, 0.774615, 0.279617, 0.954166, 0.430143, 0.414914, 1.224826, 1.310686, 1.265828, 0.110950, 1.225669, 1.404647, 0.575287, 1.455927, 0.975492, 0.305642, 0.835893, 1.245893, 0.569651, 1.060266, 0.149129, 0.844243, 1.294104, 0.079101, 0.914897, 1.025389, 0.270495, 0.225577, 0.654189, 1.385665, 0.755860, 0.450597, 0.950750, 0.839268, 1.015624, 0.895000, 0.794687, 1.064966, 1.200042, 0.559413, 0.980588, 0.525959, 0.514992, 0.629261, 0.489585, 1.089786, 0.880690, 1.374392, 0.789075, 0.814771, 1.455273, 1.050996, 0.234891, 1.074220, 0.099300, 1.319762, 0.935773, 0.454985, 0.425895, 0.704892, 1.095786, 1.165433, 1.295589, 0.749113, 0.885320, 1.244904, 0.659642, 0.635889, 0.435427, 0.520476, 0.870549, 0.890145, 1.125522, 1.064915, 0.399210, 0.865873 ] class LFSR: def __init__(self): self.lfsr = 0x92 def step(self): bit = ((self.lfsr >> 0) ^ (self.lfsr >> 2) ^ (self.lfsr >> 3) ^ (self.lfsr >> 4)) & 1 self.lfsr = (self.lfsr >> 1) | (bit << 7) return self.lfsr machine = LFSR() flag = "" inv_31 = pow(31, -1, 256) print(f"{'Time':<12} | {'Ops':<5} | {'Char':<5}") print("-" * 30) for t in timings: ops = round(t / 0.005) if ops % 2 == 0: base_ops = ops - 10 else: base_ops = ops - 10 - 30 val = ((base_ops - 85) * inv_31) & 0xFF k = machine.step() char_code = val ^ k char = chr(char_code) flag += char # 打印时间对应关系 print(f"{t:<12.6f} | {ops:<5} | {char:<5}") print("-" * 30) print(f"[+]Recovered: \n{flag}") if __name__ == "__main__": solve() ...

November 30, 2025 · 13 min

RCTF2025-Misc

Misc Signin 直接改成?score=100就获得flag了 Speak Softly Love 是一个web端的系列社工题,给的是一个MP4 可以看到给到视频里面是东芝,题目的提示是8086,去油管检索一下看到原视频 第一问-视频ID:8ssDGBTssUI 这里用gpt检索一下这个人的信息,得到ip Mateusz Viste - homepage 他的页面说的是利用svn,dump一下他的网站 ...

November 18, 2025 · 4 min

nepctf2024复盘

Misc Nemophila import base64 print("这里有一个藏宝室,镇守着一个宝箱怪,当你说出正确的口令时,你也就快获得了这个屋子里最至高无上的宝物。") print("提示:宝箱怪只会提示你口令正确与否,请你试试吧!") flag = input('Turn in your guess: ') if len(flag) !=48: print("长度不对!") exit(1) if ord(flag.capitalize()[0]) != 83 or not flag[0].islower(): print("Please try again!") exit(1) if flag[-3:] != "ve}": print("Please try again!") exit(1) if flag.count(chr(95)) != 4: print("Please try again!") exit(1) if base64.b64encode((flag[10:13]+flag[28:31]).encode('utf-8')).decode() != 'RnJpSGlt': print("Please try again!") exit(1) if int(flag[24:26]) > 10 and int(flag[24:26]) < 20 and pow(int(flag[24:26]),2,5) != 0: print("好像有点不对!") exit(1) number = flag[33] + flag[41] + flag[43:45] if int(number) * 9_27 != 1028970 and not number.isnumeric(): print("还是不对呢!") exit(1) if flag[35:41].replace("e", "1") != "1t1rna": print("Please try again!") exit(1) if flag[31:33].swapcase() != "ME": print("这不是我!") exit(1) if list(map(len,flag.split("_"))) != [6, 12, 14, 7, 5] and list(map(len,flag.split("&"))) != [17, 9, 20]: print("换个顺序!") exit(1) if ord(min(flag[:2].swapcase())) != 69: print("Please try again!") exit(1) if flag[2] + flag[4:6] != "cet4"[:3]: print("我不想考四级!") exit(1) new="" for i in flag[7:10] + flag[18] + flag[26]: new += chr(ord(i) + 1) if new != "jt|Df": print("Please try again!") exit(1) if "SunR" in flag and "eren" in flag: print("好像对了!可以先去试试!") exit(1) print("恭喜你~发现了上个世纪的秘密~快去向冒险家协会索要报酬吧!") exp ...

August 28, 2024 · 7 min