ctf wp
#_##
这个作者很懒,什么都没留下…
展开
-
[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 · 924 阅读 · 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 评论 -
[GWCTF 2019]BabyRSA
import hashlibimport gmpy2import sympyfrom Crypto.Util.number import *# flag = 'GWHT{******}'# secret = '******'# assert(len(flag) == 38)# half = len(flag) / 2# flag1 = flag[:half]# flag2 = flag[half:]# secret_num = getPrime(1024) * bytes_to原创 2020-12-11 09:56:57 · 488 阅读 · 0 评论 -
[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 · 1400 阅读 · 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 · 2353 阅读 · 1 评论 -
[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 · 3979 阅读 · 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 · 2093 阅读 · 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 · 790 阅读 · 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 · 2060 阅读 · 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 · 6316 阅读 · 0 评论 -
[CFI-CTF 2018]webLogon capture
用wireshark打开.pcapng文件 追踪http流发现邮件账号和密码转字符即可得到flag原创 2020-11-18 09:43:17 · 392 阅读 · 0 评论 -
[SUCTF2019]MT
思路:明文不断的加密,最终的还是明文python2.7#!/usr/bin/python# -*- coding: utf-8 -*-#python2from Crypto.Random import randomfrom Crypto.Util import number#from flag import flagdef convert(m): #异或与运算(字节型) m = m ^ m >> 13 m = m ^ m <&原创 2020-11-13 23:49:01 · 593 阅读 · 0 评论 -
[BUUCTF] RSA公钥解析
思路:同[GKCTF2020]Backdoor先进行公钥解析得到 n e分解n得 p q factordb根据p q e得到d最后用公钥加密的密文 和 私钥解密rsa.PrivateKey(n,e,d,q,p) 私钥包含(n,e,d,p,q)rsa.decrypt(f,key) f:公钥加密结果 key:私钥最后脚本:from Crypto.Util.number import *from Crypto.PublicKey import RSAimpo原创 2020-11-09 13:28:23 · 1219 阅读 · 0 评论 -
RSA的dp泄露 [BUUCTF] RSA2
可以看到,不同于传统的RSA解密,这里给出了一个参数dp首先了解一下什么是dp:dp = d%(p-1)遍历X(e+1种可能),求出(p-1)得到p且能被n整除;接下来就是常规RSA的解法得到dfor i in range(1,e): if (dp*e-1)%i == 0: if n%(((dp*e-1)/i)+1)==0: p=((dp*e-1)/i)+1 q=n/(((dp*e-1)/i)+1)原创 2020-11-08 15:31:51 · 2027 阅读 · 2 评论 -
RSA的共模攻击--[BUUCTF]-RSA3
假设有一条信息m,由两个不同的用户使用公钥进行加密(两个用户的e一般不同,模数n一般相同)c1 = m^e1 mod nc2 = m^e2 mod n得到了两个不同的密文c1,c2因为公钥是公开的(e1,e2,n)已知那么攻击者一共知道如下信息gcd(e1, e2) = 1m = c1^d1 mod nm = c2^d2 mod n若两个秘钥e互素根据扩展的欧几里得算法则存在s1,s2有:e1s1+e2s2=1所以c1^s1 mod n=m^(e1*s1) mod nc2^s2原创 2020-11-08 11:17:39 · 3284 阅读 · 1 评论 -
RSALib-cve漏洞-[GKCTF2020]Backdoor
题目提示:p=k*M+(65537**a %M)打开后发现一个算法.py文件,flag.enc和一个pub.pem查看算法,发现就是最普通的rsa,大意是用pub里的公钥n和e对flag进行了加密,加密后的结果进行base63后存在flag.enc中。打开flag.enc解密,得到#密文c02142af7ce70fe0ddae116bb7e96260274ee9252a8cb528e7fdd29809c2a6032727c05526133ae4610ed944572ff1abfcd0b17aa22原创 2020-11-05 12:51:09 · 574 阅读 · 0 评论 -
[BUUCTF]凯撒?替换?呵呵!解析
打开题目发现提供的有MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}以为是简单的凯撒解密,但是分析Ascill表,发现毫无规律,意味着要爆破出所有可能在线工具:https://quipqiup.com/去空格转小写flag{substitutioncipherdecryptionisalwayseasyjustlikeapieceofcake}...原创 2020-11-04 23:06:49 · 3801 阅读 · 0 评论 -
[GXYCTF2019]Ping Ping Ping
通过大佬的博客学习知道怎么绕过命令执行漏洞利用及绕过方式总结首先使用burp抓包看看过滤了什么字符基本上大部分字符都被过滤了,就很烦人尝试构造?ip=127.0.0.1;ls发现有两个东西?ip=127.0.0.1;ls flag.php发现被过滤空格和flag都被过滤了用刚才学到的${IFS}绕过可能{}也被过滤了用$IFS$1绕过在网上看到源码发现bash也被过滤还好sh可以利用?ip=127.0.0.1;echo$IFS$1Y2phpF0IGZsYWcuc原创 2020-10-18 19:47:46 · 202 阅读 · 1 评论 -
[ACTF2020 新生赛]Include
点击tips Can you find out the flag?源代码也看不到有用的东西上burp 无解现在考虑 “php://input"伪协议 + POST发送PHP代码 的经典套路发现php://input被过滤php://filter"伪协议” 来进行包含。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。构造Payload: ?file=php://filter/read=convert.bas.原创 2020-10-18 11:16:53 · 255 阅读 · 1 评论 -
[极客大挑战 2019]Secret File
根据提示,猜测这个页面可能隐藏了信息查看源代码:发现了/Archive_room.php点一下密码啥都没有用burp抓包 抓到action.php得到secr3t.phpif(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){ echo "Oh no!"; exit(); } 过滤了 ../ input .原创 2020-10-18 11:01:22 · 114 阅读 · 0 评论