2026-PolarisCTF-crypto-wp
随便写几笔复盘一下 神秘学: 确实很神秘,本来不知道怎么做的。后来有师傅提醒我说试试poly(x1)=0,然后我就觉得这确实比较需要数学直觉,也提醒我们AI时代下也要多自己动脑子,倒不是真的想多难的问题,但是在这种小细节上明明人是肯定可以感觉出来的 我也开始反思为什么太过依赖AI,为什么不去自己看看源代码,不去自己感受一下 今天下午再复现的时候发现,k很小,所以其实可以爆破一下,看看有没有能解出来的c即可。这个思路似乎更常见,唉…确实需要多多夯实一下基础 RSA_LCG: 容器只有4s的限制,常规的算法肯定不行,积攒了经验:要多多上网(如github)等搜搜开源的更快的算法 比如本题的flint,2026ACTF pandra的flatter构造格,SUCTF也有一些,等等… ez_random: 本来脚本每次连接都要恢复一遍A的序列很慢很烦,后来看到了庄三梦师傅的博客:https://www.zhuangsanmeng.xyz/posts/polarisctf2026/#ez_random 才恍然大悟:源代码里早已说明 1set_random_seed(int.from_byt...
2026-VNCTF-crypto-writeup
Crypto 方向 题目1:math_rsa 需要对等式左边进行化简,有: (x2+1)(y2+1)=(x−y)2+(xy+1)2(x^2 + 1)(y^2 + 1) = (x - y)^2 + (xy + 1)^2 (x2+1)(y2+1)=(x−y)2+(xy+1)2 接着,将 (xy+1)2(xy + 1)^2(xy+1)2 展开并改写为含有 (xy−1)2(xy - 1)^2(xy−1)2 的形式: (xy+1)2=(xy−1)2+4xy(xy + 1)^2 = (xy - 1)^2 + 4xy (xy+1)2=(xy−1)2+4xy 将上述两个结论代入原等式的左边,替换掉 (x2+1)(y2+1)(x^2 + 1)(y^2 + 1)(x2+1)(y2+1): (x−y)2+(xy−1)2+4xy−2(x−y)(xy−1)=4k+4xy(x - y)^2 + (xy - 1)^2 + 4xy - 2(x - y)(xy - 1) = 4k + 4xy (x−y)2+(xy−1)2+4xy−2(x−y)(xy−1)=4k+4xy 等式两边同时消去 4xy4xy4xy: (x...
2026-SparkCTF-crypto-writeup
Crypto 方向 初赛部分 题目1:寻找戒指的旅途 让AI帮我静态分析了一下,发现是PyInstaller 打包的 Python 程序,让他帮我解一下PyInstaller包并反编译出pyc,看到了加密原理: c≡(m∗iv)mod sc \equiv (m * iv) \mod s c≡(m∗iv)mods 接下来很简单,由output.json里的两组m,iv,c做一个gcd先恢复出模数s,然后根据最后一组的iv,c计算m exp: 123456789101112131415161718192021222324252627import jsonimport mathfrom Crypto.Util.number import long_to_byteswith open("output.json", "r", encoding="utf-8") as f: obj = json.load(f)# 通过已知样本恢复模数 st = []for row in obj["data"]: m...
2026-DesCTF-crypto-writeup
Crypto 方向 题目1:签到 不知道那串疑似base32的密文什么意思,在Google地图输入坐标发现是卡塔尔的一个空军基地,然后结合2-28的日期,搜索新闻能找到真实承诺4 ps:这题出得何意味??? 题目2:check in 在源代码中,d的生成是在RR上的,也就是RealField(53),是53-bit的双精度浮点数,那么之后用Integar转回整数的时候就只保留了高53位bit的数据 这一点在python中也可以直接实现,进而恢复d,然后利用ed和phi的关系可以得出phi,再结合N=p*q解二元方程得到p和q,之后md5得到flag exp: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import mathfrom hashlib import md5# 题目提供的已知信息e = 20285928988408708385825788658664300305494782819689...
2026-furryCTF-crypto-writeup
Crypto 方向 题目1:GZRSA 审计一下源代码,发现N是仅由flag作为seed生成的,所以是一直不变的,只有e每次打开容器时会根据时间戳变化 N不变,可以用共模攻击,但是需要开两次容器拿到两组数据 最后的结果是:furryCTF{ee74fc3b0b4d_E4SY_RS4_wIth_G2cTf_FRaM3wOrK} 题目2:0x4A 需要找个网站用0x4A做秘钥连续解密3次,最后得到:POFP{2394E9DA555D55D493A28624D901D2CA} 但是写wp的时候找不到那个网站了,当时也没记录 题目3:你是说这是个数学题? 这题在比赛时是PPC板块的,但是应该算是密码题 初始数据:flag的二进制用列表表示,还有一个单位矩阵,对角线全是1 题目做了很多次线性变换,每次做的变换是,在矩阵随机取两个不同的行做异或,然后对二进制列表中相同的元素进行同样的操作 最后得到变化之后的matrix和result 看似很复杂,但是都是线性的,并且每次变换前后的元素都是一一对应的,一定是可逆的 最后逆出来的初始flag二进制直接转码不对,是因为在最开始把flag明文变成二进...
2026-春秋杯冬季赛-crypto-Writeup
Crypto 方向 题目1:ez_lcg
2026—SHCTF-crypto-Writeup
Crypto 方向 题目1:阶段1-AES的诞生 Step 1. 源代码审计 结合题目名字和多出来的附件,采用AES被官方发布的时间2001-11-26,然后换成Unix时间戳,得到key Step 2. 读取data.txt,运行exp拿到flag exp: 123456789101112131415161718192021222324252627282930313233343536import refrom binascii import unhexlifyfrom cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modesfrom cryptography.hazmat.primitives import padding# 1) 从 data.txt 读 iv 和密文with open("data.txt", "r", encoding="utf-8") as f: lines = f.read().splitlines()...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment
