总的来说,体验很好,感觉比赛很有新意,挺不错的,我们也是成功进入了复赛,复赛将在明天发布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] &#