2025数证杯初赛
服务器取证
先把检材仿真,起来,由于master和node的节点已经写好了,于是不尝试修改这几个机子的ip,直接修改nat的网段为50

可以正常连接,也可以ping通root、

1. node1节点的磁盘设备SHA256值前六位是?(字母全大写,答案格式:AAAAAA)
FC9A34
node1节点是第二个镜像,xwf计算

2. 集群配置了多少个node节点?(答案格式:1)
2
kubectl get nodes

3.嫌疑人于什么时间修改master节点的root密码?(使用双位数格式,答案格式:00:00:00)
09:35:59
.bash_history里有和修改密码相关的,但是没有时间

于是去日志中看看

得到时间
4. Docker的安装日期是?(使用双位数格式,答案格式:01月01日)
04月08日
centos的系统,在history中也能看到是用yum下载的,

直接看yum的历史记录

5. Docker通过配置守护进程以使用全局代理,该代理地址的端口是?(答案格式:1)
4780
查看守护进程的配置文件

6. 发卡网站使用的Mysql数据库对外访问端口是?(答案格式:1)
30627
kubectl get svc

K8S集群重组&网站重组
需要重构k8s集群,由上题图找到k8s的面板端口,https访问

用命令创建一个账号tokenkubectl create token dashboard-admin --namespace kube-system

登录上去

面板全红,一点点修
首先在设置中把所有的命名空间都加上


发现是83的镜像挂载问题,无法连接到共享服务

通过命令检测发现是网络问题

去83上看看怎么回事

服务正常,关闭防火墙试试,关上后正常了

但是captcha-bot还是起不来,看日志发现是无法连接到数据库

这个端口和之前看service的端口一致,但是没有启动
在root目录下能找到很多配置文件,

用apply命令添加一下mysql80-pvc.yaml(因为83那台机器里是mysql80),再添加mysql-d,mysql-c


然后重启看情况,最终还是报错,显示连接超时

先重构一下发卡网站,有pvc,但是在Deployments中未发现发卡网站,并且pvc对应的目录下边没有网址文件,可能已经删除


但是通过查看83的命令历史记录

将 dujiaoka/目录及其所有内容打包成一个名为 dujiaoka.tar
那我们还原到原位置就好,root目录下,发现dujiaoka.tar备份,还原到对应的目录

apply配置一下

grep -r dujiaoka看一下,发现nginx的配置文件中也有这个网址的一些东西

那也需要apply一下php-nginx的

但是我发现我的node1中有配置文件需要的 webdevops/php-nginx:7.4 镜像,所以我apply后,网站就能正常进入了


7. 发卡网站部署使用的镜像名称是?(答案格式:root/root)
webdevops/php-nginx

8. 当前Telegram群管机器人使用的容器ID的前六位是?(答案格式:123abc)
8fadf5
由于重构仿真后集群会重新拉起新的容器,所以借助静态分析。拿到上一次运行的容器ID(也可以在overlay2里直接搜)


9. 发卡网站使用的缓存数据库是?(答案格式:mysql)
有redis的pods并且网站env配置中发现缓存配置


10. 集群中配置的发卡网站代码运行所在的物理目录是?(答案格式:/root/root)
/data/k8s_data/default/dujiaoka

11. Telegram群管机器人配置的API代理域名是?(答案格式:www.xxx.com)
kk.xilika.cc

12. 嫌疑人在Telegram上创建的群名称是?(答案格式:比武群)
西门庆交流群
连接上mysql数据库看看


13. 统计嫌疑人在Telegram上创建的群中2025年6月之后成功入群的人数为?(答案格式:1)
2422
分析数据库字段和数据,status为2时,没有success_time,所以成功入群是1
SELECT count(*) FROM captchabot.user_captcha_record AS ucr WHERE captcha_status = 1 AND captcha_success_time >= '2025-06-01 00:00:00';

14.据嫌疑人交代曾在发卡网上删除过一条订单数据,请找出该删除订单的订单号是?(答案格式:请按实际值填写)
4V8XNK8Q02MD5D2R
dujiaoka的表中没有删除的订单

去83的mysql80文件夹下边看看,开启了binlog

版本是8.0.43

用对应版本的mysqlbinlog恢复数据,第二个字段是订单号
mysqlbinlog --no-defaults -vv --base64-output=DECODE-ROWS F:\BaiduNetdiskDownload\数证杯\binlog.000002 > F:\BaiduNetdiskDownload\数证杯\demo.sql

15. 发卡网站上2025年6月之后订单交易成功的总金额是?忽略被删除的数据(答案格式:1)
295202.00
select sum(actual_price) from orders where status = 4 and updated_at >= "2025-06-01 00:00:00"

16. 发卡网站的后台访问路径是?(答案格式:/root)
/admin
查看网站根目录下的.env文件

17.计算出用户密码算法中Salt的值,并进行Base64编码,结果是?(答案格式:请按实际值填写)
lAID2ktDeRlGbcg=
在数据库中,找到加密后的password

丢给hashcat,看看

是bcrypt,搜一下相关文件

查看/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php 文件


18. 发卡网站配置的邮件发送人地址是?(答案格式:abc@abc.com)
根据上题的代码文件,进行绕密修改

修改为return true或者return !parent::check($value, $hashedValue, $options);
即可实现绕密登录

19. 当前发卡网站首页仪表盘中显示的发卡网站版本为?(答案格式:1.1.1)
2.0.5

20. 当前发卡网站中绑定的订单推送Telegram用户id为(答案格式:请按实际值填写)
6213151597

流量包分析
21. 黑客攻击的目标路由器SSID为 (答案格式:请按实际值填写)
laozhaoWIFI
根据第二题可以知道黑客成功捕获了WPA的协议包,因此可以过滤对应的协议EAPOL,过滤之后发现对应的wifi的mac地址,同时可以得知进行了四组有效握手
根据mac进行过滤,过滤出源地址或目的地址是该Mac的内容,在过滤出的内容中搜索SSID,可以得到对应的值为“laozhaoWIFI”


22.黑客成功捕获了WIFI中WPA协议握手包,其中有效握手包组数为(完整握手为一组)(答案格式:1)
4
有上题图可知
23.黑客爆破得出的WiFi密码为(提示:密码由小写英文字母和数字组成)(答案格式:abcd1234)
password1110
结合后面的题目,已知黑客后面获取到了路由器的管理后台,可以猜测管理后台中存在wifi的密码,我们直接追踪HTTP流量进行查看

这两个爆破包,寻找对应的响应包,第一个post请求响应为403,且其响应中有Invalid username and/or password! Please try again.第二个为302,没有Invalid username and/or password! Please try again.,所以后台的密码为password

在之后的流量包中发现wifi的密码password1110

24. 黑客成功连接Wifi后,发现路由器操作系统为?(答案格式:请按实际值填写)
ImmortalWrt
将上一题爆破成功的响应包保存下来打开发现操作系统

25. 黑客对路由器后台进行爆破攻击,该路由器后台密码为(答案格式:请按实际值填写)
password
有23题分析可得后台密码为password
26. 黑客通过修改路由器设置,将被劫持的域名为(答案格式:www.xxx.com)
过滤dns之后发现黑客查询了很多的域名,如果说他劫持了一个域名,那么查询的时候应该是,响应域名存在,并且响应的域名IP为内网IP,直接过滤dns协议并且响应成功的内容

27. 黑客在路由器管理后台发现FTP服务配置,FTP登录密码为?(答案格式:请按实际值填写)
mast

28. 黑客通过FTP上传了一个压缩包文件,该文件内容为(答案格式:请按实际值填写)
code:123456789
上传了两个文件

一个flag.zip,一个zhaohong,导出flag.zip,有密码

passwarekit跑一下


29. 黑客通过路由器执行shell脚本,反弹shell的监听端口为(答案格式:1)
4445
在tcp流0中发现反弹shell的命令

30. 黑客通过反弹shell成功控制目标路由器后,总共执行了多少条命令(答案格式:1)
4
筛选对应端口的流量tcp.dstport == 4445


一共四个命令
APK程序分析
31.apk 的版本名称为? (答案格式:1.1.1)
3.0.12

32.在该APP中,调用了哪个System的方法用于获取本地系统的时间戳?(答案格式:MainActivity)
currentTimeMillis
由上图知apk被360加固了,使用在线平台56.al脱一下

33.apk 运行后 getVer() 的返回值(答案格式:1.0.0)
4.56.23
搜索getVer()

第一个定义了这个方法,第二个应该是调用了这个,对它进行 hook
1 | Java.perform(function(){ |

34.apk运行后需要通过一个http get请求才能打开第二个界面,给出该请求URL? (答案格式:http://www.xxx.com/test?a=1)
定位到调用getVer()的那部分,分析一下上下文逻辑

服务器监听本地 60723 端口, 收到请求后验证, 接着启动 SecondActivity, 也就是下题的第二界面.
hook一下
1 | Java.perform(function(){ |

35 apk 第二界面的 8 位授权码(答案格式:11111111)
84572399

可以根据答案格式写代码爆破一下
1 | public class AuthorizationCodeCracker { |

二进制程序分析
36.安装该程序后,该恶意程序的可执行文件所在的直接父目录名称是什么为?(答案格式:root)
proxy
在虚拟机中下载程序,发现生成的快捷方式没有指向原本的程序,而是指向了/bin/proxy/v2ray.exe,所以恶意程序为v2ray.exe,其直接父目录为proxy

37.解密文件名为RnRGaWxlcy5lZGIiL的文件时所使用的key是什么?(答案格式:请按实际值填写)
1Njc2NTQ2Mzc0NTc
打开v2ray.exe文件后,在main函数中发现

程序把文件内容读取到 Buffer 缓冲区, 然后调用sub_140001BF0函数对其进行操作, 之后还调用了 sub_140001070 函数, 作用未知.
先看sub_140001BF0,根据一些特征确定为RC4加密,

然后使用a1njc2ntq2mzc0n的前16字节做为 key 对初始s表做 KSA,key的值为1Njc2NTQ2Mzc0NTc

38.解密文件RnRGaWxlcy5lZGIiL成功后,请分析并给出解密后的文件的入口点地址?(答案格式:0x180000000)
0x180002730
解密文件



VA = ImageBase + RVA,在本题中,rva为0x00002730,imagebase为0x180000000是,所以VA为0x180002730
39.加密文件名为6c051a72b91a1的文件时所使用的密钥是多少?(答案格式:请按实际值填写)
cgDSb6VOegeF7EuW
执行完加密函数后跳转到了sub_140001070里,在上一个解密函数执行完成之后, 它首先校验解密出的 PE 文件格式, 之后调用函数 sub_140001B20 在其中的导出表里查找函数 SDGHY3a9DK3t14Fg1hSGH56U,转到刚解密出的文件对应的函数中

先获取当前用户的 downloads 文件夹路径, 列出其中的所有文件和子目录
- 如果是文件夹,调用
sub_180001D80(&unk_180022600, path) - 如果是文件,调用
sub_180001E50(path)
题目问的是文件,所以先进入1e50看看
1 | // Hidden C++ exception states: #wind=1 |
函数会为文件创建一个同目录下的临时文件: 原名.1, 然后以 4 KB 为缓冲区逐块读取源文件, 每 16 字节为一个加密单元进行处理, 把处理后的数据写入 .1 文件
在原始程序的目录中,有6c051a72b91a1.1这个文件,我们需要解密
继续分析程序,首先sub_180001000对每一个块进行了初始处理,
1 | __int64 __fastcall sub_180001000(__int64 a1, __int64 a2) |
这个函数构造了一个对象 AES::vftable, 在对象内布置了两组 64 × 4 bytes 的表, 很可能是 AES 加密了
其中传入的 a2 被函数 sub_180001920 调用, 而这个函数是 AES 的密钥拓展函数
1 | __int64 __fastcall sub_180001920(__int64 a1, __int64 a2, _OWORD *a3, int a4) |
这段代码将从 a2 读入 16 字节密钥, 扩展成 11 个轮函数密钥
a2由v18传入,v18=xmmword_180025A80

需要注意大小端序,得到密钥cgDSb6VOegeF7EuW
40.6c051a72b91a1.1文件解密后的md5值后六位是多少?(字母全大写,答案格式:AAAAAA)
FF74E8
同时也能得到iv


但是直接解密没法解密,可能魔改了

用代码解密
1 | import sys |
得到的文件格式是png


FF74E8
计算机取证分析
41.操作系统的Build版本号是?(答案格式:1)
19044
导出注册表所在目录

42. 操作系统设置的账户密码最长存留期为多少天?(答案格式:1)
68
仿真,net accounts

43. 用户2登陆密码NT哈希值后六位是?(字母全大写,答案格式:AAAAAA)
A9C708

44.蓝牙mac地址是多少?(答案格式:AA-AA-AA-AA-AA-AA
9C:B6:D0:04:C9:CC

45. SafeImager的产品序列号后四位是?(字母全大写,答案格式:AAAAAA)
09C4
手动可以去看注册表,自动就看火眼或者超级取证大师的解析结果


46. 123.VHD所处的结束扇区是?(答案格式:1 )
27445255
XWF 中定位到文件, 切换到文件视图, 按下快捷键 Ctrl + End 跳转至文件尾, 再切换回分区视图, 即可看到文件结尾所处的扇区号

47. 用户在BitLocker加密分区最后修改的文件是?(答案格式:abcd.txt)
资料1.txt
在上题的 123.vhd 中可以找到 BitLocker 恢复密钥 625075-617309-532576-720302-040975-309232-451924-426679, 用密钥解锁该分区


48. 用户连接192.168.114.129时用的会话名称是?(答案格式:按照实际情况填写)
连接阿里云
bitlocker解密后,导出xshell的session文件夹C:\Users\Administrator\Documents\NetSarang Computer\8\Xshell1下

49. 用户创建存储虚拟币钱包地址页面的时间是?(使用双位数格式,答案格式:01月01日)
10月07日
桌面上有个软件Anytype

50. 用户的虚拟币钱包地址是?(答案格式:按照实际情况填写)
3HrdpWM8ZrBVw9yu8jx1RoNNK6BZxwsHd9
4次base64解码得到

51. 用户VC加密容器的密码是?(答案格式:按照实际情况填写)
SHUZHENGBEIctzy2025
打开桌面上的Foxmail,有两个重要的邮件
一个是一个软件分卷压缩包,一个是一个图片

直接解压发现

猜测还有其他分卷,遂去寻找


打开联系人文件,可以在文件最后找到白色字体的密码

52. 用户在生活中使用的代号是?(答案格式:按照实际情况填写)
小胖
桌面上的代号.wav用audacity打开

53. 李安东的银行卡归属哪个银行?(答案格式:农业银行)
交通银行
桌面上的公司资料文件夹中有银行卡文件

导出来passwarekit跑一下6位数字

54. 请分析某市10月6日最高气温是?(答案格式:1)
21
导出气温加密的文件

虽然显示第一个文件被加密了,但是还是尝试一下修复伪加密

55. 用户的BitLocker密码是?(答案格式:按照实际情况填写)
SZBJSJTM2025
在用户的下载目录下发现隐写分析工具

尝试解密邮件附件图片

56. 用户办公室的门禁密码是?(答案格式:按照实际情况填写)
**147963258 **
vhd中有一个secretNew文件

尝试用veracrypt和之前的密码挂载

有一个被加密的文件,尝试用软件中的软件解密


57. 用户使用的以D开头的解密程序的MD5值后六位是?(字母全大写,答案格式:AAAAAA)
3A892E

58. 木马程序运行至系统断点前加载了几个动态链接库?(答案格式:1)
5
直接拖进dbg

59. 木马产生的程序名称是什么?(答案格式:abcd.txt)
wins.exe
微步跑一下
60. 木马尝试访问的域名是什么?(答案格式:按照实际情况填写)
edu-image.nosdn.127.net

61.分析计算机内存检材,此内存镜像制作时的系统时间是?(使用双位数格式,答案格式:01月01日)
10月16日

62. 分析计算机内存检材,用户Yiyelin的用户标识后4位是?(答案格式:1111)
1002
由上图
63. 分析计算机内存检材,计算机的CPU型号是什么?(答案格式: i9-1110U)
i7-1165G7
64. 分析计算机内存检材,wps.exe的PID是?(答案格式:1)
5888

65. 分析计算机内存检材,此计算机开机自启动的远控软件名称是?(答案格式:abcd.txt)
SunloginClient.exe

物联网设备取证分析
66. 打印机的主机名称是什么?(答案格式:root)

67. 打印文件存储在哪个目录?(答案格式:/root/root)
在 Linux 中,CUPS(Common Unix Printing System) 是一种通用的类 Unix 打印系统,用于管理打印机、打印任务和打印队列。它是大多数现代 Linux 发行版(如 Ubuntu、Fedora、Debian 等)的默认打印系统。
看root的历史记录发现下载了cups并且修改过其配置文件

去cups-files.conf看看,得到存储文件的目录/var/spool/cups

68. 同一天,打印两份文件的用户是谁?(答案格式:root)
alice
找到打印日志/var/log/cups/page_log1

69. 分析物联网检材,木马运行后,自身产生的进程ID是多少?(答案格式:1)
2177
看一下系统日志/var/log/syslog

有一个C2 server的连接,进程是cups-helper,id为2177
70. 分析物联网检材,系统中存在一个非标定时任务,这个任务每隔多少分钟执行?(答案格式:1)
10
在定时任务的文件中发现

有一个和木马有关的程序,每隔10分钟执行
71.分析物联网检材,木马程序会窃取文档暂存在隐藏目录,这个目录的绝对路径?(/root/root/)
/tmp/.cache/
看恶意程序


72. 分析物联网检材,木马程序将数据上传到的服务器的IP地址是多少?(答案格式:1.1.1.1)
185.199.108.153
由之前的得到ip

73. 根据木马程序,它监视的关键字是什么?(答案格式:按照实际情况填写)
Project Dragonfire


移动终端取证分析
74.分析检材中微信ID:wxid_f4s0jmpvrc522对应的手机号后四位为(答案格式:1111)
8390
提取uin计算密钥并解密数据库


导出文件

解密


75. 分析检材中”华为应用市场”第一次安装日期为(使用双位数格式,答案格式:01月01日)
09月24日
找到包的按照时间戳


75.找出检材中钱包APP,请列出该APP中ETH地址后六位是(字母全大写,答案格式:AAAAAA)
3FE61F
下载了imtoken的app

打开数据库看到ETH地址0x304fEd2927f47692E50158A1148a1B65503FE61F

77.分析出检材中包含”南昌西站”的图片,计算该图片的MD5后六位?(字母全大写,答案格式:AAAAAA)
85A51D
在相册文件中找到


78.手机相册中有张”imtoken助记词1.PNG”图片被破坏,请修复该图片,列出该图片中第三个单词。(答案格式:按照实际情况填写)
boost
xfw过滤imtoken助记词*,得到1和2,1随波逐流一把梭出修复后图片


79.找出一张PNG图片,该图片上显示”助记词2”,请列出该图片上显示的第二个单词。(答案格式:按照实际情况填写)
delay
80.找出检材中显示”助记词3”的文档,列出该文档中记录的第三个助记词单词。(答案格式:按照实际情况填写)
quarter
xfw暴力搜索

82.分析出该组助记词正常顺序中最后一个单词(已知助记词1、助记词2、助记词3中的单词顺序有被调整)。(答案格式:按照实际情况填写)
segment
知道助记词和地址,可以还原助记词顺序

82. 分析出邮箱中收件人QQ号为”850563586”的姓名(答案格式:按照实际情况填写)
刘佳雨
先找到QQ的uid u_mq61uhp6gZE49O_lq9Hvtg

然后解密用户数据库


83.得知机主通过某个应用给HHshAL发送了一个文档,该应用的数据包名是什么?(答案格式:com.test)
dingtong.saichuang
在data中发现一个奇怪的app

他的数据库是加密的,根据之后的题目可以确实是这个app

84. 接上题,该应用聊天记录数据库的打开密码是什么?(答案格式:按照实际情况填写)
@1@#!aajsk1*JKJ
找到对应的apk文件


猜测为密码


85. 接上题,机主发送的这个加密文档,打开密码是什么?(答案格式:按照实际情况填写)
找到聊天记录中的密码

decode得到QWERT666

86. 厉明的身份证地址登记的门牌号是多少??(答案格式:1)
722
过滤*身份证*

找到其对应的应用数据库,得到两个密码

解压mxt文件得到门牌号

87.分析出”important1.xlsx”文件中体现的”金达欣”银行卡后六位?(答案格式:111111)
935629

88.接上题,保存”important1.xlsx”打开密码数据的应用,该应用的启动密码是什么?(答案格式:按照实际情况填写)
1596


数据分析
89.通过对检材”01-lott.sql”文件进行分析,统计庄家”188”在2021-05-10当日的电子投注总笔数(答案格式:1)
2299
t_trade_betrecord是投注记录表

90.通过对检材”01-lott.sql”文件进行分析,统计t_trade_betrecord中庄家”188”记录中彩票类型为”jnd28”且期号在t_lottery_jnd表中存在的记录数。(答案格式:1)
92842

91.通过对检材”01-lott.sql”文件进行分析,统计庄家”188”的玩家在2021-05-10当日:电子投注内容出现频率最高的电子投注内容是什么?(答案格式:按照实际情况填写)
500单

92.通过对检材”01-lott.sql”文件进行分析,关联t_trade_betrecord与t_lottery_jnd表,分析庄家”188”在2021-05-10投注”jnd28”时:当开奖结果为”大”时,玩家投注包含”小”的笔数占比(使用双位数格式,答案格式:11.11%)
44.88%
1 | select 玩家小/总数 from ( |

93.通过对检材”02-crime_records.sql”分析,统计相邻两次作案时间间隔在1天之内的城市和该城市两次作案时间间隔在1天之内的案件总数量,找出案件总数最多的城市名。(答案格式:按照实际情况填写)
福州
1 | WITH cte AS ( |

94.通过对检材”02-crime_records.sql”分析,根据案件的损失金额和伤情等级,将案件分为 “轻微案件””一般案件””重大案件””其他”四类(分类规则如下),并统计 2023 年各类型案件的数量。轻微案件:损失金额≤10000 元且无人员受伤(injury_level 为空或未提及);一般案件:损失金额 10001-50000 元,或有轻微伤;重大案件:损失金额 > 50000 元,或有轻伤或有重伤;其他:非上述情况。(按照案件数量的降序输出答案,答案格式为:40/30/20/10)
15712/2058/1985/222
1 | SELECT |

95.通过对检材”02-crime_records.sql”分析,统计 2021-2023 年期间(含2021年和2023年),每年处理结果为 “移送起诉” 的案件里,每一年中损失总额最高的案件类型对应的损失总额为?(按 2021 - 2023 年顺序连接损失总额,连接符号使用/,小数点保留2位,答案格式为 :1.37/2.21/3.45)
325806042.91/344804883.98/352132431.37
1 | select |
