美文网首页
某信2021某地区决赛

某信2021某地区决赛

作者: ylylhl | 来源:发表于2021-10-19 10:26 被阅读0次

记点东西……
太长不看:rar5真加密破解 = rar2john + hashcat

三行情诗

提示三行情诗但是图片很明显是两行,根据图片宽高搜索对应hex,进行一个高度的改:

同时由于套了010的jpg模板,看到末尾有rar文件,binwalk -e分离得到2EDC.rar
更改图片高度后看到提示

比赛的时候紧张地进行了一个百度并焦虑地强行写了一下,写得很烂,烂到看不下去的程度(

import itertools

l='qazwsxQAZWSX'
l=list(l)
for a,b,c,d,e,f in itertools.product(l, repeat=6):
    a=f"{a}{b}{c}{d}{e}{f}"
    with open('1.txt','a') as f:
        f.write(a+'\n')

根本没做条件限制,因而开始了缓慢而痛苦的生成(……)期间去搞别的题了,回来APCHPR撸了一把报错,发现是rar5,又开始四处找工具,找到一篇:https://www.freesion.com/article/15821308867/
遂打开kali,这时小破笔记本因为还同时开着IDA浏览器spyder等等乱七八糟的东西,已经进入卡爆状态(
拖进去执行

rar2john 2EDC.rar >hash.txt   

删掉不用的部分,留下

执行

hashcat -a 0 -m 13000 hash.txt 1.txt

直接黑屏(笑)后来比赛结束第二天复现了下,跑出来了……

$rar5$16$fdedaa2ca61fc54faaeac72a566a79b0$15$b848f1949dfce38205ee4acbabeb1b49$8$3c950745a82c85b2:QzaSXw

解压即得flag。

古典密码

一个真的很好用且啥都有的解密网站:
http://rumkin.com/tools/cipher/playfair.php

rrrsssaaa

没做出来留个档,先放题目:

p = getPrime(512)
q = getPrime(128)
r = getPrime(512)
a = p**3 + q**4
n = p * q * r
e = 65537
m = bytes_to_long(flag)
c = powmod(m,e,n)

print('a =', a)
print('n =', n)
print('c =', c)

'''
a = 1001757897913772351510420195662626456337522550684606727483773096673299029784598925879489541145425035208954548434364407129536623872359866140502945055841821765538135618785958230881698432164666106480484384998915283051445946164568339012311071022667483689786104241205203770248137327154122271358173278768580995401804353335810303663245624828137303106291342454008598042561788843169528260839797410662782024780465758566251328065946252974178694612662193108827812380093012592
n = 19743856964263732842999962921764407899550835757434895392940479421960735302959163991849377985049404173836251900687827441599500422841626517558622567745437335569126719161072741233680254267603047267283814233895186061759120509099394028737117210315668037567644106922178370110286156290354552013641623466808054072066874721501635305497521532247446583415341
c = 11573369450591319755076158585550356804136715495771905025393681593171072453674223539740220735995000501270745453812328856003963738281166754397539243769043057759237596024541470868109828449256053991918612982581009998827964614610819962346527488888094333196535012014776795315145414671509148454534127080694322513052946539505422338224596999797852421340273
'''

队友:rsa能做吗
我:我看看……救命,我一天中不能够看太多的数学题
↑就是这样思路完全跑偏,试图用p**3 + q**4p * q * r凑出p+qpq,果然到最后都没做出来(。后来比赛结束问了下以前搞密码的队友,答曰试试gmpy2的iroot……
我:我不理解,但大受震撼

p = gmpy2.iroot(a,3)[0]
q = gmpy2.iroot(a-p**3,4)[0]
r = n//p//q
phi = (p-1)*(q-1)*(r-1)
d = gmpy2.invert(e, phi)
m = gmpy2.powmod(c, d, n)

SETCTF - mostly common

20211108:懒得新开一篇,又是rsa,堆一起好了

from Crypto.Util.number import bytes_to_long, getPrime

f = open('flag.txt', 'rb')
flag = f.read()
f.close()
m = bytes_to_long(flag)
p = getPrime(512)
q = getPrime(512)
n = p * q
e1 = 65536
e2 = 270270
c1 = pow(m, e1, n)
c2 = pow(m, e2, n)
f = open('message.txt', 'w')
f.write('n=' + str(n) + '\n')
f.write('c1=' + str(c1) + '\n')
f.write('c2=' + str(c2) + '\n')
f.close()
n=122031686138696619599914690767764286094562842112088225311503826014006886039069083192974599712685027825111684852235230039182216245029714786480541087105081895339251403738703369399551593882931896392500832061070414483233029067117410952499655482160104027730462740497347212752269589526267504100262707367020244613503
c1=39449016403735405892343507200740098477581039605979603484774347714381635211925585924812727991400278031892391996192354880233130336052873275920425836986816735715003772614138146640312241166362203750473990403841789871473337067450727600486330723461100602952736232306602481565348834811292749547240619400084712149673
c2=43941404835820273964142098782061043522125350280729366116311943171108689108114444447295511969090107129530187119024651382804933594308335681000311125969011096172605146903018110328309963467134604392943061014968838406604211996322468276744714063735786505249416708394394169324315945145477883438003569372460172268277

显然是共模攻击的简单变种,gcd(65536,270270)==2,所以计算出的结果为m^2,用iroot开方即可得到m

import gmpy2
import binascii

n = 122031686138696619599914690767764286094562842112088225311503826014006886039069083192974599712685027825111684852235230039182216245029714786480541087105081895339251403738703369399551593882931896392500832061070414483233029067117410952499655482160104027730462740497347212752269589526267504100262707367020244613503

e1 = 65536//2
e2 = 270270//2

c1=39449016403735405892343507200740098477581039605979603484774347714381635211925585924812727991400278031892391996192354880233130336052873275920425836986816735715003772614138146640312241166362203750473990403841789871473337067450727600486330723461100602952736232306602481565348834811292749547240619400084712149673
c2=43941404835820273964142098782061043522125350280729366116311943171108689108114444447295511969090107129530187119024651382804933594308335681000311125969011096172605146903018110328309963467134604392943061014968838406604211996322468276744714063735786505249416708394394169324315945145477883438003569372460172268277

s = gmpy2.gcdext(e1,e2)
m1 = gmpy2.powmod(c1,s[1],n)
m2 = gmpy2.powmod(c2,s[2],n)

m = (m1*m2)%n
m = gmpy2.iroot(m,2)[0]
print(binascii.unhexlify(hex(m)[2:]))

相关文章

  • 某信2021某地区决赛

    记点东西……太长不看:rar5真加密破解 = rar2john + hashcat 三行情诗 提示三行情诗但是图片...

  • 某 某 某

    当你在心里 默念自己的名字 你是否会产生一种 陌生和厌烦 如果答案肯定 那么,你也许 和我一样,正在 遭受生活的折...

  • “某哥”、“某姐”、“某叔”

    化浊这些年逛网络,不时有遇到用户名里带“哥”、“姐”、“叔”之类后缀的视频制作者。比如“某某哥”、“某某姐”、“某...

  • 某信练习稿

    2016/08/16

  • 某思某悟

    因为活着,所以生活。 因为生活,所以感悟。 多正常的事情,不知道触动了哪根神经,就想起了哪一片事情,小有触动。 活...

  • 前段时间耳鸣一直困扰着我,整夜的失眠,现在仍未好转,但很庆幸不用整夜失眠了。 一直以为自己生了一场大病,做了一堆检...

  • 被喜欢的人夺走初恋 应该是最幸福的事了 谈笑中还保留有年少时的不安和胆怯 也会小心扮演着自己不曾有过的角色 可没准...

  • 年少不经事之时,以为凡人必有一牵挂之某,若否,则为之贫:腰间贫,容貌贫。因此谬论,故假以某为己之念,长于心间。忽一...

  • 「某」

    文/齐一文 1. 下了一天一夜雨,昨天还在窗前欣赏雨滴肆虐的景色,这雨景让我想起小时候雨停后总爱穿着雨靴踏过前往奶...

  • 慕心蓍草迷芳踪,柳絮杨花羡苍穹。 无端顿入纤幽处,从此人间无数重。

网友评论

      本文标题:某信2021某地区决赛

      本文链接:https://www.haomeiwen.com/subject/epzooltx.html