文章目录

  • 前言
  • random
    • 题目
    • 过程分析
    • 解题代码
  • square
    • 题目
    • 过程分析
    • 解题代码

前言

crypto很简单的(bushi

random

题目

from random import *
from flag import flag
from hashlib import md5
from Crypto.Cipher import AES
from Crypto.Util.Padding import padf = open('output.txt','w')for i in range(666):f.write(f'{getrandbits(32)}\n')
f.close()r = getrandbits(32)
key = bytes.fromhex(hex(r)[2:])
key = md5(key).digest()
cipher = AES.new(key,AES.MODE_CBC)
c = cipher.encrypt(pad(flag,16))
print(f'c = \'{cipher.iv.hex() + c.hex()}\'')#c = '91fd1824ddc0a35e845e87f59e53a103334df418e6a65a7d7769699c3ca2119019361cd23a46a61d4e7f6cdff5f5200f586f90b66eabfd8ecff4ddf11ee444d37f80ada0bbe8af09e4fc32c1a51e3f29e2771b51c71d2ba4acb84fda61904b96'

过程分析

题目用getrandbits()生成了666个32位的随机数,查阅资料得知是Python的random模块通过MT19937 PRNG来生成随机数的。所以我们可以通过利用前624个随机数,再借助mt19937predictor模块来预测第43个随机数,此时该随机数的md5摘要即为key。然后把16进制的c转成byte类型,取前面16位作为iv,16位以后的值则为密文c,之后进行AES解密即可得到flag

解题代码

from Crypto.Cipher import AES
from mt19937predictor import MT19937Predictor
from hashlib import *
import binasciirandom_list = []
f = open('output.txt','r')
for i in f:random_list.append(int(i))
f.close()
pre = MT19937Predictor()
for j in range(624):pre.setrandbits(random_list[j],32)
for k in range(42):pre.getrandbits(32)
r = pre.getrandbits(32)
c = binascii.unhexlify('91fd1824ddc0a35e845e87f59e53a103334df418e6a65a7d7769699c3ca2119019361cd23a46a61d4e7f6cdff5f5200f586f90b66eabfd8ecff4ddf11ee444d37f80ada0bbe8af09e4fc32c1a51e3f29e2771b51c71d2ba4acb84fda61904b96')
iv = c[:16]
c = c[16:]
key = bytes.fromhex(hex(r)[2:])
key = md5(key).digest()
aes = AES.new(key,AES.MODE_CBC,iv)
m = aes.decrypt(c)
print(m)

flag:

NSSCTF{Every_Mersenne_prime_corresponds_2_exactly_1_perfect_number}

square

题目

from flag import flag
from Crypto.Util.Padding import pad
from Crypto.Util.number import *
flag = pad(flag,16)m = int.from_bytes(flag,'big')
n = getPrime(2048)
e = 16
c = pow(m,e,n)with open('output.txt','w') as f:f.write(f'n = {hex(n)}\n')f.write(f'e = {hex(e)}\n')f.write(f'c = {hex(c)}\n')'''
n = 0xcaea4e2db0dc68029999cdad792fa1f9142117163af28f3230f7500ef748841554141ef35555ba23b95dc87f4c83f75dad14b6204dd4907fb75650fa7799def911f077b945f359e345bb9350c4a8268906c547e95e5819ef44ff124566a88fa2174ddfe3e895016df0036b59a50c6efb78724bde5d16a8a5cae45c918f329e462d10abe56ecdfae95bd13665260d0e8b648540d11f2447eef9aef3ea370faaecaab4c82ec1fe2bc83f2ce1b2793d95187eb2637e75700ba9745c253e928a4a603139dbf6b8bbf8111900a58be21a269992a9744c0284cf8f3ad7a3b95106d17af6baceac1acf543e425dc6317ab7f799a8ce19633b22e709eacb5d74ce4b56f9
e = 0x10
c = 0x2700a92e463d1c5da073b38d075a2da57c89ff9d658066c0bd38391cc60259a4fc992f1a6f1c5756d6e5934831fc0fbf7bfd85607f0d18781d30a4ab485e119af4f08b5fe7bf927aeaf7572b05dfec764d6ddda2b247b9f6b731300ece4209606d94c5708388d6e8efc1fa6e9c0cdda41cee95eb4a6b053b862fc43e55648973863f9874ee79ce4408277c9dc38fb26b44880e58f054b957c64fcf0d39c1fd496ad2fc5f5e5e70ba41422a4d945da299b5a695a4b7013a1f9ae1b629e395ffb0942d783d6e6be1f0888dfcb02d0aa1e9b7076e952a339bdc60f044f598afa2da28a4d7f094b959c8a8fefd5a11d10971cd681722f6868cf15a200cb910c591e1
'''

过程分析

一眼丁真,有限域开方

解题代码

#sage
import gmpy2
import libnum
n = 25615677894578755047156343445844436265410029831929516816331615976442311723531561327119120421902137698702653352454485089340848821437391616202141872920071595012903043917129450415132281907851460389644978646684609345443875666422198491448869630433730250869349508030370580903892239207884756374806258109492943540694086628024646020870637092193719694492693846334255662773824649492430671129799738149781864430546125939433980330127212907575934619598220128829660669072374596742985160944744357764899980761882388174261685017998418835450616554405045572713241285624806694724839559978907713026057535561110529562103720815584229448177401
c = 4923619777042399025887146422303297659783120863226021996148860671244847512543098087964715767641980417679067390679564108726073206690699301224393506078206013912924380722152925011054668001017618531377057540022895412157878200312482440734700318829864241419088425547155735004814729711491605355026803363624542118358640137143297907437453623706048322326645004217906155891160491031898832200405387987365631365076388160011734943632502259110957991013666764677877335371895193349158552558287723825942343208259258904711934477381264350542678515421966792754830294704523232235472880006977827912360930331797971744778921436751402476343777
e = 16
R.<x> = Zmod(n)[]
f = x^e-c
f = f.monic()
res = f.roots()
for i in res:flag = libnum.n2s(int(i[0]))if b'NSSCTF' in flag:print(flag)break

flag:

NSSCTF{ore_wa_ningen_O_yameru_zo!!!JOJO!!!}

【心仪女子之美,总是这般动人,美得教人装得下日月的双眼都装不下她,得搬去心扉,余在心头。】

2022HNCTF---Week4 crypto wp相关推荐

  1. [NSSCTF 2022 Spring Recruit] Crypto wp

    [NSSCTF 2022 Spring Recruit] Crypto wp classic 题目 UZZJAM{UIXETGR7TMWD42SKTCWEP4AG_mhrlmshnayfihzl} 第 ...

  2. 祥云杯2020 Crypto wp

    Crypto: SimpleRSA wiener attack 利用自定义的m检验生成的d'来判断phi是否正确 e=10722954259441365070399386771014424812135 ...

  3. 2023 LitCTF --- Crypto wp

    文章目录 前言 easy_math Euler babyLCG baby_xor 前言 由于探姬小姐姐(bushi)跟我讲LitCTF是一个新生赛捏,所以我出的几个题题目都是比较简单,偏向于新手向.这 ...

  4. DASCTF NOV X联合出题人2022年度积分榜争夺赛!Crypto Wp

    CRYPTO easy_hash 根据 e n c o d e ( ) encode() encode()函数,已知 a 1 a_1 a1​,可以求出 a 2 , a 3 a_2,a_3 a2​,a3 ...

  5. ctfshow crypto部分wp

    目录 密码学签到 crypto2 crypto3 crypto4 crypto5 crypto6 crypto7 crypto8 crypto9 ​crypto10 crypto11 crypto0 ...

  6. NSSCTF刷题wp——Crypto入门

    NSSCCTF Crypto 探索 Crypto入门 [鹤城杯 2021]easy_crypto ID:453 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等 ...

  7. 2022 SWPUCTF Web+Crypto方向wp

    文章目录 2022 SWPUCTF WP web 欢迎来到web安全 easy_sql happy_rce do_not_wakeup newnew baby_pop happy_php easy_x ...

  8. CTFshow月饼杯crypto部分wp

    CTFshow月饼杯crypto部分wp crypto 1 题目描述: 密文如下: 第一行给出为自动密码,搜索到相关文章下载break_autokey.py和相关的词频统计脚本,修改ctext跑一下发 ...

  9. 【WP】hgame2023 week4 Pwn

    [WP]hgame2023 week4 Pwn without_hook libc2.36的版本,没有__free_hook和__malloc_hook这种hook函数,这里使用打_IO_list_a ...

最新文章

  1. 正则表达式--元字符和限定词
  2. 关于U打包代码必须放到Editor目录下的问题
  3. 如何解决高维稀疏的user-item矩阵推荐问题?
  4. 实现两个数的交换(异或,加减)
  5. APP界面设计临摹模板 |教你ui kit套件要怎么使用呢?
  6. android loginDemo +WebService用户登录验证
  7. VLD在VS2019中的使用以及应用程序无法正常启动(0xc0150002)
  8. 免费文章原创度检测工具
  9. eplan怎么导出部件汇总表_【整理分享】EPLAN初学资料、EPLAN表格和符号库汇总
  10. C语言链表详解(通俗易懂)
  11. Merlin——零知识证明(1)理论篇
  12. 【操作篇】Excel中如何批量删除批注
  13. U盘里面空间占用了.但是却不显示任何东西
  14. hive sql union all的性能优化
  15. Linux firefox 网页截图
  16. 字母,数字,下划线,数字的正则表达式
  17. 淘宝客推广(一):利用淘礼金做拉新
  18. 一个机械专业小混混 gooogleman 学习嵌入式ARM的真实经历
  19. 狂神RabbitMQ
  20. 《高通mbhc耳机检测》

热门文章

  1. 计算机启动进入不了桌面图标,电脑开机不显示桌面图标,按哪个键都没有反应是...
  2. 2021年广西省安全员A证报名考试及广西省安全员A证考试内容
  3. GuardPay能否取代PayPal?支付領域誰來領軍?
  4. 结构化开发方法和面向对象开发方法的比较
  5. 小数在内存中究竟是如何存储的(C语言代码详细讲解 2)
  6. 360极速模式和兼容模式
  7. 小端模式和大端模式的区别与C++代码检测
  8. 卡夫卡与风暴:卡夫卡和风暴的明智比较
  9. @ScedulerLock踩坑
  10. CSS实现混合模式mix-blend-mode。正片叠底、滤色、叠加等ps效果用代码的方实现