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