TamuCTF_WP
TamuCTF_wp
Misc_Quick_Response
附件是一个二维码:

观察后发现定位点被修改。
把二维码矩阵按 module 提取出来后,用棋盘格异或,再整体反相
1 | |

扫描得到:
gigem{d1d_y0u_n0t1c3_th3_t1m1n9_b175}
Misc_Time_Capsule
拿到附件之后还是蛮明显是一个时间戳隐写的:

1 | |
gigem{byg0n3_3r4}
Misc_Phantom2
用trufflehog爆破commit hash
https://2hi5hu.cn/archives/Ciallo_Encrypt
https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github
1 | |
爆破出来d3cab66d23265b36ecd8cd410554bdfc603e3416
https://github.com/tamuctf/phantom2/commit/d3cab66d23265b36ecd8cd410554bdfc603e3416
gigem{57up1d_917hu8_3v3n7_4p1_a8f943}
这题目是队友做出来的,我觉得蛮有意思就把她的 wp 拿过来了
Misc_Gamer_Returns
拿到的附件是一个 summon 指令,很明显是一个 MC 的指令,大概是召唤箱子矿车,里面有相应的旗帜,旗帜对应了字母。

倒数第四行看不清楚,直接进游戏把对应的旗帜拿出来,发现是反色了,原本红底的旗帜改成了白底,所以看不清楚了。
那直接那新的把旗帜根据旗帜信息做一遍:

gigem{t1m3_4_g4m1ng}
Crypto_Hidden_log_Factoring
**generate.py **里先生成 RSA 私钥 d,再用一个由离散对数秘密 s 经过 **HKDF **导出的 **mask **去异或 d,得到公开的 D;同时又公开了 A = g^s mod p。最后密文不是标准 RSA,而是 c = m^2 mod n,也就是 Rabin 型平方加密。 先从 data.txt 里的 DLP 公参入手,利用 **s < 2^100 **这个弱点。题目里 s = randint(1, 1 << 100),而给出的这个 p-1 含有很大的平滑部分,足以用 Pohlig–Hellman 把 s 恢复出来。
拿到 s 后,按源码里的同样方式跑 HKDF,得到 mask,再和 D 异或回去,恢复 RSA 私钥 d。这里长度要取 d.bit_length() // 8,正确值对应 127 字节。
已知 **(n, e, d) **后,用标准的 “由私钥指数反推分解 n” 方法,利用 k = ed - 1成功分解出 n = p*q
因为密文是 c = m^2 mod n,所以接下来是 Rabin 解密:分别对两个素因子求平方根,再 CRT 合并出 4 个候选明文,其中只有一个是正常 ASCII 且符合 flag 格式,于是得到上面的 flag。源码里这一步对应 c = pow(bytes_to_long(flag.encode()), 2, n)。
gigem{100lsb_ed_fact0ring_rab1n_attack_1n_th3_log_3oVAjvoCTGmWg847g9zsNBIyPPWqYdP}
AI 写这个crypto好厉害,我就把附件给他,它直接梭哈了