ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第四届 美团MTCTF Write-up(Crypto) by Schen

2021-12-12 09:00:39  阅读:220  来源: 互联网

标签:QQ PP 19 美团 up Crypto flag str


第四届 美团MTCTF Write-up (Crypto)

前言

比赛的时候做了两个Crypto,一个Misc,队友们做了两个Pwn,一个RE。
总共241个得分队伍,最终排第36名,离进决赛还是有挺大距离的。
这里,把我做的两道Crypto题总结一下。

Symbol

考察的是LaTeX的字符

oHhKAS.png

一堆不认识的字符,凭着对希腊字母的了解勉强得知其模式为根据其发音得到对应明文

找了很多东西发现这些都是LaTeX的字符于是很快得到flag{fun_latex_math}

但是md5之后提交错误,注意到字母里有大小写,于是把L、T、X、M大写 -->flag{fun_LaTeX_Math}

md5后提交正确,多一嘴,md5默认32位小写(不用像我一样把4种都试一遍

hamburgerRSA

题目:

from Crypto.Util.number import *

flag = open('flag.txt').read()
nbit = 64

while True:
    p, q = getPrime(nbit), getPrime(nbit)
    PP = int(str(p) + str(p) + str(q) + str(q))
    QQ = int(str(q) + str(q) + str(p) + str(p))
    if isPrime(PP) and isPrime(QQ):
        break

n = PP * QQ
m = bytes_to_long(flag.encode())
c = pow(m, 65537, n)
print('n =', n)
print('c =', c)

p,q中一个为19位一个为20位(因为如果都是20或19位的话PP和QQ肯定不是质数)

显然N的前19位就是pq的前19位,N的后19位就是pq的后19位

这样,pq的位数是39或40位,只有一位不知道,只要爆破这一位再用sage的factor分解就可以了

以下脚本在sage中运行:

N=177269125756508652546242326065138402971542751112423326033880862868822164234452280738170245589798474033047460920552550018968571267978283756742722231922451193

low=str(N)[-19:]
high=str(N)[:19]

for i in ['']+[str(i) for i in range(10)]:
    n=int(high+i+low)
    f=factor(n)
    if len(f)==2:
        print(f)

得到p,q为 9788542938580474429 , 18109858317913867117

from Crypto.Util.number import*
PP=978854293858047442997885429385804744291810985831791386711718109858317913867117
QQ=181098583179138671171810985831791386711797885429385804744299788542938580474429
phi=(PP-1)*(QQ-1)
n=PP*QQ
c=47718022601324543399078395957095083753201631332808949406927091589044837556469300807728484035581447960954603540348152501053100067139486887367207461593404096
d=inverse(65537,phi)
m=pow(c,d,n)
print(long_to_bytes(m))

得到flag

标签:QQ,PP,19,美团,up,Crypto,flag,str
来源: https://www.cnblogs.com/sCh3n/p/15678122.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有