Post on: 2024-6-9Last edited: 2025-2-21Words 00 min

type
status
date
slug
summary
tags
category
icon
password
😀
这次我们cyberCryer小队在CRYPTOCTF拿到了第二名,应该也是中国大陆队伍第一次打到前三,非常开心!今年的题有点guessy,也有很多抽象的题被非预期梭哈了。队友很强,我基本只能辅助一下,被带飞也挺爽的2333~ 文中的解法有的是参考队友思路。几个大爹:糖醋小鸡块、hash_hash、yolbby、leukocyte

Easy

Alibos

pkey已知,d为pkey长度,简单模运算去掉pad就行。

Beheaded

ECB加密图像,用ElectronicColoringBook.py这个工具直接秒了。ElectronicColoringBook.py all_flags.enc --pixelwidth=3 -s 500 -S

Mashy

用fastcoll去生成md5相同的不同文件。
notion image
test一下,没问题:
生成这样的8组就可以挑战成功了:

Medium

Joe-19

factordb可以查到n的分解,大概是非预期。看了一下别人的wp,这里的e居然是自然对数qwq,真佩服出题人的脑洞…由于n的十进制为616长度,那么几个因子的长度大概率是154,直接对自然对数这个字符串上挨个取154长的来验证即可,exp可以跑出四个因子,最后解密即可。

Alilbols

q肯定是大于c的,而c的比特数肯定也不会比q小太多,所以能确定d是563。
造第一个格恢复f和g。加密过程不是标准的ntru,多加了个r,可以再造格子打。
如果不造格子,可以计算一个乘上

rm2

Melek

拉格朗日插值恢复rsa密文,然后解密。

Bada

f(x,1) = f(1,1)+(1+2+...a-1)
f(1,y) = f(1,1)-(1+2+..+b-1)
假设d = f(x,y)-f(1,1)
那么有(1+2+…+x-1)-(1+2+…+y-1)=d
所以问题转化为不定方程求解
通过server每次返回的值可以判断x是大于y的,那么可以把前面y-1项全部抵消,只剩下y+(y+1)+…+(x-1)=(x+y-1)*(x-y)=2*d,这里可能是x-y=1,x+y-1=2d,也可能是x-y=2,验证一下知道前一种正确。
(1+2+…+x-1)-(1+2+…+y-1)=d这里也可以对两个等差数列求和,x(x-1)-y(y-1)=2d⇒(2x-1)^2-(2y-1)^2=8d。最后用佩尔方程。

Vantuk

,显然对A取整就得到a了,然后解个二元一次方程即可。

Honey

调整系数把m消去就是一个标准的hnp,队友优美的格子:

Forghan

,因此我们解密可以在p-1和q-1下,然后crt。这样的话难点完全在于找到p-1和q-1的因子来求phi,那么只要构造形式的素数就好了。题有点问题,出题人预期应该是用sk来作为指数加密的,这样的话就需要p-1是光滑的来做dlp求sk。

Nazdone

根据题目生成私钥的方式可知,当以m为进制的时候,n的最小一位是1或者8,其他项均是m的倍数。那么对n-1和n-8进行分解可以得到m的值,因为m应该是不大的。其实还是不太确定m具体是哪个,可以通过n在m进制下系数为0/1这一性质,来计算一下不同进制下的系数和,找最小的就能稳稳确定m的值了。
这样确定m=19
最后解密还需要e,不知道z稍微爆破一下:

Soufia

函数方程,偷一手hash_hash的wp。
能解:
💡
开心^^
 

CRYPTOCTF2024(part2)

🗒️CRYPTOCTF2024(part2)

2024年CCTF的第二部分wp,有的为赛后复现。


从一道题学习三种低指数相关攻击技巧

🗒️从一道题学习三种低指数相关攻击技巧

通过一道CTF题目学习三种解题技巧。