极客大挑战2023
记人生中第一次打的CTF比赛
RSA
SignIn
明文:5359437b48656c6c6f5f576f726c645f43727970746f5f6269626f6269626f7d
用base16解码得密文:SYC{Hello_World_Crypto_bibobibo}
得到flag
proof_of_work
一个sha2561
2
3
4
5
6
7
8
9
10
11import hashlib
for i1 in range(32,127):
for i2 in range(32, 127):
for i3 in range(32, 127):
for i4 in range(32, 127):
m = hashlib.sha256()
m.update(str(chr(i1)+chr(i2)+chr(i3)+chr(i4)+'qzxf4BpAvFfWGED3').encode('utf-8'))
des = m.hexdigest()
if des == '5d60736ba4dac09953d7187939d5861ed2d46faf874c5142157aae8430dead84':
print(chr(i1)+chr(i2)+chr(i3)+chr(i4)+'qzxf4BpAvFfWGED3')1
2# 输出
# S2iuqzxf4BpAvFfWGED3
输入前四位,得到flag:SYC{st3p_1nt0_1nter4ctive_Crypt0graphy}
SimpleRSA
解答:
1 |
|
1 |
|
得到flag
OTPTwice
解答:
1 |
|
1 |
|
OldAlgorithm
该题是中国剩余定理情况
解答:
1 |
|
1 |
|
得到flag:SYC{CRT_1s_s0_ju1cy!}
easy_classic
第一层明文:udzeojxuwqcu
凯撒加密,密钥Q,密文:enjoythegame
第二层明文:ialhhooavtepcyr
看起来很像打乱顺序的密文,重新排序后得到:ilovecryptohaha
第三层明文:5a6H5a6Z5LiH5rOV55qE6YKj5Liq5rqQ5aS0
base64解码,得到密文:宇宙万法的那个源头
ps.必须是uft-8编码的汉字
第四层明文:熊曰:呋食食食取噗山笨笨破嗄咯哈動嗡雜類嗒嘿啽沒歡破吖咬我啽寶盜噔咯沒
熊曰加密,上网使用与相关加解密网站得到密文:never gonna give you up
网站:与熊论道/熊曰加密 - PcMoe!
第五层
password: adltlfltqrcy
key: 👝👘👠👩👞👘👤👜
密钥为emoji加密,使用相关网站解密得到key:fairgame
Playfair解密,得到密文:genshinstart
输入密文,解开最后的txt的锁,得到flag:SYC{classical_1s_fun}
PolyRSA
解析:
$\because c1=(2p+3q)^{e1}$ mod n
$\therefore c1=((2p)^{e1}+(3q)^{e1})$ mod n
$\therefore c1^{e2}=((2p)^{K}+(3q)^{K})$ mod n
同理
$\because c2=(5p+7q)^{e1}$ mod n
$\therefore c2=((5p)^{e2}+(7q)^{e2})$ mod n
$\therefore c2^{e1}=((5p)^{K}+(7q)^{K})$ mod n
$\therefore c2^{e1}3^{K}-c1^{e2}7^{K}=p^{K}(15^{K}-14^{K})=p^{K}$
$c1^{e2}5^{K}-c2^{e1}2^{K}=q^{K}(15^{K}-14^{K})=q^{K}$
$\therefore p=gcd(c2^{e1}3^{K}-c1^{e2}7^{K},n)$
$q=gcd(c1^{e2}5^{K}-c2^{e1}2^{K},n)$
解答:
1 |
|
1 |
|
Fi1nd_th3_x’
解析:
$\begin{cases}d \equiv dP \pmod{(q-1)(r-1)} \\d \equiv dQ \pmod{(p-1)(r-1)} \\d \equiv dR \pmod{(q-1)*(p-1)}\end{cases}$
中国剩余定理不互质
解答:
1 |
|
1 |
|
得到flag:SYC{CRT_1s_f3n_but_Gen3hi_im9act_is_a_balabalaba}
小彩蛋
txt文本:
5Lq65Lus5Y+q6K6w5b6X77yM6L+Z5pys5piv6aOO5ZKM5pel5Li955qE5LiA5aSp77yManJsNzc35q2j5Zyo572R5LiK5a2m5Lmg5a+G56CB5a2m44CC5b+954S25LmL6Ze077yM6buR6Imy5raI6YCA77yM5bGP5bmV55m95YWJ6aqk6LW377yM5omA5pyJ55qE6K665paH6YO95reh5Ye655y85biY44CC5LuW5Yed56We5LiA55yL77yM5Y205Y+q5pyJ5rex6YKD5aaC5aKo55qE4oCc5Y6f56We4oCd5LqM5a2X5Zyo5Zue5bqU552A44CC5pyq5Y+K5oCd6ICD77yManJsNzc36ISR6KKL5LiA6Zi15pmV55yp44CC6ICM5q2k5Yi777yM5o+Q55Om54m55aSn6ZmG5LiK56m65pyJ6YeR5YWJ6Zeq54OB77yM56m66Ze05Lmx5rWB5LmL5YaF77yM5LiD56eN5YWD57Sg5Yqb5pKV5byA5LqG5pe256m66KOC57yd77yM6aOO5bim5p2l5LqG5pWF5LqL55qE56eN5a2Q44CC5Y+v5YaN5Z2a5Zu655qE5bKp55+z5Lmf6Zq+6YCD56Oo5o2f55qE5ZG96L+Q44CC4oCc5LiW55WM77yM6YGX5b+Y5oiR44CC4oCd5LuW57uI56m25b+Y6K6w5LqG6Ieq5bexQ3J5cHRvZXLnmoTouqvku73jgILigJzmj5Dnk6bnibnlpKfpmYbnmoTml4XkurrvvIzkvaDog73mib7liLDmiJHpgZflpLHnmoTotKblj7flkJfvvJ/igJ0=
base64解码:
人们只记得,这本是风和日丽的一天,jrl777正在网上学习密码学。忽然之间,黑色消退,屏幕白光骤起,所有的论文都淡出眼帘。他凝神一看,却只有深邃如墨的“原神”二字在回应着。未及思考,jrl777脑袋一阵晕眩。而此刻,提瓦特大陆上空有金光闪烁,空间乱流之内,七种元素力撕开了时空裂缝,风带来了故事的种子。可再坚固的岩石也难逃磨损的命运。“世界,遗忘我。”他终究忘记了自己Cryptoer的身份。“提瓦特大陆的旅人,你能找到我遗失的账号吗?”
misc
DEATH_N0TE
前半段flag
将图片用steagsolve打开,lsb隐写解码,发现疑似明文:
IuS9oOe7p+e7reinguWvn+aJi+S4iua8hum7keiJsueahOeslOiusOacrO+8jOWGt+mdmeS4i+adpeeahOS9oOWPkeeOsOS6huiXj+WcqOWwgemdouacgOS4i+i+ueeahOS4gOihjOWwj+WtlzpTWUN7RDRAVGhfTjB0NF8iCiLkvaDmtY/op4jov4fmlbTkuKrnrJTorrDmnKzvvIzlj6/mg5zlhajmmK/nqbrnmb3pobXvvIzlhbbkuK3mnInkuIDpobXkuI3nn6XpgZPooqvosIHmkpXmjonkuobvvIzkvaDmnIDnu4jov5jmmK/nv7vliLDkuobnvLrlpLHnmoTpgqPkuIDpobUiCiLkvaDnlKjpk4XnrJTmtoLmirnnnYDlkI7pnaLkuIDpobXvvIzkuIrpnaLnvJPnvJPlh7rnjrDkuobpgZflpLHnmoTnl5Xov7kuLi4i
base64解码得到:
“你继续观察手上漆黑色的笔记本,冷静下来的你发现了藏在封面最下边的一行小字:SYC{D4@Th_N0t4_”
“你浏览过整个笔记本,可惜全是空白页,其中有一页不知道被谁撕掉了,你最终还是翻到了缺失的那一页”
“你用铅笔涂抹着后面一页,上面缓缓出现了遗失的痕迹…”
找到前半截flag:SYC{D4@Th_N0t4_
后半截flag
从图片中能隐约看见白色像素点,推测需要提取像素点,构成新图片1
2
3
4
5
6
7
8
9
10
11
12
13
14from PIL import Image
im = Image.open('d:/Users/ASUS/Downloads/DEATH_N0TE/kamisama.png')
pix = im.load()
width = im.size[0]
height = im.size[1]
# 图片查看后猜测间隔距离为5像素
new_width = width // 5
new_height = height // 5
new_img = Image.new("RGB", (new_width, new_height))
for x in range(0,width,5):
for y in range(0,height,5):
rgb=pix[x, y]
new_img.putpixel((x//5,y//5),(int(rgb[0]),int(rgb[1]),int(rgb[2])))1
new_img.save('new_image.png')
得到图片
结合题目,该图片上的花体字是死亡笔记中的一种字体,对照提取得到:TkFNRV9vMnRha3VYWH0=
利用base64解码得到后半截flag:NAME_o2takuXX}
合并得到完整的flag:SYC{D4@Th_N0t4_NAME_o2takuXX}
小彩蛋
IuS9oOaJ vuWIsOS6 huS4gOac rOOAikRF QVRIIE5P VEXjgIvv vIzlpb3l pYflv4Pp qbHkvb/k vaDnv7vl vIDov5nm nKznrJTo rrDvvIzk vaDpmIXo r7vkuobk vb/nlKjo p4TliJnv vIzkvYbm mK/kvaDm g4rorrbl nLDlj5Hn jrDliJrm iY3nmoTo p4TliJnk uYvkuK3l lK/ni6zm sqHmnInn rKwxMOad oS4uLiIK IuS9oOWG jeasoeWO u+ehruiu pOaYr+WQ puWmguat pO+8jOes lOiusOS4 iueahOaW h+Wtl+WN tOS7v+S9 m+a0u+S6 hui1t+ad pe+8jOWc qOS9oOec vOS4reS4 jeaWreWc sOaUvuWk p+e8qeWw j++8jOS9 oOmXreS4 iuS6huWP jOecvC4u LiIKIuWO n+acrOm7 keiJsuea hOaWh+Wt l+S4gOi9 rOWPmOaI kOihgOe6 ouiJsu+8 jOivoeW8 gueahOeU u+mdoui/ mOaYr+WH uueOsOS6 juS9oOea hOinhue9 keiGnOWJ je+8jOS9 oOWGs+Wu muS4jeWG jee6oOe7 k+S6jumB l+Wkseea hOinhOWI me+8jOW5 u+iniea2 iOWkseS6 hi4uLiI=
“你找到了一本《DEATH NOTE》,好奇心驱使你翻开这本笔记,你阅读了使用规则,但是你惊讶地发现刚才的规则之中唯独没有第10条…”
“你再次去确认是否如此,笔记上的文字却仿佛活了起来,在你眼中不断地放大缩小,你闭上了双眼…”
“原本黑色的文字一转变成血红色,诡异的画面还是出现于你的视网膜前,你决定不再纠结于遗失的规则,幻觉消失了…”