其他分享
首页 > 其他分享> > BUUCTF-----signin

BUUCTF-----signin

作者:互联网

1.拿到文件,查壳

收集信息,无壳,64位程序

2.拖入ida中

 

程序调用了 __gmpz_init_set_str 函数,这是一个 GNU 高精度算法库,在以前的RSA加密中见过很多次,加上65537这个比较敏感的数据,就基本确定了这是道RSA加密

可以从程序的本身得知

公钥N=103461035900816914121390101299049044413950405173712170434161686539878160984549

E=65537

加密后的密文为:ad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35

利用网站对N进行分解,分解出p,q

直接上rsa解密脚本

import gmpy2
import binascii
p = 282164587459512124844245113950593348271
q = 366669102002966856876605669837014229419
e = 65537
c = 0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35
n = p * q
d = gmpy2.invert(e, (p-1) * (q-1))
m = gmpy2.powmod(c, d, n)
print(binascii.unhexlify(hex(m)[2:]).decode(encoding="utf-8"))

 最后得到

带到网站进行验证

 

正确!!!!! 

 

标签:BUUCTF,gmpy2,binascii,RSA,signin,-----,import,加密,65537
来源: https://blog.csdn.net/qq_64558075/article/details/121814084