NSSCTF-Crypto详细完整writeup

今天也要加油  -------2024-01-06    09:36:30


 ID:453 [鹤城杯 2021]easy_crypto

原题:公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平等爱国和谐公正平等敬业公正敬业自由敬业平等自由法治和谐平等文明自由诚信自由平等富强公正敬业平等民主公正诚信和谐公正文明公正爱国自由诚信自由平等文明公正诚信富强自由法治法治平等平等自由平等富强法治诚信和谐

社会注意核心价值观解密。用在线网站解密:社会注意核心价值观解密 注意密文放在下面

得到flag:flag{IlUqU9O5guX6YiITsRNPiQmbhNRjGuTP}


ID:596 [强网拟态 2021]拟态签到题

原题:ZmxhZ3tHYXFZN0t0RXRyVklYMVE1b1A1aUVCUkNZWEVBeThyVH0=

一眼base64,解码后得到flag:flag{GaqY7KtEtrVIX1Q5oP5iEBRCYXEAy8rT}


ID:420 [SWPUCTF 2021 新生赛]crypto8

密文:73E-30U1&>V-H965S95]I<U]P;W=E<GT`

uuencode编码

得到flag:NSSCTF{cheese_is_power}


ID:419 [SWPUCTF 2021 新生赛]crypto7

69f7906323b4f7d1e4e972acf4abfbfc,得到的结果用NSSCTF{}包裹。

md5解密后得到:md5yyds


ID:422 [SWPUCTF 2021 新生赛]crypto10

AFFPGS{pbatenghyngvbaf!!!},建议直接秒了凯撒,直接秒。

得到flag:AFFPGS{congratulations!!!}

以下给出脚本

# -*- coding:utf-8 -*-
"""
作者:Wang Xinwei
日期:2023年12月27日
"""
import string
alphabet='abcdefghijklmnopqrstuvwxyz'
itoc=lambda i:alphabet[i]   #返回字母表中对应的字符
ctoi=lambda c:alphabet.index(c)
def Caesar_dec(ciphertext,k):
    plaintext=''
    for ch in ciphertext:
        if ch not in alphabet:
            plaintext+=ch
        else:
            plaintext+=itoc((ctoi(ch)-k)%len(alphabet))
    return plaintext
s="AFFPGS{pbatenghyngvbaf!!!},"
for i in range(1,27):
    print(Caesar_dec(s, -i))

 


ID:450 [鹤城杯 2021]A_CRYPTO

4O595954494Q32515046324757595N534R52415653334357474R4N575955544R4O5N4Q46434S4O59474253464Q5N444R4Q51334557524O5N4S424944473542554O595N44534O324R49565746515532464O49345649564O464R4R494543504N35

flag{W0w_y0u_c4n_rea11y_enc0d1ng!}
ciphey直接解密

ID:3889 [LitCTF 2023]梦想是红色的 (初级)

自由友善公正公正敬业法治自由自由和谐平等自由自由公正法治诚信民主诚信自由自由诚信民主爱国友善平等诚信富强友善爱国自由诚信民主敬业爱国诚信民主友善爱国平等爱国爱国敬业敬业友善爱国公正敬业爱国敬业和谐文明诚信文明友善爱国自由诚信民主爱国爱国诚信和谐友善爱国自由友善平等爱国友善平等友善自由诚信自由平等爱国爱国敬业敬业友善爱国敬业敬业友善自由友善平等诚信自由法治诚信和谐

社会主义核心价值观解码

LitCTF{为之则易,不为则难}


ID:433 [SWPUCTF 2021 新生赛]traditional

list = {'乾':'111','巽':'110','离':'101','艮':'100','兑':'011','坎':'010','震':'001','坤':'000'}
c = '震坤艮 震艮震 坤巽坤 坤巽震 震巽兑 震艮震 震离艮 震离艮'
c_ = c.split(' ')
print(c_)
m = ""
for i in range(len(c_)):
    s = ''
    for j in range(len(c_[i])):
        index = c_[i][j]
        c = list[index]
        s += c
    ch = chr(int(s,2))
    m+=ch
print("NSSCTF{"+m+"}")

ID:3887 [LitCTF 2023]Hex?Hex!(初级)

LitCTF{tai111coollaaa!}

16进制转字符串。


ID:149 [SWPU 2020]happy

# -*- coding:utf-8 -*-
""" 
作者:Wang Xinwei
日期:2024年01月28日
"""
from Crypto.Util.number import *
c=0x7a7e031f14f6b6c3292d11a41161d2491ce8bcdc67ef1baa9e
e=0x872a335
#q + q*p^3=q(1+p)(p^2-q+1)
hint1=1285367317452089980789441829580397855321901891350429414413655782431779727560841427444135440068248152908241981758331600586
#qp + q *p^2 =q*p*(p+1)
hint2=1109691832903289208389283296592510864729403914873734836011311325874120780079555500202475594
t=GCD(hint1,hint2)

p=hint2//t
q=t//(p+1)
n=p*q
phi=(p-1)*(q-1)
d=inverse(e,phi)
m=pow(c,d,n)
print(long_to_bytes(m))

ID:932 [AFCTF 2018]BASE

# -*- coding:utf-8 -*-
""" 
作者:Wang Xinwei
日期:2024年01月29日
"""
import base64
with open("C:/Users/34218\Desktop/flag_encode.txt","r") as f:
    data=f.read()
while True:
    try:
        data=base64.b64decode(data).decode()
    except:
        try:
            data=base64.b32decode(data).decode()
        except:
            try:
                data=base64.b16decode(data).decode()
            except:
                print(data)
                break

ID:932 [安洵杯 2019]JustBase

将没有的字符换成键盘上对应的数字。


ID:452 [鹤城杯 2021]Crazy_Rsa_Tech

原题

from Crypto.Util.number import *
from Crypto.Util.Padding import *

FLAG = bytes_to_long(pad(b"flag{??????}",64))
def init_key():
    p, q = getPrime(512), getPrime(512)
    n = p*q
    e = 9
    while(GCD((p-1)*(q-1),e)!=1):
        p, q = getPrime(512), getPrime(512)
        n = p*q
    d = inverse(e,(p-1)*(q-1))
    return n,e,d

n_list=list()
c_list=list()
for i in range(9):
    N,e,d=init_key()
    n_list.append(N)
    c=pow(FLAG,e,N)
    c_list.append(pow(FLAG,e,N))
    assert(pow(c,d,N)==FLAG)
print("n_list:",n_list)
print("c_list:",c_list)

然后又给了n_list和c_list。其中e固定是9


ID:3986 [LitCTF 2023]Is this only base?

SWZxWl=F=DQef0hlEiSUIVh9ESCcMFS9NF2NXFzM
今年是本世纪的第23年呢

符合贝斯64,但是次序不对。考虑是栏栅密码

栏数是23

base64解码后得到

IfqZQC{IbQ_Rp_E4S3_cR0!!!!!}

caser暴力枚举得到falgLitCTF{LeT_Us_H4V3_fU0!!!!!}

posted @ 2024-01-07 13:21  AllFalls  阅读(119)  评论(0编辑  收藏  举报