Digital China WriteUP
数字中国杯 WriteUP
1 溯源与取证 任务1
解题步骤:
首先下载附件,发现里面是一个img文件
使用rstudio打开后恢复文件内容
打开重要文件.docx,发现b1e9517338f261396511359bce56bf58
答案:
b1e9517338f261396511359bce56bf58
2 数据泄露与社会工程 任务1
查找某滴泄露的行程数据
找到138****9377 符合题目
通过某德泄露的地图数据
找到华润国际 E 区是家的位置
{“name”: “ 华润国际 E 区 “, “latitude”: 14.445597, “longitude”: 50.839517}
通过分析
{“name”: “闵行区星辰信息技术园”, “latitude”: 14.4472015, “longitude”: 51.02654}
找到闵行区星辰信息技术园是公司位置
2 数据泄露与社会工程 任务2
解题步骤:
import os
def search_files(directory, keyword, output_path):
\# 创建结果文件(覆盖模式)
with open(output_path, 'w', encoding='utf-8') as result_file:
\# 遍历目录
for filename in os.listdir(directory):
file_path = os.path.join(directory, filename)
if not os.path.isfile(file_path):
continue
try:
\# 尝试UTF-8解码
with open(file_path, 'r', encoding='utf-8') as f:
for line_num, line in enumerate(f, 1):
if keyword in line:
entry = f"文件:{filename} 第{line_num}行\n{line.strip()}\n{'━'*50}\n"
print(entry.strip()) # 控制台输出
result_file.write(entry) # 文件写入
except UnicodeDecodeError:
try:
\# 尝试GBK解码
with open(file_path, 'r', encoding='gbk') as f:
for line_num, line in enumerate(f, 1):
if keyword in line:
entry = f"文件:{filename} 第{line_num}行\n{line.strip()}\n{'━'*50}\n"
print(entry.strip())
result_file.write(entry)
except Exception as e:
print(f"解码失败:{filename} - {str(e)}")
except Exception as e:
print(f"处理错误:{filename} - {str(e)}")
if __name__ == "__main__":
target_dir = r"D:\\CTF\\Game_on_time\\digital_china\\misc\\10.数据泄露与社会工程\\附件\\某通泄露的快递单数据"
output_file = r"D:\\CTF\\Game_on_time\\digital_china\\misc\\10.数据泄露与社会工程\\附件\\搜索结果.txt"
if os.path.exists(target_dir):
search_files(target_dir, "张**", output_file)
print(f"\n 搜索结果已保存至:{output_file}")
else:
print(f"目录不存在:{target_dir}")
print("请检查路径是否正确(注意大小写和特殊字符)")
在这里搜索完成后找到公司
对应爬取的工商登记数据
import os
import glob
import openpyxl
def search_in_excel(file_path, keyword):
"""
在指定的 Excel 文件中搜索关键字
:param file_path: Excel 文件路径
:param keyword: 要搜索的关键字
:return: 搜索到的结果列表,每个元素包含工作表名称、单元格坐标和单元格内容
"""
results = []
try:
workbook = openpyxl.load_workbook(file_path, data_only=True)
except Exception as e:
print(f" 加载文件 {file_path} 出错 : {e}")
return results
\# 遍历每个工作表
for sheet_name in workbook.sheetnames:
ws = workbook[sheet_name]
\# 遍历所有的行, iter_rows() 返回的是单元格对象,可以指定 values_only=True 得到值
for row in ws.iter_rows():
for cell in row:
cell_value = cell.value
if cell_value is not None:
\# 转换为字符串后不区分大小写搜索
if keyword.lower() in str(cell_value).lower():
results.append({
"sheet": sheet_name,
"cell": cell.coordinate,
"content": cell_value
})
return results
def main():
\# Excel 文件所在的目录(可以根据情况修改路径)
folder_path = "D:\\CTF\\Game_on_time\\digital_china\\misc\\10. 数据泄露与社会工程 \\ 附件 \\ 爬取的工商登记数据 "
\# 搜索关键字,可以修改为你需要的关键字
keyword = " 闵行区星辰信息技术园 "
\# 构造通配符(这里以 .xlsx 文件为例)
file_pattern = os.path.join(folder_path, "*.xlsx")
files = glob.glob(file_pattern)
if not files:
print(" 在指定目录中没有找到 Excel 文件 !")
return
for file_path in files:
print(f"\n 正在搜索文件 : {file_path}")
results = search_in_excel(file_path, keyword)
if results:
print(f" 在文件 {os.path.basename(file_path)} 中找到关键字 '{keyword}' 的位置如下 :")
for res in results:
print(f" 工作表 : {res['sheet']} ,单元格 : {res['cell']} ,内容 : {res['content']}")
else:
print(f" 未在文件 {os.path.basename(file_path)} 中找到关键字 '{keyword}' 。 ")
if __name__ == "__main__":
main()
找到公司名称
答案:
江苏博林科技有限公司
4 数据跨境 任务2
解题步骤:
首先使用wireshark读取流量包
然后导出FTP-DATA
发现一堆文件
使用工具查看文件后发现零宽字符隐写
使用零宽字符隐写解密工具解密即可
答案:
id:09324810381_time:20250318135114
4 数据跨境 任务3
Wireshark找到音频,根据语音找到对应的地点拼写
答案:
Jiangsugongjiangxueyuanjunlihuayu
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 QingChenyou | Luda' Blog!