[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}

相关推荐
石氏是时试1 天前
[VolgaCTF 2025] Baby-Welcome,BrokeBroke,Field Rules
ctf
Sweet_vinegar2 天前
变量1(WEB)
安全·web·ctf·bugku
Sweet_vinegar3 天前
Wire1
安全·ctf·misc·攻防世界
落寞的魚丶8 天前
2025年河北省第二届职业技能大赛网络安全项目 模块 B样题任务书
ctf·2025河北省赛·2025河北第二届技能大赛·模块b
无极工作室(网络安全)8 天前
CTF-Pixel系列题目分析
ctf·隐写术
lally.10 天前
TPCTF 2025 web 复现
web·ctf
Sweet_vinegar10 天前
简单加密(BUGKU)
安全·ctf·base64·bugku·crypto
huan666*18 天前
CTF类题目复现总结-[MRCTF2020]CyberPunk 1
web安全·网络安全·ctf
见青..19 天前
WEB-CTFyj解题视频笔记(持续更新)
笔记·web安全·网络安全·ctf
H轨迹H19 天前
Vulnhub-venom
网络安全·渗透测试·vulnhub·ctf·信息收集·web漏洞·oscp