0x01 api接口安全分析1
题目描述:
版本过低会加剧数据安全的风险,请问该组件对应的服务器端程序的版本是什么?版本信息的格式
基本为:a.b.c
接着打开比赛环境,尝试获取信息。
服务器端版本:
0x02 api接口安全分析2
题目描述:
问题二:重要数据在传输的过程中进行了加密,请问加密密钥是什么?
0x03 api接口安全分析3
题目描述:
问题三:不安全的API协议导致了用户身份证号的泄漏,请问张翼德(用户名为zhangyide)的身
份证号码是什么
然后尝试翻阅附件,发现解密的iv,先base64解密,然后aes
0x04 数据勒索分析1
题目描述:
问题一:接收敏感数据的设备的IPv4地址是什么?
直接IDA打开恶意exe,F12可以在字符串中看到192.168.5.104这个ip,或者直接扔微步沙箱也可以看到
0x05 数据勒索分析2
题目描述:
问题二:林秀梅(邮箱:mzheng@example.net)的身份证号是什么?
直接在流量包中搜索mzheng@example.net这个邮箱
0x06 数据勒索分析3
题目描述:
问题三:杨玲(邮箱:zengyan@example.com)的身份证号是什么?
使用恶意软件对Iv.txt.encrypt再加密
only_encrypt_release.exe en lv.txt.encrypt
生成lv.txt.encrypt.encrypt文件,打开就是泄露信息,搜索zengyan@example.com
0x07 半结构化数据识别与分析
题目描述:
题目描述:您是一名运营商下属的数据安全分析师,专注于大流量分析和数据泄露防护。您的研究目标
是通过汇总与分析已被攻击且已造成信息泄露的各大企业HTTP流量,揭示攻击者的画像,并统计汇总泄
露的敏感信息。通过对攻击行为的深入分析,您希望能够为网络安全防护提供数据支持和策略建议。附
件提供了已汇总的各个地方已被攻击且已造成数据泄露的接口访问HTTP流量,要求您对作为半结构化数
据HTTP流量进行数据格式化,并根据题目提取关键信息,作为flag提交
问题一:请你根据附件中的流量数据进行统计汇总,提取出现攻击次数最多的useragent。在提取
出useragent后,使用MD5算法对其进行加密,并将加密后的32位十六进制字符串作为flag进行
提交。
0x08 口令画像分析1
题目描述:
请根据提供的《分析规则》文档,对当前附件中的数据进行统计,以确定不同密码等级(1至4级)
的记录数量。统计完成后,将各等级的记录数量按从小到大的顺序排列,并用逗号分割形成一串明
文数字。随后,使用MD5算法对这串明文进行加密,得到一个32位的十六进制字符串。
# -*- coding: gb2312 -*-
import re
def password_level(password):
# 判断密码是否仅由数字组成
if re.match(r'^([0-9]+|[a-z]+)$', password):
return 1
# 判断密码是否由小写字母和数字组成
if re.match(r'^[a-z0-9]+$', password):
return 2
# 判断密码是否包含大写字母、小写字母和数字
if re.match(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]+$', password):
return 3
# 判断密码是否包含大写字母、小写字母、数字和特殊字符
if re.match(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z0-9\s])[a-zA-Z\d\W]+$', password):
return 4
return 0
def count_password_levels_from_file(filename):
level_counts = {1: 0, 2: 0, 3: 0, 4: 0}
with open(filename, 'r') as file:
for line in file:
password = line.strip()
level = password_level(password)
level_counts[level] += 1
return level_counts
# 测试
filename = r"C:\Users\Drak\Desktop\password.txt" # 文件路径
result = count_password_levels_from_file(filename)
print("密码等级统计:", result)
2493,4980,5052,7475
0x09 口令画像分析2
题目分析:
问题二:请再次依据《分析规则》文档,统计当前附件数据表中密码等级为4,同时满足出生日期
为2002年,星座为双子座,且性别为女性的记录数量。完成统计后,使用MD5算法对记录数量进
行加密,得到一个32位的十六进制字符串。
# -*- coding: gb2312 -*-
import openpyxl
import re
def check_password_complexity(password):
# 正则表达式匹配包含大小写字母、数字和至少一个特殊字符的字符串
return bool(re.match("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9]).+$", password))
def is_female(id_number):
# 解析出生日期
birth_date = id_number[6:14]
# 解析出生日期的年份
year = int(birth_date[:4])
# 解析出生日期的月份
month = int(birth_date[4:6])
# 解析出生日期的日期
day = int(birth_date[6:8])
sex = int(id_number[16:17])
# 检查年份是否为2002年,月份和日期是否在双子座的日期范围内
if year == 2002 and ((month == 5 and day >= 21) or (month == 6 and day <= 21)) and sex%2==0:
return True
else:
return False
def main():
filename = r'C:\Users\Drak\Desktop\user.xlsx'
wb = openpyxl.load_workbook(filename)
sheet = wb.active
female_twins = []
for row in sheet.iter_rows(min_row=2, values_only=True): # 从第二行开始遍历
id_number = row[3] # 假设身份证号在D列
password = row[2] # 假设密码在C列
if is_female(id_number) and check_password_complexity(password):
female_twins.append(row)
# 打印满足条件的行
for row in female_twins:
print(row)
print(len(female_twins))
if __name__ == "__main__":
main()
flag就是129的md5的值
0x10数据安全1
题目描述:
某公司开发了一套自己研发的加密算法对公司内部数据进行加密,现需要数据安全专家对算法进行
安全性测试,以防止攻击者通过加密后的结果获取到明文。你能根据输出的结果,得到输出的明文
吗
这个直接搜索到了原题:https://blog.csdn.net/2202_75413341/article/details/134585199
链接中的脚本稍微修改一下就可以了
关键部分: