首页 > 其他分享 >2024羊城杯hiden和数据安全2解

2024羊城杯hiden和数据安全2解

时间:2024-08-28 18:51:43浏览次数:12  
标签:文件 字节 hiden 2024 数据安全 wav line txt data

 Misc - hiden

 下载附件得到



内容如下 

音频没看到有明显的摩斯密码,再去研究一下txt


txt内容为rot加密

ROT47解码:

得到一段标准代码

凯撒解密,偏移量是13(或者直接rot13)


代码意思如下:

1、打开名为flag.txt的文件并以二进制模式读取其内容到变量txt_data,获取txt_data的长度,并将其转换为3字节的字节串,使用小端序(little endian),然后将其添加到txt_data的开头。

2、使用wave模块打开名为test.wav的WAV文件,通过getparams()方法获取WAV文件的参数(如声道数、采样宽度等)并存储在attrib变量中,将WAV文件的所有帧读取到一个可变的字节数组wav_data中。

3、遍历txt_data中的每个字节,每个字节被插入到wav_data的对应位置,具体来说是每个原始字节的第四个位置(即索引为index * 4)。

4、创建一个新的WAV文件hiden.wav,设置新WAV文件的参数与原WAV文件相同,写入修改后的wav_data到新文件中。

接下来要做的就是反推出flag.txt,代码如下:


import wave

# 打开含有隐藏数据的Wave文件
with wave.open("hiden.wav", "rb") as wf:
    # 获取音频文件的参数
    params = wf.getparams()
    # 读取音频文件的所有帧数据
    wav_data = bytearray(wf.readframes(-1))

# 初始化一个空字节列表来存储提取出的文本数据
extracted_data = []

# 由于原始代码中每四个字节的第一个字节被用于存储文本文件的一个字节
# 我们只需提取这些字节即可
for index in range(0, len(wav_data), 4):
    extracted_data.append(wav_data[index])

# 将提取出的字节流转换为字节对象
txt_data = bytes(extracted_data)

# 提取文件长度
file_len = int.from_bytes(txt_data[:3], byteorder='little')

# 去除文件长度标识符
txt_data = txt_data[3:]

# 根据文件长度截断数据
txt_data = txt_data[:file_len]

# 将提取出的数据写入新的文本文件
with open("recovered_flag.txt", "wb") as f:
    f.write(txt_data)

print("Data extraction completed. The recovered text file is saved as 'recovered_flag.txt'.")

DASCTF{12jkl-456m78-90n1234}



数据安全 2

下载附件得到



可以理解到,会有错误信息,需要调整信息,然后就是构造脚本


下面是一个大佬写的脚本,我的过于麻烦,需要重复调整

import re
import json
import string


DEBUG = False

PHONE_PREFIX = [
    734, 735, 736, 737, 738, 739, 747, 748, 750, 751, 752, 757, 758, 759, 772,
    778, 782, 783, 784, 787, 788, 795, 798, 730, 731, 732, 740, 745, 746, 755,
    756, 766, 767, 771, 775, 776, 785, 786, 796, 733, 749, 753, 773, 774, 777,
    780, 781, 789, 790, 791, 793, 799
]
WEIGHTS = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]


fout = open('result.csv', 'w', encoding='utf-8')
fout.write('username,name,sex,birth,idcard,phone\n')

def wrong(line, reason):
    if DEBUG:
        fout.write(reason + ',')
    line = [f'"{i}"' if ',' in i else i for i in line]
    fout.write(','.join(line) + '\n')


with open('data.pcapng', 'r', encoding='latin1') as f:
    data = f.read()

strings = re.findall(r'\{"username": ".*", "name": ".*", "sex": ".*", "birth": ".*", "idcard": ".*", "phone": "\d*"\}', data)
print(len(strings))  # 8000

for item in strings:
    line = json.loads(item).values()
    (username, name, sex, birth, idcard, phone) = line
    
    if any(i not in string.ascii_lowercase + string.ascii_uppercase + string.digits for i in username):
        wrong(line, '用户名不全为数字字母')
    elif not all('\u4e00' <= char <= '\u9fff' for char in name):
        wrong(line, '姓名不全为汉字')
    elif len(idcard) != 18 or not all(i in string.digits for i in idcard[:17]):
        wrong(line, '身份证号不为18位数字')
    elif sex != ('男' if int(idcard[16]) % 2 == 1 else '女'):
        wrong(line, '性别与身份证号不符')
    elif birth != idcard[6:14]:
        wrong(line, '生日与身份证号不符')
    elif len(phone) != 11 \
        or not all(i in string.digits for i in phone) \
        or int(phone[:3]) not in PHONE_PREFIX:
            wrong(line, '手机号不为符合前缀的11位数字')
    elif '10X98765432'[sum(int(idcard[i]) * WEIGHTS[i] for i in range(17)) % 11] != idcard[17]:
        wrong(line, '身份证号校验位错误')

fout.close()

 大佬wp:羊城杯 2024 初赛部分题目 Writeup by LilRan of 四象限守护者 (xinshi.fun)

标签:文件,字节,hiden,2024,数据安全,wav,line,txt,data
From: https://blog.csdn.net/weixin_73049256/article/details/141642610

相关文章

  • 【专题】2024年中国AI人工智能基础数据服务研究报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=37516随着人工智能技术的迅猛发展,AI基础数据服务行业迎来了前所未有的发展机遇。报告合集显示,2023年中国AI基础数据服务市场规模达到45亿元,且未来五年复合增长率有望达到30.4%。多模态大模型、长文本处理能力提升以及大模型小型化技术成为A......
  • 【办公类-54-02】20240827营养员《每周人数统计表》(双休国定假涂成灰色)
    背景需求:学校食堂的营养员发消息,让我再做一份“总园的每周人数统计”这是我去年2023年9月份做的,用word制作一页模版,营养员批量打印N张,用了2个学期。用途就是每个班级来园人数写在空格里,便于营养员统计当天要陪多少菜,每个班级根据人数,称重相应量的饭菜汤。但是时间久远,......
  • 2024年超好用的公司加密软件分享|8款公司防泄密软件推荐
    数据安全已成为企业运营中不可忽视的重要环节。随着数据泄露事件频发,企业急需高效、可靠的加密软件来保护敏感信息。以下是2024年备受推崇的8款公司加密软件,它们以其强大的功能和卓越的性能,为企业数据防泄密提供了坚实的保障。1.安企神它是一款集文档加密、数据防泄漏、......
  • 最新ps2024软件:Photoshop 2024 (Win&Mac)直装版
    Photoshop2024是AdobeSystems发布的最新版图像编辑软件,它继承了Photoshop系列一贯的强大功能和专业特性,并在此基础上进行了多项改进和优化。Photoshop2024作为Adobe的旗舰级图像编辑软件,不仅继承了前代产品的优秀特性,还在功能和性能上进行了显著提升。它凭借强大的图像处......
  • 第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)
    第六届信息与计算机前沿技术国际学术会议(ICFTIC2024)将在中国青岛举行,会期是2024年11月8-10日,为期三天,本次会议是由中国石油大学(华东)主办!大会安排主旨报告,特邀报告,以及数个专题讨论会(形式包括口头报告,海报展示,视频报告,以及在线报告等),将在会上共同探讨"信息与计算机前沿技......
  • 2024 CCF举办关于CSP-J/S的通知
    ​CCF面向社会非专业人士推出CSP非专业级别软件能力认证。非专业级别能力认证CSP-J/S分两个级别,分别为CSP-J(入门级,Junior)和CSP-S(提高级,Senior),均涉及算法和编程。任何人都可以报名参加。一、认证形式:CSP-J/S分第一轮和第二轮两个认证阶段。报名参加第一轮认证成绩优异者进入第二......
  • [2024最新整理]300多个地级市GDP及第一、二、三产业占比数据(1990-2021年)
    文章目录数据下载地址数据指标说明项目备注数据下载地址数据下载地址点击这里下载数据数据指标说明梳理了2021年普通地级市GDP30强,其中有26个城市GDP总量超过了5000亿元,更有6个城市超过了万亿元,分别是苏州、无锡、佛山、泉州、南通、东莞;从省份来看,30强中江苏有......
  • P10785 [NOI2024] 集合
    思路:容易发现,区间\([l,r]\)中\(A\)与\(B\)等价的充分必要条为:两个序列中所有元素对于在区间\([l,r]\)内的出现集合组成的集合相等。这样才可以使得存在一种对应的映射方案使得等价。考虑哈希判定。设\(S_i\)表示\(i\)出现的位置的集合,则设\(\operatorname......
  • 【优技教育】Oracle 19c OCP 082题库(第1题)- 2024年修正版
    考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com/index.php?s=/home/article/detail/id/3385.html第1题:1、Choosetwo.Youexecutethesecommands:CREATETAB......
  • Whole Tomato Visual Assist X 2024 Crack
    WholeTomatoVisualAssistX2024CrackKeyFeaturesofWholeTomatoVisualAssistX:FastNavigation:Swiftlymovebetweenfiles,methods,symbols,andreferenceswithinprojectsandsolutions.CodeInspection&Modernization:Identifyan......