当前位置: 首页 > news >正文

2025福建省数据安全大赛决赛wp

Crypto

 the key to AES

已知题目问题代码:

AES_ECB

from secret import flag, key
from Crypto.Util.Padding import pad
from Crypto.Cipher import AES
from hashlib import *assert int(key) % 2 == 0def gen_key(key):padded_key = key.encode() + b'\x0a' * 10assert len(padded_key) == 16return padded_keydef encrypt(msg, key):padded_key = gen_key(key)aes = AES.new(padded_key, mode=AES.MODE_ECB)msg = aes.encrypt(msg)return msgc1 = md5(encrypt(b'0123456789abcdef', key)).hexdigest()
c2 = encrypt(pad(flag.encode(), 16), key)print(f'c1: {c1}')
print(f'c2: {c2}')'''
c1: 7f22b1ca2f586a84f6e676634cc1778a
c2: b'#\xa85\xde6\xab\xe1\xc8DWx\xa5O\xf9PJ\xf9\x8e\xf3PR\x9a\xb5H\x17\xe9\x8d\x01\xb9\xf4\x07\x15p\x98\xda\x81l\x17!\xb8\xcb\x88\xa1?\xe93G_'
'''

该密钥用 10 个字节的 0x0a 进行填充,以形成一个16字节的 AES 密钥。我们已知 c1,它是字符串 b'0123456789abcdef' 加密后的 MD5 哈希,以及 c2,它是填充后的 flag 的加密结果。通过暴力破解所有可能的偶数16位密钥,我们可以找到生成与 c1 匹配的 MD5 哈希的密钥。一旦找到密钥,我们就可以解密 c2 来获取 flag。

加密和解密函数:encrypt 函数使用 AES-ECB 加密消息,decrypt 函数使用相同密钥解密密文;
暴力破解循环:循环遍历 0 到 999999 之间的所有偶数,并格式化为 6 位字符串。对于每个密钥候选者,加密明文 b'0123456789abcdef',计算 MD5 哈希,并与 c1 比较;
当找到正确的密钥时,解密 c2 并去填充以显示 flag。

from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
from hashlib import md5c1 = '7f22b1ca2f586a84f6e676634cc1778a'
c2 = b'#\xa85\xde6\xab\xe1\xc8DWx\xa5O\xf9PJ\xf9\x8e\xf3PR\x9a\xb5H\x17\xe9\x8d\x01\xb9\xf4\x07\x15p\x98\xda\x81l\x17!\xb8\xcb\x88\xa1?\xe93G_'def gen_key(key):padded_key = key.encode() + b'\x0a' * 10assert len(padded_key) == 16return padded_keydef encrypt(msg, key):padded_key = gen_key(key)aes = AES.new(padded_key, mode=AES.MODE_ECB)msg = aes.encrypt(msg)return msgdef decrypt(ciphertext, key):padded_key = gen_key(key)aes = AES.new(padded_key, mode=AES.MODE_ECB)msg = aes.decrypt(ciphertext)return msgplaintext1 = b'0123456789abcdef'
for i in range(0, 1000000, 2):candidate = str(i).zfill(6)ciphertext1 = encrypt(plaintext1, candidate)hash_value = md5(ciphertext1).hexdigest()if hash_value == c1:#print(f"Key found: {candidate}")flag_padded = decrypt(c2, candidate)flag = unpad(flag_padded, 16)print(flag.decode())break

 

MISC

 gif

题目是一个gif图片文件,可通过下载分帧图片,wps自带的可以直接下载分帧图片或者使用随波逐流。

ScreenShot_2025-11-28_054158_883

图片只有11张可以不使用工具,我们打开word将图片拖进去,修改页面宽度就可以对图片进行拼接。(可以不使用工具直接用手拼,很简单)

得到二维码。

再通过扫码得到flag。

 paint
通过分析图片的水印,LSB均没有发现。

我们使用010Editor打开发现有一段很奇怪的很长的16进制(应该是关键)

 

ScreenShot_2025-11-28_062531_367

 对16进制转为字符。发现字符为Base64,再通过Base64解码得到坐标。

ScreenShot_2025-11-28_062848_561

通过随波逐流工具将坐标转为二维码,在通过扫码得到flag。

http://www.jsqmd.com/news/53414/

相关文章:

  • 小样本语言理解任务的新突破
  • 2025-11-28 GitHub 热点项目精选
  • 增强AI股票预测分析报告 - 2025年11月28日
  • 高性能AI股票预测分析报告 - 2025年11月28日
  • AI股票预测分析报告 - 2025年11月28日
  • AI:网络安全的新防线与潜在威胁
  • 2025年下半年坑道钻机品牌哪家好:前十名解析
  • 2025年下半年岩心钻机品牌哪家好综合评测
  • 2025年下半年探水钻机品牌综合评估与选购指南
  • 2025年下半年探水钻机品牌综合推荐指南:十大优质供应商深度解析
  • 2025年下半年履带钻机品牌综合推荐指南:十大优质供应商盘点
  • IROS 2025 Oral | RAG-6Dpose:三大创新模块,利用 CAD 作为知识库进行检索增强 6D 姿态估计 - MKT
  • 告别深度传感器!慕尼黑工业大学提出DropD-SLAM:仅用单目RGB即可实现RGB-D级的SLAM精度-- 有用 - MKT
  • DynamicGSG :一种利用动态高斯场景图,实现机器人环境自适应的方法 - MKT
  • 高斯重定位 - MKT
  • 北大高斯语义建图 - MKT
  • 水产养殖设备厂家直销哪家好,杭州奥流科技有限公司权威推荐
  • 2025杭州代办大额核定公司推荐:专业杭州税务筹划公司优选
  • 2025杭州股权设计服务机构精选:企业股权规划专业伙伴合集
  • 2025杭州电商税合规服务公司+杭州税审公司哪家好权威推荐
  • 2025增氧机生产厂家哪家好,增氧机生产厂家权威榜单
  • 套丝机厂家推荐,2025套丝机厂家实力榜单
  • 2025高性价比管理咨询公司哪家好+企业咨询培训公司推荐清单
  • 2025国内战略咨询公司哪家好?实力品牌咨询公司推荐
  • 2025营销咨询公司有哪些:营销咨询公司哪家好大盘点
  • 关于k8s调度、安全、监控的进阶操作
  • 短信发送-阿里云
  • Codeforces Round 1051 (Div. 2) 补题记录
  • 常用 trick 记录
  • Motia:未来平台