首页 > 其他分享 >攻防世界-best_rsa

攻防世界-best_rsa

时间:2024-12-01 18:35:21浏览次数:4  
标签:pk2 攻防 pk1 gmpy2 bytes rsa n1 n2 best

一、题目


给出两个公钥和两个密文

二、解题

1、

两个公钥,用Crypto库可以直接获取到n1,n2,e1,e2

2、

但是仅有n和e和c无法解出明文,还需要有d,但是算d需要有p和q,打印n发现是个上百位的模数,通过暴力算法显然不当,因此弃用yafu。再到http://www.factordb.com/尝试分解,也没有结果

3、

正当一筹莫展的时候,打印n1和n2时发现n1和n2相同,两个不同的公钥,竟然巧合的存在相同的模数!?于是上网一查,发现对于这种情况可以使用共模攻击来绕过解密私钥,仅仅使用n,e1,e2,c1,c2即可破解两份密文!

共模攻击原理与算法:

欧几里得算法与欧几里得扩展算法

gmpy2库的运用

  • gmpy2是一个用于Python的高精度计算库,支持大整数、有理数和浮点数的计算。你可以通过pip安装gmpy2,然后使用其提供的函数进行加减乘除运算,还可以进行三角函数、对数函数等高级计算

    参考:https://blog.csdn.net/m0_52842062/article/details/117852175

4、

万事具备,编写脚本解密即可
需要注意的是gmpy2的扩展欧几里得算法返回的是一个元组,其中s1和s2分别是元组的第二和第三个元素,而元组的第一个元素是gcd(s1,s2),并不是我们需要的。

三、脚本代码与答案

from Crypto.PublicKey import RSA
from Crypto.Util.number import inverse,long_to_bytes,bytes_to_long
from gmpy2 import invert,gcd,gcdext

with open("publickey1.pem","rb") as f:
    pk1_bit= f.read()
with open("publickey2.pem","rb") as f:
    pk2_bit =f.read();
    
pk1 = RSA.importKey(pk1_bit)
pk2 = RSA.importKey(pk2_bit)

n1 = pk1.n
e1 = pk1.e
n2 = pk2.n
e2 = pk2.e
# print(n1)
# print(n2)


with open("cipher1.txt","rb") as f:
    c1= f.read()
with open("cipher2.txt","rb") as f:
    c2= f.read()

c1= bytes_to_long(c1)
c2= bytes_to_long(c2)

s= gcdext(e1,e2)
# print(s)

m = (pow(c1,s[1],n1)*pow(c2,s[2],n2) ) % n1
m = long_to_bytes(m)
print(m)

答案:flag{interesting_rsa}

标签:pk2,攻防,pk1,gmpy2,bytes,rsa,n1,n2,best
From: https://www.cnblogs.com/wyuu101/p/18580142

相关文章

  • 攻防世界-baigeiRSA
    一、题目给了如下两个文件二、解题1、查看代码发现就是简单的RSA加密算法,仔细分析一下发现flag就是明文,而要获得flag就要解密密文,但是代码中只提供了e。于是又去out文件翻了一下,常使用记事本打开,发现n和c已经给出,由于n的位数只有78个字符,可以尝试暴力分解因数2、分解因数(......
  • 20222317 2024-2025-1 《网络与系统攻防技术》实验七实验报告
    1.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。2.实验过程2.1简单应用SET工具建立冒名网站2.1.1开启并配置Apac......
  • 20222323 2021-2022-2 《网络与系统攻防技术》实验七实验报告
    1.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。2.实验过程(1)简单应用SET工具建立冒名网站使用set工具setoolkit克......
  • 20222412 2021-2022-2 《网络与系统攻防技术》实验七实验报告
    202224122021-2022-2《网络与系统攻防技术》实验七实验报告1.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站SET工具是一款开源的社会工程学渗透测试工具,专门用于模拟各种社会工程学攻击场景。......
  • 20222310 2024-2025-1 《网络与系统攻防技术》实验七实验报告
    一、实验内容1.本周学习内容(1)一些web安全的知识,复习了相关web的基础知识,比如:前、后端的区别,前后端的语言如HTML,CSS,JS,GO等(2)一些数据库攻击的知识,如SQL注入2.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建......
  • 《网络与系统攻防技术》实验八实验报告
    1.实验内容及要求(1)Web前端HTML能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。(2)Web前端javascipt理解JavaScript的基本功能,理解DOM。在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户......
  • 【攻防世界】WEB-inget
    首先找到该关卡启动靶场环境访问靶场构造一个id参数,尝试访问,无内容回显使用sqlmap工具,先获取数据库,输入命令sqlmap-uhttp://61.147.171.105:58893/?id=1--dbs发现第一个即为所需数据库,接下来进行获取字段,输入命令sqlmap-uhttp://61.147.171.105:58893/?id=1......
  • #渗透测试#SRC漏洞挖掘#红蓝攻防#黑客工具之Burp Suite介绍02-如何破解(中英对比)
    免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。                             ......
  • 20222306 2024-2025-1《网络与系统攻防技术》实验七实验报告
    1.实验内容1.1实验目的及要求本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。1.2本周学习内容本周学习内容主要是Web安全,了解......
  • 攻防世界misc部分
    [攻防世界]1-misc解题根据提示“生日”,猜测8位数暴力破解,大概试一下20000000开始,不然一个小时太久了得到口令20001228又是压缩包,注意CRC,与上图2.zip中相同,猜测明文破解[攻防世界]BotW-题目MASTERUSINGITANDYOUCANHAVETHIS.分析图片隐写解题某某装备吧,逐日之......