BUUCTF
#_##
这个作者很懒,什么都没留下…
展开
-
[RoarCTF2019]babyRSA-阶乘取模(威尔逊定理)
encodeimport sympyimport randomdef myGetPrime(): A= getPrime(513) print(A) B=A-random.randint(1e3,1e5) print(B) return sympy.nextPrime((B!)%A)p=myGetPrime()#A1=2185696345246163043734827843419143400006607675041902749385246351346986原创 2020-12-20 22:12:13 · 923 阅读 · 0 评论 -
[BJDCTF2020]easyrsa
encodefrom Crypto.Util.number import getPrime,bytes_to_longfrom sympy import Derivativefrom fractions import Fractionfrom secret import flagp=getPrime(1024)q=getPrime(1024)e=65537n=p*qz=Fraction(1,Derivative(arctan(p),p))-Fraction(1,Derivative(ar原创 2020-12-19 12:17:54 · 749 阅读 · 1 评论 -
[NCTF2019]babyRSA
encodefrom Crypto.Util.number import *from flag import flagdef nextPrime(n): n += 2 if n & 1 else 1 while not isPrime(n): n += 2 return np = getPrime(1024)q = nextPrime(p)n = p * qe = 0x10001d = inverse(e, (p-1) * (q-1))c原创 2020-12-19 11:08:39 · 898 阅读 · 5 评论 -
[BJDCTF2020]RSA
题目给了c和e、同公钥(e,n)加密的密文、具有同q的公钥加密的密文思路:由同q的公钥,也就是n公用了素数q,通过gcd函数可以得到p,也就有p和q此时就差e就能解出题目,已知e的范围、相同公钥加密的密文可由_294c == pow(294,e,n)爆破e,脚本如下:import gmpy2from Crypto.Util.number import *# flag=open("flag","rb").read()# p=getPrime(1024)# q=getPrime(1024)#原创 2020-12-08 21:15:08 · 1399 阅读 · 0 评论 -
[HDCTF2019]bbbbbbrsa
题目给出e的取值范围 ,以及n和p、base32加密并倒序的c由n和p可得q,base32倒序解密得c只要爆破出e即可from base64 import b64encode as b32encodefrom base64 import b64decode as b32decodeimport gmpy2from Crypto.Util.number import *from binascii import a2b_hex,b2a_heximport random# flag = "**原创 2020-12-08 19:18:02 · 944 阅读 · 1 评论 -
[BJDCTF 2nd]rsa1
# [BJDCTF 2nd]rsa1import libnumfrom Crypto.Util.number import *import gmpy2e=9724343#p^2+q^2=2239294139633281123617185011681472474689536672742549210503731792886729754908012060746180678253482904480120579996537396428165992851032621330792976391092190654原创 2020-12-08 14:01:48 · 224 阅读 · 1 评论 -
[BUUCTF]这是什么——JSfuck
题目描述:小明是一个软件专业的高材生,但是老师布置的这次的作业似乎不怎么靠谱,因为他们老师以前是学物理的!喜欢乱七八糟命名文件,还喜欢奇奇怪怪的编码。你快帮小明看一下这题,小明准备好了一箱子辣条。 注意:得到的 flag 请包上 flag{} 提交题目给出了一个apk文件,我们转成txt文件发现形如[][(![]+[])[+[]]+([![]]+[][[]])[+!+的编码在网上找了一下发现是jsfuck编码:原作者介绍false => ![]true =>原创 2020-12-07 22:01:10 · 2344 阅读 · 1 评论 -
[BUUCTF]RSA5 - 低加密指数广播攻击
低加密广播攻击的特点:加密指数e非常小一份明文使用不同的模数n,相同的加密指数e进行多次加密可以拿到每一份加密后的密文和对应的模数n、加密指数e此题给出的e很小且不变,给出了不同的公钥和对应的密文,也就是用不同的公钥加密相同的密文解题思路:不同的模数n中可能存在相同的p或者说q求出不同n之间的最大公约数 gcd()得到p或q 可得d有私钥d就能得到明文解密脚本:import gmpy2import libnume = 65537n0 = 2047491889405177原创 2020-12-02 14:29:07 · 4837 阅读 · 4 评论 -
[BJDCTF 2nd]rsa0
由p+q 和 p-q 得到p、q即解题e = 8542621#p+q = 18698482532406728080093200418425971262677963202439233724484717456494477495046378570706985787085759844143101902099263556198278335359888324691870230945957720x1 = 186984825324067280800932004184259712626779632024392337.原创 2020-12-02 13:32:39 · 109 阅读 · 0 评论 -
[BUUCTF]rsa2 低解密指数攻击
低解密指数攻击与低加密指数相同,低解密指数可以加快解密的过程,但是者也带来了安全问题。在RSA中d也称为解密指数,当d比较小的时候,e也就显得特别大了。适用情况:e过大或过小(一般e过大时使用)首先需要需要下载工具rsa-wiener-attack(附件里面的rsa工具中有):git clone https://github.com/pablocelayes/rsa-wiener-attack(注意,这里要将破解脚本和rsa-wiener-attack的py文件放在同一个目录下)python3原创 2020-11-20 21:58:45 · 3978 阅读 · 3 评论 -
[BUUCTF]达芬奇密码
分析发现斐波那契数列乱序,于是可以猜测flag可能也是神秘字符串得乱序,且两者得乱序规则是一样得,接着通过移位可以得到flag字符串a = "0 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309"b = "0 233 3 2584 1346269 144 5 196原创 2020-11-20 17:29:56 · 2089 阅读 · 0 评论 -
[HDCTF2019]basic rsa
import gmpy2import libnumfrom Crypto.Util.number import *#from binascii import a2b_hex,b2a_hexflag = "*****************" #flag为mp = 262248800182277040650192055439906580479q = 262854994239322828547925595487519915551e = 65533n = p*qd = gmpy2.i原创 2020-11-19 20:21:25 · 785 阅读 · 0 评论 -
[AFCTF2018]Morse
莫尔斯电码解码注意要把/替换成空格-.... .---- -.... -.... -.... ...-- --... ....- -.... -.... --... -... ...-- .---- --... ...-- ..--- --... --... ....- ..... ..-. --... ...-- ...-- ----- ..... ..-. ...-- ...-- ...-- ....- ...-- ..... --... ----. --... -..提交flag发现错误,突.原创 2020-11-19 19:44:25 · 1272 阅读 · 0 评论 -
[BUUCTF]Cipher-“普莱费尔密码”(playfair)
Playfair密码原理编一个5行5列的密码表。第一列(或第一行)是密钥,其余按照字母顺序,如果密钥过长可占用第二列或行。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。当然也要把使用频率最少的字母去掉(它依据一个55的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待,英语中z使用最少,可以去掉它)。根据题目提示可以得到秘钥为play-fair(公平)密钥是playf原创 2020-11-19 19:23:19 · 2059 阅读 · 0 评论 -
[BUUCTF]Dangerous RSA ->低加密指数攻击
低加密指数攻击:假设e=3, e很小,但是n很大 有RSA加密公式: C=M^e % n (C密文,M明文)则:当M^e < n 时,C = M^e ,所以对C开方就能得到M当M^e > n 时,此时用爆破的方法假设我们 M^e / n (商为 k 余数为C),所以M^e = kn + C,对K进行爆破,只要k满足 kn + C能够开方就可以得明文#python3## -*- coding: utf-8 -*-#from gmpy2 import irootimport li原创 2020-11-18 21:06:31 · 6310 阅读 · 0 评论 -
[CFI-CTF 2018]webLogon capture
用wireshark打开.pcapng文件 追踪http流发现邮件账号和密码转字符即可得到flag原创 2020-11-18 09:43:17 · 392 阅读 · 0 评论 -
[BUUCTF]RSAROLL
思路:已知比较小得n和e,用n分解模数得到p和q,用(p-1)(q-1)和e得到dpow(c,d,n)即可得密文# 已知n:920139713和e:19 大量密文c# 用比较小的n分解模数得到p = 18443 q = 49891# 由(p-1)(q-1)和e得到d# pow(c,d,n)得明文import gmpy2n = 920139713p =gmpy2.mpz(18443)q =gmpy2.mpz(49891)e =gmpy2.mpz(19)phi_n= (p - 1) *原创 2020-11-16 21:14:35 · 680 阅读 · 0 评论