上海市大学生网络安全行动--磐石行动初赛wp(ctf+数据安全)

总的来说,体验很好,感觉比赛很有新意,挺不错的,我们也是成功进入了复赛,复赛将在明天发布wp,记得关注期待哦

CTF

加密字符串(队友写的只有思路)

base32是5位转8位,先求flag{的base32值"MZWGCZ33" 与题目所给信息前八位作对比

然后爆破a(1,32),b(1,32),根据公式ax+b=c,得出a=17,b=3然后用gmpy2的invert(17,32)求出a逆,然后根据密文求出flag的全部base32,然后解码得出flag。

5GC网元AMF名称

正常打开打不开

用tshark去分析

import subprocess

def extract_amf_name(pcap_file):

    # 构建tshark命令以提取AMF名称

    tshark_command = [

        'tshark', '-r', pcap_file, '-Y', 'ngap.AMFName',

        '-Tfields', '-e', 'ngap.AMFName'

    ]

    # 执行命令并捕获输出

    try:

        result = subprocess.run(tshark_command, capture_output=True, text=True, check=True)

        amf_names = result.stdout.splitlines()

        for amf_name in amf_names:

            if amf_name:

                print(f"找到AMF名称: {amf_name}")

                if 'flag{' in amf_name:

                    print(f"找到flag: {amf_name}")

    except subprocess.CalledProcessError as e:

        print(f"执行tshark时出错: {e}")

# 指定pcap文件路径

pcap_file = '1.pcap'

extract_amf_name(pcap_file)

写脚本

跑出来base64

解密得到flag

SimpleMath

只需要用费马定理即可,可以推导出很多公式

import hashlib,math

e=2024

c1 = 13798894366000389543105824738569477333589457573979381867617791629108634530469218595588674913377996887814382324939676694989303966102211582649091294377139213722284752368859899155187496353471137027799977726943298598781891932942809213479738424796381406395153387532326128039700403226232955601293825626580673848502

c2 = 8345270962933220748705640940042539655768479400474742907163839105119697152777101680965554655487108987976163915375998195781763196005604355919513038851508583607210896325521944835464860348547858146981475689957098841566414159105391568694850459363735886887644923361857322860202212384409487299691687537007756160811

x =  46634935204703467762059468310557146467280520646559462817444595911109324586051306476570230091661727734017783198612568269192724573697897329313412420089691593892536410298964831244297753535092160241910741012798955510811566005698890838606350510889894812562516614282228503349699928389967326012268471737720704647583

y =  436164337531727857803117888987687654823683213121187996770009767231135006220314769416622869240029164176659845964600431624416585718628377551963777129160863550007432998917045365169709626258708269884199246404615544266324954646743940941863189079187323904031800862635122938227172922941954309044012470679725884136

a=(x-2024)**e-c1

b=(y-2024)**e-c2

c=math.gcd(a,b)

flag=c

flag=hashlib.md5(str(flag).encode('utf-8')).hexdigest()

print("flag{"+(flag)+"}")

ezRe

一开始以为是这个404c函数

结果写了脚本

交了半天都不对

后来手动调试,发现还是对称加密

import numpy as np

def initialize_key(a1, a2, a3):

    v4 = np.zeros(256, dtype=np.uint8)

    v6 = 0

    for i in range(256):

        a1[i] = i

        v4[i] = a2[i % a3]

    for i in range(256):

        v6 = (a1[i] &#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值