2025数字中国初赛wp

news2025/4/8 6:04:02

一,取证与溯源

镜像文件解压密码:44216bed0e6960fa

1.运维人员误删除了一个重要的word文件,请通过数据恢复手段恢复该文件,文件内容即为答案。

先用R-stuido软件进行数据恢复

得到

打开重要文件.docx全选发现有一条空白的被选中,

为其加上背景颜色就可以看见

2.服务器网站遭到了黑客攻击,但服务器的web日志文件被存放在了加密驱动器中,请解密获得该日志并将黑客ip作为答案提交。

我直接在使用windows的挂载没有成功,使用FTK-image的镜像挂载成功

得到,和前面的对比可以看见,直接挂载是没有重要文件.docx的

way一: 直接用vol,先看版本信息

vol -f F:\取证题20250320\Root\WIN-IRBP5Q8F25I-20250306-172341.raw windows.info

注:这里更换了vol3,之前的版本提取不出来,不知道为什么

扫描.log文件,开始就得到了access.log文件

 vol -f F:\取证题20250320\Root\WIN-IRBP5Q8F25I-20250306-172341.raw windows.filescan | Select-String "log"

将文件导出来,可以看见

vol -f F:\取证题20250320\Root\WIN-IRBP5Q8F25I-20250306-172341.raw windows.dumpfiles --physaddr 0x7c23ba40

way2:使用R-stuido软件扫描后看text文档,然后查看文档的内容,可以在里面找到ngnix的access.log日志,文件内容可以看出来里面有sql攻击的记录。

3.经分析,黑客在攻击中窃取了一些重要信息,请分析web日志,获取黑客窃取的相关信息,并将黑客窃取的所有身份证号按照其姓名拼音首字母升序排序,并计算其32位小写md5作为答案提交(如zhangsan的身份证是110101199001011234,lisi的身份证是110101198505051234,zhangfei的身份证是110101199203031234,则最终顺序为110101198505051234110101199203031234110101199001011234,计算其32小写md5”9ac198054af03107b2452bee3091b9ef”就是答案)

import re
from collections import defaultdict
import hashlib
from pypinyin import pinyin, Style

# 初始化数据结构 - 改为存储完整记录
records = defaultdict(lambda: {'name': '', 'id_card': ''})

# 优化后的正则表达式,同时匹配name和id_card
pattern = r"ascii\(substr\(\(select%20(name|id_card)%20from%20info%20limit%20(\d+),1\),(\d+),1\)\)=(\d+)"

def extract_payload(line):
    """从日志行中提取攻击载荷部分"""
    parts = line.split("\t")
    if len(parts) >= 3 and "/manager/user/?id=" in parts[2]:
        return parts[2]
    return None

# 处理日志文件
with open("sfz.txt") as f:
    for line in f:
        line = line.strip()
        payload = extract_payload(line)
        if payload:
            match = re.search(pattern, payload)
            if match:
                field = match.group(1)
                index = int(match.group(2))
                position = int(match.group(3))
                ascii_val = int(match.group(4))
                
                # 拼接字符到对应位置
                if position > len(records[index][field]):
                    records[index][field] += ' ' * (position - len(records[index][field]) - 1)
                    records[index][field] += chr(ascii_val)
                else:
                    # 如果位置已存在,更新字符(防止重复数据覆盖)
                    if position <= len(records[index][field]):
                        records[index][field] = records[index][field][:position-1] + chr(ascii_val) + records[index][field][position:]
                    else:
                        records[index][field] += chr(ascii_val)

# 过滤有效记录(同时有姓名和18位身份证号)
valid_records = []
for idx, data in records.items():
    name = data['name'].strip()
    id_card = data['id_card'].strip()
    if name and id_card and len(id_card) == 18:
        valid_records.append({'name': name, 'id_card': id_card})

# 按姓名拼音首字母排序
def get_pinyin_initial(name):
    """获取姓名拼音首字母"""
    try:
        initials = pinyin(name, style=Style.FIRST_LETTER)
        return ''.join([i[0].lower() for i in initials])
    except:
        return 'z'  # 拼音转换失败时放到最后

valid_records.sort(key=lambda x: get_pinyin_initial(x['name']))

# 构建结果字符串
result_str = ""
for record in valid_records:
    result_str += f"{record['id_card']}"

print(result_str)

# 计算MD5
md5_hash = hashlib.md5(result_str.strip().encode('utf-8')).hexdigest()

# 输出结果
print("=== 按姓名拼音排序的结果 ===")
for record in valid_records:
    print(f"{record['name']}: {record['id_card']}")

print("\n=== 最终MD5哈希值 ===")
print(md5_hash)

# 将结果保存到文件
with open("sorted_results.txt", "w", encoding='utf-8') as f:
    f.write("姓名,身份证号\n")
    f.write(result_str)
    f.write(f"\nMD5: {md5_hash}")

运行得到结果为

=== 按姓名拼音排序的结果 ===
ChenFang: 500101200012121234
GaoFei: 340104197612121234
GuoYong: 530102199810101234
HeJing: 610112200109091234
HuangLei: 230107196504041234
LiangJun: 120105197411111234
LiNa: 310115198502021234
LinYan: 370202199404041234
LiuTao: 330106197708081234
LuoMin: 450305198303031234
MaChao: 220203198808081234
SongJia: 350203200202021234
SunHao: 130104198707071234
WangWei: 110101199001011234
XieFang: 430104199707071234
XuLi: 320508200005051234
YangXue: 510104199311111234
ZhangQiang: 440305199503031234
ZhaoGang: 420103199912121234
ZhouMin: 210202198609091234
ZhuLin: 410105199206061234

=== 最终MD5哈希值 ===
060b534ffb5c4a487be36cca98165e73

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2330251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c#和c++脚本解释器科学运算

说明&#xff1a; 我希望用c#和c写一个脚本解释器&#xff0c;用于科学运算 效果图&#xff1a; step1: c# C:\Users\wangrusheng\RiderProjects\WinFormsApp3\WinFormsApp3\Form1.cs using System; using System.Collections.Generic; using System.Data; using System.Tex…

青蛙吃虫--dp

1.dp数组有关元素--路长和次数 2.递推公式 3.遍历顺序--最终影响的是路长&#xff0c;在外面 其次次数遍历&#xff0c;即这次路长所有情况都更新 最后&#xff0c;遍历次数自然就要遍历跳长 4.max时时更新 dp版本 #include<bits/stdc.h> using namespace std; #def…

LINUX 5 cat du head tail wc 计算机拓扑结构 计算机网络 服务器 计算机硬件

计算机网络 计算机拓扑结构 计算机按性能指标分&#xff1a;巨型机、大型机、小型机、微型机。大型机、小型机安全稳定&#xff0c;小型机用于邮件服务器 Unix系统。按用途分&#xff1a;专用机、通用机 计算机网络&#xff1a;局域网‘、广域网 通信协议’ 计算机终端、客户端…

ModuleNotFoundError: No module named ‘pandas‘

在使用Python绘制散点图表的时候&#xff0c;运行程序报错&#xff0c;如图&#xff1a; 报错显示Python 环境中可能没有安装 pandas 库&#xff0c;执行pip list命令查看&#xff0c;果然没有安装pandas 库&#xff0c;如图&#xff1a; 执行命令&#xff1a;python -m pip in…

【教程】MacBook 安装 VSCode 并连接远程服务器

目录 需求步骤问题处理 需求 在 Mac 上安装 VSCode&#xff0c;并连接跳板机和服务器。 步骤 Step1&#xff1a;从VSCode官网&#xff08;https://code.visualstudio.com/download&#xff09;下载安装包&#xff1a; Step2&#xff1a;下载完成之后&#xff0c;直接双击就能…

Unet网络的Pytorch实现和matlab实现

文章目录 一、Unet网络简介1.1 输入图像1.2 编码器部分&#xff08;Contracting Path&#xff09;1.3 解码器部分&#xff08;Expanding Path&#xff09;1.4 最后一层&#xff08;输出&#xff09;1.5 跳跃连接&#xff08;Skip Connections&#xff09; 二、Unet网络的Pytorc…

【合新通信】相控阵雷达RFoF方案的应用

一、相控阵雷达为何需要RFoF&#xff1f; 核心需求驱动 分布式部署&#xff1a;相控阵雷达&#xff08;AESA/PESA&#xff09;的T/R模块需分散布局&#xff08;如舰载雷达阵面、卫星载荷&#xff09;&#xff0c;传统同轴电缆导致重量和损耗剧增。高频段挑战&#xff1a;X/Ku/…

原理图输出网表及调入

一、输出网表操作步骤 &#xff08;1&#xff09;选中.dsn文件&#xff0c;选者N或进入tools下拉列表选择Creat Netlists &#xff08;2&#xff09;导出网表后的文件 二、网表的导入 &#xff08;1&#xff09;执行菜单命令“File-Import-Logic/netlist”&#xff0c;将原理…

TDengine JAVA 语言连接器

简介 本节简介 TDengine 最重要且使用最多的连接器, 本节内容是以教科书式方式列出对外提供的接口及功能及使用过程中要注意的技术细节&#xff0c;大家可以收藏起来做为今后开发 TDengine 的参考资料。 taos-jdbcdriver 是 TDengine 的官方 Java 语言连接器&#xff0c;Java…

【NLP 55、实践 ⑬ LoRA完成NER任务】

目录 一、数据文件 二、模型配置文件 config.py 三、数据加载文件 loader.py 1.导入文件和类的定义 2.初始化 3.数据加载方法 代码运行流程 4.文本编码 / 解码方法    ① encode_sentence()&#xff1a; ② decode()&#xff1a; 代码运行流程 ③ padding()&#xff1a; 代码…

【蓝桥杯】Python大学A组第十五届省赛

1.填空题 1.1.拼正方形 问题描述 小蓝正在玩拼图游戏,他有个的方块和个的方块,他需要从中挑出一些来拼出一个正方形。 比如用个和个的方块可以拼出一个的正方形;用个的方块可以拼出一个的正方形。 请问小蓝能拼成的最大的正方形的边长为多少。 import math # 2*2的个数 a =…

小球反弹(蓝桥杯C语言)

有一长方形&#xff0c;长为 343720343720 单位长度&#xff0c;宽为 233333233333 单位长度。在其内部左上角顶点有一小球 (无视其体积)&#xff0c;其初速度如图所示且保持运动速率不变&#xff0c;分解到长宽两个方向上的速率之比为 dx:dy15:17dx:dy15:17。小球碰到长方形的…

HarmonyOS-ArkUI Ability进阶系列-UIAbility与各类Context

UIAbility及相关类关系 一个模块编译的时候会出一个HAP包&#xff0c; 每一个HAP包在运行时都对应一个AbilityStage。 AbilityStage持有一个AbilityStageContext一个APP&#xff0c; 有时候会有很多个HAP包&#xff0c; 至少一个。 一个APP运行时&#xff0c;对应的是我们的App…

剑指Offer(数据结构与算法面试题精讲)C++版——day4

剑指Offer&#xff08;数据结构与算法面试题精讲&#xff09;C版——day4 题目一&#xff1a;和为k的子数组题目二&#xff1a;0和1个数相同的子数组题目三&#xff1a;左右两边子数组的和相等 题目一&#xff1a;和为k的子数组 结合前面着重阐述的双指针法这一经典的算法技巧&…

WebRTC技术简介及应用场景

写在前面 本文是参考稀土掘金的文章,整理得出,版权归原作者所有!参考链接请点击跳转 WebRTC&#xff08;Web Real-Time Communication&#xff09; 是一项开源技术&#xff0c;允许浏览器和移动应用直接进行实时音视频通信和数据传输&#xff0c;无需安装插件或第三方软件。它…

介绍几种创意登录页(含完整源码)

今天为大家收集了几种不同风格的登录页&#xff0c;搭配动态渐变背景&#xff0c;效果绝对惊艳&#xff01; CSS3实现动态渐变玻璃拟态登录页 一、开篇语 纯CSS实现当下最火的玻璃拟态(Morphism)风格登录页&#xff0c;搭配动态渐变背景&#xff0c;效果绝对惊艳&#xff01; …

Uni-app入门到精通:uni-app的基础组件

1、view view是容器组件&#xff0c;类似于HTML中的<div></div>标签&#xff0c;用于包裹各种元素内容&#xff0c;是页面布局常用的组件。view组件的属性如下 属性类型默认值说明hover-classStringnone指定按下去的样式类。当hover-class"none"时&…

大文件上传源码,支持单个大文件与多个大文件

大文件上传源码&#xff0c;支持单个大文件与多个大文件 Ⅰ 思路Ⅱ 具体代码前端--单个大文件前端--多个大文件前端接口后端 Ⅰ 思路 具体思路请参考我之前的文章&#xff0c;这里分享的是上传流程与源码 https://blog.csdn.net/sugerfle/article/details/130829022 Ⅱ 具体代码…

C语言--插入排序

插入排序&#xff1a;简单而高效的排序算法 在计算机科学中&#xff0c;排序是一种常见的操作&#xff0c;用于将一组数据按照特定的顺序排列。插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理类似于我们整理扑克牌的过程。…

L2-024 部落 #GPLT,并查集 C++

文章目录 题目解读输入格式输出格式 思路Ac Code参考 题目解读 我们认为朋友的朋友都算在一个部落里&#xff0c;于是要请你统计一下&#xff0c;在一个给定社区中&#xff0c;到底有多少个互不相交的部落&#xff1f;并且检查任意两个人是否属于同一个部落。 输入格式 第一…