[LitCTF 2023]easy_math (中级)

源代码:

复制代码
from Crypto.Util.number import *
from secret import flag

m = bytes_to_long(flag)
e = 65537
p = getPrime(512)
q = getPrime(128)
n = p*q
hint = p**3-q**5
c = pow(m,e,n)
print(f'n = {n}')
print(f'c = {c}')
print(f'hint = {hint}')
'''
n = 2230791374046346835775433548641067593691369485828070649075162141394476183565187654365131822111419512477883295758461313983481545182887415447403634720326639070667688614534290859200753589300443797
c = 2168563038335029902089976057856861885635845445863841607485310134441400500612435296818745930370268060353437465666224400129105788787423156958336380480503762222278722770240792709450637433509537280
hint = 392490868359411675557103683163021977774935163924606169241731307258226973701652855448542714274348304997416149742779376023311152228735117186027560227613656229190807480010615064372521942836446425717660375242197759811804760170129768647414717571386950790115746414735411766002368288743086845078803312201707960465419405926186622999423245762570917629351110970429987377475979058821154568001902541710817731089463915930932142007312230897818177067675996751110894377356758932
'''

攻击代码:

复制代码
import gmpy2
import sympy as sp
from Crypto.Util.number import long_to_bytes

# 定义符号变量p,q
p, q = sp.symbols('p q')

# 定义方程组
y1 = 392490868359411675557103683163021977774935163924606169241731307258226973701652855448542714274348304997416149742779376023311152228735117186027560227613656229190807480010615064372521942836446425717660375242197759811804760170129768647414717571386950790115746414735411766002368288743086845078803312201707960465419405926186622999423245762570917629351110970429987377475979058821154568001902541710817731089463915930932142007312230897818177067675996751110894377356758932
y2 = 2230791374046346835775433548641067593691369485828070649075162141394476183565187654365131822111419512477883295758461313983481545182887415447403634720326639070667688614534290859200753589300443797
eq1 = p**3 - q**5 - y1
eq2 = p * q - y2

# 求解方程组
sol = sp.solve((eq1, eq2), (p, q))
print(sol)

# 解题
e = 65537
n = 2230791374046346835775433548641067593691369485828070649075162141394476183565187654365131822111419512477883295758461313983481545182887415447403634720326639070667688614534290859200753589300443797
c = 2168563038335029902089976057856861885635845445863841607485310134441400500612435296818745930370268060353437465666224400129105788787423156958336380480503762222278722770240792709450637433509537280
p = 7321664971326604351487965655099805117568571010588695608389113791312918573783115429227542573780838065461696504325762281209452761930184231131129306271846427
q = 304683618109085947723284393392507415311
d = gmpy2.invert(e, (p - 1) * (q - 1))
m = pow(c, d, n)
print(long_to_bytes(m))

flag为:

NSSCTF{f9fab7522253e44b48824e914d0801ba}

相关推荐
unable code20 小时前
攻防世界-Misc-pdf
网络安全·ctf·misc·1024程序员节
风语者日志1 天前
[LitCTF 2023]作业管理系统
前端·网络·安全·web安全·ctf
Pure_White_Sword3 天前
Bugku-Web题目-cookies
web安全·网络安全·ctf
f0rev3r7 天前
NewStarCTF2025-WEEK3
ctf
希望奇迹很安静8 天前
DVWA靶场通关笔记
web安全·网络安全·ctf·文件上传
kali-Myon10 天前
NewStarCTF2025-Week3-Web
sql·安全·web安全·php·ctf
风语者日志14 天前
攻防世界—easyupload
数据库·web安全·ctf·小白入门
序^章14 天前
【CTF | 比赛篇】Newstar ctf web
网络安全·ctf
sln_155016 天前
2025强网杯tradRE简单wp
安全·逆向·ctf
风语者日志16 天前
CTFSHOW—WEB4
网络·安全·web安全·网络安全·ctf