![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BUUCTF Crypto
唏嘘的羊腰子
这个作者很懒,什么都没留下…
展开
-
BUUCTF [NPUCTF2020]EzRSA wp
这道题题目给到了lcm(p-1,q-1),可以先从这个入手,我们可以知道,p-1和q-1都肯定有公约数2,可以先从2的幂次方入手,比较phi和n的值,可以发现23是临界值,于是先取phi=lcm//8,这道题第二个地方是,e和phi有公因数2,于是取e=e//2,解出来的m就是m2,再将m开平方根即可解出这道题from gmpy2 import invert,iroot,gcdfrom Crypto.Util.number import *n=1708394123021348970042663648原创 2020-05-29 22:07:36 · 1984 阅读 · 0 评论 -
BUUCTF Crypto [AFCTF2018]Tiny LFSR wp
这题看起来特别的麻烦,我们先来一步步分析。题目用同一个加密脚本加密了两份文件,一份是plain加密得到的cipher,另一个是flag加密得到的flagencode,再看看加密的方式,前一部分是通过lfsr的密钥key与plain前一部分按位异或得到的,后一部分是通过,lfsr生成的密钥流与plain的后一部分按位异或得到的,感觉就是特别的繁琐了。于是,我们的思路是先通过cipher与plain按...原创 2020-04-23 17:11:22 · 2275 阅读 · 0 评论 -
BUUCTF Crypto [INSHack2019]Yet Another RSA Challenge - Part 1 wp
这道题告诉你了rsa的n的因子其中的p,但是其中的字母有所替换,我们就可以发现,这串字符中的‘FC’可能是’FC‘也可能是’9F’于是话不多说直接爆破即可,下面给出本题脚本import gmpy2from Crypto.Util.number import *n=71957974565330311902587309804384891397688083828663581735179018970...原创 2020-04-23 14:48:02 · 725 阅读 · 0 评论 -
BUUCTF Crypto [V&N2020 公开赛]easy_RSA wp
这道题我们看到加密的脚本,首先我们可以关注到,这题目的素数生成机制是不断的乘然后再减一可以得到素数,我们可以发现,因子p再加一也就是p+1是光滑到,于是我们可以使用Williams’p+1 algorithm求解可以直接调用库的函数// 命令行调用即可python2 -m primefac -vs -m=p+1 794137173995657728016066441938374096751...原创 2020-04-21 17:04:33 · 1824 阅读 · 0 评论 -
BUUCTF Crypto [QCTF2018]Xman-RSA wp
这题其实还是挺麻烦的,首先先还原给的加密脚本如下:from gmpy2 import is_primefrom os import urandomimport base64def bytes_to_num(b): return int(b.encode('hex'), 16) def num_to_bytes(n): b = hex(n)[2:-1] b...原创 2020-04-18 22:23:15 · 815 阅读 · 0 评论 -
BUUCTF Crypto [WUSTCTF2020]B@se wp
这道题主要是考一个base64,但是是变换了编码表的base64,首先,我们看到变化后的编码表缺少了4个字符,肯定不可能去数是什么的,先写个脚本康康缺少了啥吧// An highlighted blockimport strings = "JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/"for i in st...原创 2020-04-18 17:34:24 · 1988 阅读 · 0 评论 -
BUUCTF Crypto [WUSTCTF2020]大数计算 wp
这题根本就没有写writeup的欲望好吧,用python一个个跑就出来了,脚本放在这// python2p1=1for i in range(1,2021): p1*=i#print p1#38609695p2=520**1314 + 2333**666#print p2#67358675p3=80538738812075974 + 80435758145817515 + 12...原创 2020-04-18 16:59:55 · 1441 阅读 · 1 评论 -
BUUCTF Crypto [V&N2020 公开赛]Fast wp
这一题题目给到了一个RSA的加密算法和解密算法,如果这个解密算法没问题的话那么我们的目标就是得到N的因子p和q,我们可以看到p和q的生成没有经过任何算法,单纯的取1024bit的数,于是我们不考虑用爆破,我们来看看题目脚本,由于给到了g1,g2的值,先来看看这两个的生成算法g1 = pow(g, r1 * (p-1), N)g2 = pow(g, r2 * (q-1), N)因为我们寄希望...原创 2020-04-11 20:46:51 · 894 阅读 · 1 评论 -
BUUCTF Crypto [NCTF2019]babyRSA wp
这道题没有给出n,只给出了e和d,于是我们可以尝试通过爆破的方法求得欧拉函数进而求得,p和q。然后我们可以看到p和q的生成函数,p和q非常的接近,而且都在2**1023和2*1024之间,于是可以发现把欧拉函数phi开平方根之后的下一个素数,就是生成的q,进而可以解出本题,下面给出脚本// python2from gmpy2 import *from sympy import *from ...原创 2020-03-26 13:03:49 · 1777 阅读 · 0 评论 -
BUUCTF Crypto RSA4 wp
看到这一题,给到了三组三个n三个c,我们可以很容易的想到了中国剩余定理,但是我们发现这题并不是那么容易的,可以说是非常恶心人了,他题目给到的c和n并不是用的十进制,而是用的五进制,要先用int("*****",5)的代码转换为十进制才能计算。后来我们又发现,将题目通过CRT解出来并不对,看来并不是flag直接模的n,于是我们猜测e=3,果然,成功解出flag,脚本如下// python2imp...原创 2020-03-23 21:48:20 · 2560 阅读 · 3 评论 -
BUUCTF [BJDCTF 2nd] BlockChain智能合约两则 wp
坚固性?!先给出源码// soliditypragma solidity ^0.4.23;contract Trans{ string flag; mapping(address => uint256) balances; constructor () public { } function getBalance() pub...原创 2020-03-23 20:39:35 · 1225 阅读 · 0 评论 -
BUUCTF Crypto [BJDCTF2020]编码与调制 wp
看到这道题题目给到的图片,我们可以发现是和曼彻斯特编码有关,然后和上面那串二进制没有任何的关系,我还拿那串二进制和密文异或了好久dark失败,于是我们在网上找到了一个曼彻斯特解码器,按照步骤解码可得到一串16进制024A447B4469664D616E63686573746572636F64657D通过解码16进制即可得到flag{DifManchestercode}...原创 2020-03-20 16:15:26 · 1737 阅读 · 0 评论 -
BUUCTF Crypto [BJDCTF2020]RSA wp
看完这道题的加密脚本,发现这道题给出的条件异乎寻常的多,但是我们不管他,需要什么就调用什么。我们先可以看到,两个n值公用了一个q,可以通过gcd函数很快找到q的值,就可以求出两个p的值,然后我们发现我们不知道e的值,然后e小于100000,又有关系式output=pow(294,e,n),可以通过爆破e的取值很快得到e,至此我们以及具有了解除flag的所有条件,不管其他条件直接写脚本,如下// ...原创 2020-03-20 14:52:28 · 2201 阅读 · 0 评论 -
BUUCTF Crypto [BJDCTF2020]easyrsa wp
这题我们可以看到题目加密文件中给到了一条数学公式Fraction(1,Derivative(arctan§,p))-Fraction(1,Derivative(arth(q),q)),然后我们通过查询,发现是p²+q²,再通过一些简单的数学变换就可以很快的得到p和q的值了,很简单就可以得到flag,脚本如下// python2from gmpy2 import *from Crypto.Ut...原创 2020-03-20 14:34:43 · 1690 阅读 · 0 评论 -
BUUCTF Crypto [BJDCTF2020]rsa_output wp
不多说,RSA共模攻击,脚本如下// python2from gmpy2 import invertdef gongmogongji(n, c1, c2, e1, e2): def egcd(a, b): if b == 0: return a, 0 else: x, y = egcd(b, a % b)...原创 2020-03-19 22:40:17 · 1931 阅读 · 0 评论 -
BUUCTF Crypto [BJDCTF2020]这是base?? wp
这道题题目是base,然后看到那个txt文档,果断将cipher放到base64解密中解,果然不出意外的失败了,然后我们看到dict字典集,感觉看上去是字符替换,然后发现这总共有64个字符再加上个=符号,我们去查一下base64的标准字典如下以及python的字典集于是可以写脚本进行替换和decode得到flag,脚本如下// An highlighted blockimport ba...原创 2020-03-19 22:10:44 · 3681 阅读 · 0 评论 -
BUUCTF Crypto [GWCTF 2019]BabyRSA wp
这题我们可以看到,在题目的加密脚本中,我们可以发现q = sympy.nextprime§,意味着p和q是相邻的素数,非常接近,于是可以将N开平方根,这个数的nextprime就为q,然后就可以求出所有rsa的元素求出c1,c2来。然后可以通过c1,c2和F1,F2的关系得到关系式,3C1F2²-3C1²F2+C1³-C2=0,于是可以通过初中所学的二次方程求根公式,得到m1,m2求出flag,解...原创 2020-03-19 15:28:49 · 1743 阅读 · 0 评论 -
BUUCTF Crypto [RoarCTF2019]babyRSA wp
这道题,我们可以看到在p和q的生成算法中有用到!阶乘,于是我们可以联想到wilson定理即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )于是我们就可以通过invert函数,一步步将A推成B,这样就可以很快的解除p,q的值,得到flag脚本如下// python2import gmpy2import sympydef wilson(A,B): t=A-B-1...原创 2020-03-18 17:05:08 · 1344 阅读 · 0 评论 -
BUUCTF Crypto [HDCTF2019]together wp
这题我们总共拿到了四个文件,两个公钥文件,两个密文文件,我们首先打开密文文件,发现是串base64加密过后的,于是我们拿去工具解密,发现并不能解开,然后找到了一个网站可以解为16进制的进行解密,解密结果如下将符号去掉即可得到密文的16进制,我们再使用openssl打开公钥文件使用命令行openssl rsa -pubin -text -modulus -in warmup -in pubk...原创 2020-03-18 13:05:28 · 1243 阅读 · 0 评论 -
BUUCTF Crypto [NCTF2019]childRSA wp
这一道RSA打开加密算法乍一看感觉没有问题,N特别大,除了p和q的生成算法啥都没给,于是我们去查了一下 Crypto.Util.number 中的sieve_base,发现这是前10000个素数的生成列表,我们再去查一下第10000个素数的值为104729不过就算我们知道了这个值的大小似乎还是得不到结果,从这个p,q的生成算法中,我们可以知道其是由小于104729的素数随机组合生成的,在这里我...原创 2020-03-16 22:02:10 · 3015 阅读 · 1 评论 -
BUUCTF Crypto [AFCTF2018]Morse wp
这题是非常想骂人了,-…/.----/-…/-…/-…/…–/--…/…-/-…/-…/–…/-…/…–/.----/–…/…–/…—/–…/–…/…-/…/…-./–…/…–/…–/-----/…/…-./…–/…–/…–/…-/…–/…/–…/----./–…/-…看到题目给的这个,以及题目名字就会下意识反应到时Morse密码了,然后把/换成空格解码出61666374667b317327745...原创 2020-03-16 16:40:29 · 2926 阅读 · 0 评论 -
BUUCTF Crypto [GUET-CTF2019]BabyRSA wp
这题RSA非常简单,给出了p+q和(p+1)*(q+1)的值,通过简单的拼凑就可以得到n和欧拉函数phin的值,直接求得flag出来,脚本如下// python2import gmpy2a =0x1232fecb92adead91613e7d9ae5e36fe6bb765317d6ed38ad890b4073539a6231a6620584cea5730b5af83a3e80cf301412...原创 2020-03-16 16:22:27 · 1947 阅读 · 0 评论 -
BUUCTF Crypto [HDCTF2019]bbbbbbrsa wp
打开题目我们可以看到这就是一道RSA的题目,且几乎所有条件都知道,就只有e需要在50000到70000之间爆破,算是非常的简单,直接上脚本// python2import base64import gmpy2p=177077389675257695042507998165006460849n=374218295098877962748971622493673294009886471456...原创 2020-03-16 15:23:04 · 2125 阅读 · 0 评论 -
BUUCTF Crypto 坏蛋是雷宾 wp
这道题一看题目,就可以知道是RSA中的rabin类型的题了,详细过程可在ctfwiki中找到链接: ctfwiki-rabin.首先,看到了n的值较小,直接进行分解看到了分解出来的p和q之后便可直接套用脚本求解,在这个rabin中e=2,下面给出题目脚本// python2from gmpy2 import *import hashlibn=523798549p=10663q=...原创 2020-03-16 11:50:34 · 1738 阅读 · 0 评论 -
BUUCTF Crypto 浪里淘沙 wp
这道题打开txt文档一看,大量的英文单词而且中间还没有空格,再结合题目给到的一串数字4、8、11、15、16可以考虑到是跟字频有关,但是并不能有效找到脚本或者工具可以识别不带空格的词频,于是掏出了神奇的word我们可以通过这种方法迅速的找到每个单词的词频,然后再把已经找到的全部替换为1,避免重复查找,然后再放到excel中进行排序标注起题目要求的编号组合起字符串即可得到flagflag{...原创 2020-03-15 22:45:45 · 3048 阅读 · 0 评论 -
BUUCTF Crypto yxx wp
打开密文.txt发现基本上是不可见字符然后再打开明文的txt首先,用winhex打开密文txt文档查看不可见字符我们发现,他这个位数刚好是两行,32位,再来查看明文.txt发现刚好也是32位字符,于是怀疑这道题是道一次性密码本OTP的题目,将明文与密文的txt一位一位异或即可得到flag// python2h=['0A','03','17','02','56','01','15',...原创 2020-03-15 21:43:59 · 1090 阅读 · 1 评论 -
BUUCTF Crypto SameMod wp
这道题一看题目SameMod就可以猜到是RSA中的共模攻击关于共模攻击的原理这里就不多赘述了,可以参考ctfwikihttps://wiki.x10sec.org/crypto/asymmetric/rsa/rsa_module_attack下面直接给出本题脚本// python2from gmpy2 import invertdef gongmogongji(n, c1, c2, e...原创 2020-03-15 21:16:35 · 2414 阅读 · 0 评论 -
BUUCTF Crypto Unencode wp
记很奇怪的一道题题目名字为 Unencode内容只有 89FQA9WMD<V1A<V1S83DY.#<W3$Q,2TM]在网上搜了很久都没有相关的内容,最后在UUencode里成功解出flag flag{dsdasdsa99877LLLKK}附上UUencode得到解码链接UUencode...原创 2020-03-15 20:43:04 · 1261 阅读 · 0 评论 -
BUUCTF Crypto RSA5 wp
BUUCTF Crypto RSA5 wp本题e较大,不建议使用中国剩余定理求解,在不同的n中试试寻找公因数求解下面展示 exp代码。// An highlighted blockfrom gmpy2 import *n1 = 204749188940517785333052623456018809280882844711218237540497253540724771558737788...原创 2020-03-15 14:48:56 · 2214 阅读 · 5 评论