2026黄河流域公安院校-电子物证单项赛wp

案件介绍

1
2026年3月,受害人张某在某短视频平台看到一则“兼职刷单、日赚千元”的广告,下载了一款名为“拓鑫任务”的刷单返利APP。电诈分子以“小额返利获取信任、大额任务连环诈骗”的方式,骗取张某共计人民币15万元。案发后,公安机关对张某手机进行电子数据勘验,提取了涉案APP安装包、聊天记录、转账截图及服务器域名等关键证据,研判追踪后锁定该诈骗团伙藏匿于境外某地。经国际警务协作,当地警方对该窝点实施收网行动,抓获多名涉案人员并启动遣返程序。根据双边执法合作协议,我方需派出专家组前往该窝点开展现场勘查、电子证据固定及取证工作。请根据获取的电子物证还原案件发展经过。

一、手机取证

1、受害人曾搜索过“兼职APP推荐”,使用的搜索软件是什么?(答案格式:Google)

题目说的还是很明确的,搜索的内容和软件都很明确

不过火眼好像没有检测到什么搜索软件

我们可以直接索引搜索,发现还是搜不到的情况下再来直接全局

毕竟题目给的很准确,就说了是“兼职APP推荐”

所以发现是deepseek,但是火眼没有分析出内容,我们去看deepseek的数据库

确实是DeepSeek,所以本题答案即为DeepSeek

2、受害人是哪一天注册的“拓薪任务”APP?(答案格式:2026-02-02)

怀疑是题干打错了,只有拓鑫任务

直接搜索拓鑫任务,发现网易邮箱里有很多相关的邮箱

点开来发现有注册日期2026-03-01

3、根据日历中记录的内容,受害人分别在刷单APP上投入了以下哪些金额(多选题)

A. 100元

B. 500元

C. 3000元

D. 5万

E. 10万

本来想来好好研究一下这个APP,但是发现没有相关数据包

只能在别的地方来找了,邮件里似乎没有说投入的刷单金额

继续在别的地方检索,发现了在与你的聊天记录里有记录,这边是100元的记录

这边是500的记录

这是3000的记录

最后是5w

5w之后是累计10w,没有一次10w过,之后就发现提现不了了,直接炸了,所以这就是最后一次了,E选项没有出现过

所以本题选ABCD

4、截止2026-03-12,受害人共投入了多少资金?(答案格式:25万)

其实不用数啊,就是15万

15万之后就再也提不出来了

虽然这个检材可能是假的,但是看着还是很揪心,唉

答案是15万

5、以下哪些账号或昵称是该受害人的?(多选题)

A. 张大帅

B. 哈哈小飞侠

C. 海阔天空

D. zdashuai0709@163.com

E. Zhangmouren

一个个看

首先张大帅肯定是,是与你里边的

其实哈哈小飞侠也是 ,是Soul的

zdashuai0709@163.com也是,是网易邮箱大师的

所以选ABD,至于C和E

C是群组别人的昵称

E没搜到

所以本题选ABD

6、受害人意识到被骗后,收集了一些证据并且打包成了压缩文件进行备份,压缩包中的文件名称为?(答案格式:含后缀名,如123.txt)

说是压缩包,所以当然去压缩文件里边找了

发现有证据备份.zip

虽然三个文件大小不太一样,但是打开来都是诈骗账户信息.txt

7、受害人搜索过以下哪些地方?(多选题)

A. 新街口

B. 夫子庙

C. 紫金山

D. 南京禄口机场

E. 南京红山动物园

在问地方,我们直接去看地图

直接看百度地图的搜索地点,发现是ABD

8、受害人2026年7月3日中午最可能在哪个城市?(答案格式:南京市)

在地图软件没有出现7月3日,继续找别的线索

查找时间线发现了7月3日有两张照片

但是直接看图片社工有点麻烦,我们看看有没有别的照片

发现同目录下还有一张飞机信息

对方7月3日中午有从海口市飞南京市的飞机票,所以很有可能7月3日在海口市

9、分析受害人手机中安装的家庭智能硬件管理平台数据库,其中有一个智能空调遥控器的型号是什么?(答案格式:abc.a12.b04)

发现手机中存在一个米家,题目说的家庭智能硬件管理平台可能就是这个

来根据包名看看数据库

直接去data/com.xiaomi.smarthome/databases找,发现了空调的model

所以本题答案为qjiang.acpartner.ac02

10、张某曾在“与你”app中下载过一个文件,其中隐藏了一个支付地址,请找到并回答地址是什么?(答案格式:https://pay.xx.com/xx/xx)

已经确认是与你app了,我们来与你app的数据包这边看看

发现files下边存了一个重要.jpg

就快把我不正常写脸上了

说是有一个网址隐藏在里边,直接搜http发现就找到了

所以答案是https://pay-demo.virtualpay.com/pay/orderNo=ORD260710594721

二、计算机取证

1、该计算机的系统盘原始磁盘MD5值是多少?(单选题)

A. 12a5b44edfa80c904b5e16affa383d88e4aa0caa

B. 1442499db55b8c6f901dafe65a6fd70a

C. 27f9c083205673ef3906fb188e39b3fe

D. ac363ab3a41bb321da79ba8220e41b8e

直接多检材导入,发现了检材一又是系统保留又是C盘的,很明显是系统盘

直接计算哈希

所以本题选B

2、该计算机的安装时间(UTC +8)是什么时候?(单选题)

A. 2026-02-14 06:24:25

B. 2026-02-14 14:24:25

C. 2026-06-29 06:24:25

D. 2026-06-29 14:24:25

直接就写了,这边注意时区,虽然这题没换,选B

3、用户“Rhine”最近一次登录成功的时间是什么?(单选题)

A. 2026-02-24 14:44:18

B. 2026-02-14 15:11:35

C. 2026-06-29 16:16:29

D. 2026-07-07 16:16:29

这边直接就写了最后登录时间,所以直接选C

4、用户“Rhine”的密码NTLM哈希是多少?(答案格式:英文小写)

这边用户列表下边直接写了NT HASH的值

所以答案是44f9ea6a7743a8ea6f1956384c39887b

其实也可以手算

因为我们知道密码,可以直接算NTLM哈希

本质上就是这样子计算的

1
MD4(UTF-16LE("123qweasd"))

5、接上题,请破解用户“Rhine”的密码NTLM哈希(提示:9位密码,前三位为123,后六位为小写英文),明文密码是多少?(答案格式:以实际为准,如123abcdef)

火眼直接自动给破解出来了(

或者就hashcat去爆破,题目给的也很具体了,9位密码,前三位为123,后六位为小写英文

1
hashcat -a 3 -m 1000 44f9ea6a7743a8ea6f1956384c39887b 123?l?l?l?l?l?l

就是123qweasd

6、该计算机的DHCP IP地址是多少?(答案格式:192.168.1.1)

直接看网络连接

发现了DHCP地址为194.7.30.136

7、该计算机中微信客户端的安装时间是什么?(单选题)

A. 2026-02-14 21:28:08

B. 2026-03-14 21:28:08

C. 2026-04-14 21:28:08

D. 2026-05-14 21:28:08

直接看微信的安装时间即可看见是A

8、该计算机中登录的微信账号是什么?(答案格式:wxid_123456abc)

直接看微信的账户信息即可

微信账号是wxid_2869cyfdzpon12

9、该计算机中安装使用的安卓模拟器手机型号是什么?(答案格式:TJ-123ABC)

直接看安装软件就能明确是夜神模拟器

在嵌套证据识别里边直接显示了夜神的手机型号

所以本题答案为SM-G9810

10、该计算机中保存的嫌疑人张三伪造的身份证号是多少?(答案格式:12345678910)

拿到检材其实下意识可以先从大到小倒叙看看有没有什么大图片

这边可以直接看见是110105199001010001

当然也可以仿真看一下

注意仿真的时候默认勾选的第一个镜像是系统盘,我们先放1

直接创建即可,注意这边要调高一下内存和处理器,不然容易打开卡死

如果仿真的话很快就能看见了,就在图片里,很明显

所以本题答案为110105199001010001

11、嫌疑人真正的身份证号是多少(答案格式:123456789012345678)

继续在照片找了一圈没有找到线索

这个时候去看了看别的文件夹

发现有个eDiary的笔记软件需要我们填写正确身份证

而在这个文件夹下还有个密语

打开发现大小不太对,怀疑是零宽

这边还专门好心放了个解零宽网站

扔进去就看见了隐藏的内容,即真实身份证号是321202200101016134

12、嫌疑人在2026年2月15日要去4s店提什么车?(答案格式:奔驰)

直接恢复密码即可得到原来的密码flag1{my_dream_car}

拿这个直接去解卡那个secret.elf即可

得到日记内容写了2.14的明天,也就是2.15要去提的是五菱,不是奥迪啊,奥迪没钱买

所以答案是五菱

13、计算机中存在一个cdk生成器,支持生成以下哪几个平台的cdk?(多选题)

A. STEAM

B. EPIC

C. ORIGIN

D. UPLAY

E. CUSTOM

很容易就能找到这个cdk生成器

发现了里边支持的正好是ABCDE

所以本题答案为ABCDE

14、计算机中存在一个加密容器,该容器文件的SM3哈希值是多少?(答案格式:以实际为准,英文小写)

思路很清晰,先去找加密容器

其实可以直接进行特征分析,可能有点慢不过肯定能出来

而这边我们也可以直接文件全显然后看看大小有没有特别整数的

找着找着发现直接有一个文件类型是加密容器的

基本确认就是这个了

我们也可以先做下边那题再交本题,都能打开了肯定是加密容器,再去算SM3

d6fcd05a60ce61e7fd3202a24006beb781b1b30ec4b2826225d6d19d508fd3b0

15、接上题,该加密容器的密码是什么?(答案格式,以实际为准)

在便签里就写到过这个加密容器的密码在cdk生成器里

我们去看看

总不能对着这个exe文件硬看吧

猜测可能要逆向分析或是解包

只看字符串没有发现内容,但是发现了很有可能是PyInstaller打包的痕迹

所以我们可以先使用Pyinstxtractor解包

1
python3 pyinstxtractor.py cdk_generator.exe

这边还列出了一些可能的入口点,我们可以打开看看

cdk_generator.pyc明显最可疑啊,同名先看,尝试反编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import marshal
import types
import dis
import struct

def show(code, depth=0):
pad = " " * depth
print(f"{pad}[代码块] {code.co_name}")
print(f"{pad}[起始行] {code.co_firstlineno}")
print(f"{pad}[调用名称] {code.co_names}")
print(f"{pad}[常量] {[c for c in code.co_consts if not isinstance(c, types.CodeType)]}\n")

for const in code.co_consts:
if isinstance(const, types.CodeType):
show(const, depth + 1)

with open("cdk_generator.pyc", "rb") as f:
data = f.read()

# Python 3.7+: pyc header = 16 bytes
# Python 3.3–3.6: 12 bytes
# 保险起见:自动跳过 header
offset = 0
magic = data[:4]
offset += 4

if magic >= b'\x33\x0d\x0d\x0a': # Python 3.7+
offset += 12
else:
offset += 8

root = marshal.loads(data[offset:])
show(root)

发现直接就在注释里写了password:easy_pyc

所以容器密码应该是easy_pyc,打开来看看行不行就好了

发现成功挂载了,所以这是正确的,也能证明14是对的

所以本题答案为easy_pyc

16、接上题,其中包含以下哪几个“免费开户、查人”的Telegram频道?(多选题)

A. 巨人社工库

B. 好旺社工库

C. Xray社工库

D. 情报局社工库

打开来就俩文件,明显是后者

发现ABCD都在里边,所以本题选ABCD

17、加密容器中存在一个PowerShell脚本,脚本中定义的 XOR 解密密钥是?(答案格式:十进制,如18)

除掉那个txt只剩那个zip了

很显眼的一个Powershell脚本,我们用notepad打开看看

直接搜索XOR就好了,就能找到这边在和0x51异或

所以异或的密钥是0x51

异或的加密密钥和解密密钥是同一个,也不用纠结啥

要写十进制,所以是81

18、以下哪个文件会被脚本从 Steam 目录中删除?(单选题)

A. hid.dll

B. steam.cfg

C. zlib1.dll

D. appdata.vdf

一个个看可以发现A和C是脚本注入的文件

D也是写入的东西

只有B是删除的

所以本题选B

19、BitLocker加密分区的48位恢复密钥是什么?(答案格式:按实际填写)

藏在本机照片里有一个明显是加密数据库的东西

但是没有密码

想到之前在笔记里反复提到了说嫌疑人对A6L执念很深,所以很有可能是在这里边存在图片隐写

当然一共也才四张,一个个来也区别不大,先扔到随波逐流

发现宽高被改过,改回真实高度之后即可得到密码AlpsRhine

打开就有bitlocker的密码了

密码是N0 W@y 1s vvay

尝试打开成功,所以这个就是密码

我们再提取一下恢复密钥即可

在管理BitLocker里边直接备份恢复密钥即可

得到恢复密钥174526-427251-448943-433774-027698-350119-649715-502139

20、BitLocker加密分区中存在一个sql文件,请解密BitLocker加密分区,分析sql文件中的数据库名为?(答案格式:按实际填写)

sql发现加密了,第一个想法肯定是外边那一大堆拼的啊,谁知道这玩意竟然只是个伪加密。

改成0或者偶数都可以,总之只是伪加密

得到数据库名字为steamcdk

*到这边计算机取证就结束了

下边是同文件夹的很多彩蛋

比如这个改字体颜色的文档隐写

下边还有一个拼图的

这边给的很好,每一个的名字都是tile_行_列.png

范围都是0-15,也就说是256张50*50的拼起来

1
2
3
4
5
6
7
8
9
10
11
12
from zipfile import ZipFile
from pathlib import Path
from PIL import Image

p = Path('./')
out = Image.new('RGB', (800, 800))

for f in p.glob('tile_*.png'):
_, i, j = f.stem.split('_')
out.paste(Image.open(f), (int(i)*50, int(j)*50))

out.save('solved.png')

一堆神秘flag,想到数证杯决赛了。

三、程序逆向分析

1、该刷单APP的包名是什么?(答案格式:com.example.app)

程序逆向分析给了俩压缩包,明显一个apk一个exe,问我们app所以我们就先看这个apk

直接放到雷电APP智能分析即可

得到包名com.tuoxin.task

2、该刷单APP从设备通讯录中窃取数据后,将数据写入哪个本地 JSON 文件?(答案格式:含扩展名,如abc_123.json)

说了是json文件,我们jadx打开来搜一下有没有什么跟”.json”有关的逻辑

发现和写入以及.json相关的只有这一条

看了一下发现和题意一致

都是读取通讯录,提取信息,格式化数据后加密保存到这个contacts_bak.json文件中

符合题意,所以本题答案为contacts_bak.json

3、分析该刷单APP的 assets/cfg.bin文件,以下说法正确的是?(多选题)

A. cfg.bin 经过Base32编码

B. cfg.bin 经过 Base64 编码

C. cfg.bin 使用 AES-256-CBC 加密

D. cfg.bin 使用 AES-512-CBC 加密

E. cfg.bin 的 IV 来源于该文件自身偏移 8-23 字节

F. cfg.bin 的 IV 来源于独立的 assets/iv.bin

那就先定位这个cfg.bin文件

只出现在这里

一个个查看逻辑

首先是代码明确写了cfg.bin是经过了Base64编码,所以A错误、B正确

而CD的AES没有直接看见

发现这这边还导入了这个库

双击跳转过去发现是加载的txcore这个native库

所以我们还要去看看native层

改文件后缀名为zip,打开

我们可以很容易在lib文件夹下找到这个so文件

接着就要IDA进行分析了,最好选9.0以上的,低版本的反编译不了

肯定是看和加解密有关的函数

过来看看,不难发现中间这一条即为加密的函数

可以看到这边的核心调用

这边的32和初始化定义的v10[2]其实都已经说明了密钥长32字节,强烈暗示是AES-256

那如果我们继续去看sub_14CC就会发现是一个标准的AES-256-CBC加密

所以刚刚的调用其实是

1
2
3
4
5
6
7
8
9
v5 = sub_14CC(
a1, // 加密数据
a2, // 加密数据长度
v10, // 密钥(32字节)
32, // 密钥长度
&v9, // IV/Nonce(16字节)
a3, // 输出缓冲区
&v8 // 输出长度
);

所以本题CD里边选C

最后是E和F

既然已经明确了这个sub_14CC是标准的AES-256-CBC加密

所以v9即为IV

v9是固定的明文,因此和文件无关,不选E,去看也会发现不一样

对照后发现确实是来源于独立的asset/iv.bin,与其内容一致

所以本题EF选F

综合选BCF

4、分析该刷单APP的 assets/cfg.bin文件,解密key是多少?(答案格式:按实际填写,如123abc)

密钥我们分析过了是v10

注意最后应该是0x07和0x00

所以合在一起,解密key就是47f32b6c3c50f7474f3a14787ef790f46d326e7a33a758d0c7e452cb120e0700

5、分析该刷单APP的assets/cfg.bin文件,其中记录的备份IP地址及端口是多少?(答案格式:192.168.1.1:8080)

最后我们就要开始解密这个cfg.bin了

刚刚已经说的很清楚了

1
2
3
4
5
读取 assets/cfg.bin
Base64 解码
跳过前 24 字节
取剩余部分作为 AES-CBC 密文
使用 native 中的 32 字节 key 和 16 字节 IV 解密

成功解码即可得到最后的备份ip和端口

121.43.187.92:8080

6、分析提取的HuangHe2026.exe,根据 DIE(Detect-It-Easy)识别结果,该 PE 文件使用的编译器及版本是?(单选题)

A. Microsoft Visual C++ 6.0

B. Borland Delphi 6

C. MinGW GCC 4.x

D. Microsoft Visual Basic 6.0

E. Borland C++ Builder 6

说的也太直接了,那我们就听他的用DIE就好了,打开发现编译器是Borland Delphi 6

选B

7、分析提取的HuangHe2026.exe,该 PE 文件包含多少个节区(Section)?(答案格式:1)

直接就能看见PE文件包含了8个节区

8、分析提取的HuangHe2026.exe,该 PE 文件入口点(Entry Point)的虚拟地址(VA)是多少?(答案格式:0x123456)

直接就能看见了其实

当然也可以在PE文件内部看,发现了PE的入口点RVA是0x92040

又因为ImageBase是0x400000

所以虚拟地址VA是0x400000+0x92040 = 0x492040

9、分析提取的HuangHe2026.exe,程序读取/写入的注册表值(Value Name)名是?(答案格式:Abcde)

用IDA打开查看字符串,发现很多跟USB有关的字符串,程序很有可能在操作USB存储驱动和INF驱动

我们选中SYSTEM\CurrentControlSet\Services\UsbStor交叉引用过去看看

发现属于这个sub_491714函数

发现了核心逻辑是这边,这边在设置注册表操作的根键

0x80000002是Windows的预定义句柄常量HKEY_LOCAL_MACHINE

联系后边这边主要是打开了注册表路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor

再读取了值看看读到的值是否等于4

读取的是Start的值,所以本题答案为Start

10、分析提取的HuangHe2026.exe,该应用的主要功能是什么?(单选题)

A. 对插入的 USB 存储设备进行全盘加密,未授权设备无法读取数据

B. 完全卸载 Windows 系统中的所有 USB 主机控制器驱动程序,永久移除 USB 端口功能

C. 监控 USB 设备插拔事件并记录日志到本地文件,供管理员审计使用

D. 启用/禁用 Windows 系统的 USB 大容量存储设备(U 盘/移动硬盘等),通过修改注册表和重命名驱动 INF 文件实现

E. 通过 USB HID 接口模拟键盘输入,实现自动化测试或攻击载荷投递

这需要我们对这个程序的主要功能完全理解一遍

我们知道这个是一个exe,所以可以想到去看看有没有什么Apply按钮逻辑

在函数栏可以搜到这两个函数

发现主要功能在Button1,2没啥,进去看Button1,发现调用了sub_491844函数那边

我们跟过来看看,发现了大量逻辑内容

首先是这边在创建并打开注册表

而且操作的是0x80000002 ,即HKEY_LOCAL_MACHINE

紧接的这个可以基本确定了我们打开的是HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR

再后边开始判断了,主要就是某个控件的状态回决定True还是False吧

如果是True

那么进入这个分支,其中最重要的就是最后一句了

把注册表里的Start赋值为了3

注意这边Windows服务的Start有这样子5个值

1
2
3
4
5
0 = Boot
1 = System
2 = Automatic
3 = Manual / Demand Start
4 = Disabled

所以3也就是开启,即USBSTOR没被禁

但如果是False,那么就是4,也就是禁用了USB

而且可以看到,不管是True还是False都是调用了通过修改注册表和重命名驱动INF文件实现的,分别启用和禁用了USB大容量存储设备

所以本题选D

四、服务器取证

1、该服务器的操作系统名称和版本是什么?(单选题)

A. CentOS 7.9 x86_64

B. Ubuntu 22.04 aarch64

C. openEuler 24.03 x86_64

D. Debian 12 x86_64

直接在火眼的系统信息看即可,选C

2、该服务器根分区 / 的 UUID 是什么?

A. e8650b2c-938c-4063-bb04-d91bb6fc4ef2

B. 7ca80e58-3dae-4109-8c6c-21c706950d52

C. d7f7ecef-6f94-40fa-8532-85218c1358d8

D. 6B09-FE8F

这种肯定是仿真比较方便看,我们直接仿真

平时仿真其实我习惯会增加内存和cpu核数,不过这边最好不要,因为后边有一题会有问题(虽然可能是题目的问题

为了方便输入命令,我们在启动后可以优先连接ssh

先登录

ssh开着,但是输入ifconfig发现没有ip

1
dhclient -v ens33

手动用DHCP分配一下ip

得到了ip,我们ssh连接

成功ssh连接上

直接输入命令

1
2
lsblk -o UUID,MOUNTPOINT
blkid /dev/mapper/openeuler-root

二选一即可,都能看

所以本题选B

3、该服务器根分区 / 的文件系统是什么?(答案格式:小写英文,如fat32)

在火眼详细信息往下划可以直接看见

文件系统是ext4

4、关于该服务器配置的网卡描述正确的有哪些?(多选题)

A. 网卡名称为ens33

B. IPv4默认网关为192.168.77.1

C. IPv4地址为192.168.77.130

D. UUID为707bf904-5157-4606-b7fe-aa403b6e0481

在火眼查看原来的网络配置就会发现网卡名称是ens160

然后ipv4地址是192.168.77.130,UUID也是对的,但是默认网关应该是192.168.77.2,不是B

所以应该是CD

5、宝塔面板的访问端口和登录安全入口是什么?(多选题)

A. 36912

B. 38497

C. /7921b4a7

D. /7c09f4b5

直接去宝塔面板的账号信息科即可

直接就能看出是BD

6、宝塔面板的登录账号是什么?(答案格式:以实际为准,如123abc)

登录账号就是用户名啊

火眼也能直接看

所以是eswr2ymq

在日志也能看见这个就是账号

7、宝塔面板配置的公网服务器IP是多少?(答案格式:192.168.1.1)

直接在火眼似乎看不见,我们只能去网站里边看看了

我们知道了账号是eswr2ymq,但不知道密码,所以我们需要bt 5来修改一下密码

直接修改即可

之后就是登录网站了

可以bt 14来看看详细信息

直接利用内网面板地址来登录即可

用户名我们知道,密码刚刚设置

我们可以在网站左上角直接看见外网ip

也可以在设置-面板设置里边看见服务器的外网ip

所以本题答案为180.111.28.195

8、涉案服务器在2026-07-06 15:32:47之前存在的提权漏洞编号是什么?(答案格式:CVE-2026-1234)

可以看到这边日志检测到了之前存在polkit漏洞

所以编号是CVE-2021-4034

9、宝塔面板中配置的MySQL数据库root密码是什么?(答案格式:以实际为准,如123abc)

点到数据库直接点root密码

即可看见数据库密码

fb5a2ab4f542f486

10、分析该服务器中部署的MySQL数据库,其中共包含多少条邮件收发记录?(答案格式:2)

上一题都拿到数据库root密码了

直接登录看看

打开直接自动帮忙统计了有52行

即52条收发记录

11、Redis 服务器的访问密码是什么?Redis 中共缓存了多少个 key?(答案格式:密码、数量,如password、3)

访问密码是什么,这就要看配置文件了

来文件看看,可以看到redis文件夹下在redis.conf配置文件

直接把密码写在最后了

TuoxinRedis2026

至于共缓存了多少个 key,直接在数据库找就好了

发现帮忙直接统计好了是66个

所以这题答案是TuoxinRedis2026、66

12、服务器中部署的网站“拓鑫商城”使用了什么 Web 框架?(单选题)

A. Laravel

B. Django

C. ThinkPHP

D. Spring Boot

我们直接去查看网站的配置文件即可

打开www/wwwroot/tuoxin.com/composer.json即可发现应该是C

13、该服务器中部署的网站“拓鑫商城”,上次手动备份的日期时间是什么?(单选题)

A. 2026-03-06 14:30:15

B. 2026-03-07 14:30:15

C. 2026-07-06 14:30:15

D. 2026-07-07 14:30:15

直接点一下备份就会跳出备份的详细信息了

可以看见应该是D

14、关于“拓鑫商城”使用的数据库描述正确的是?(多选题)

A. 使用MySQL数据库

B. 使用的MySQL数据库端口为3306

C. 使用PostgreSQL数据库

D. 使用的PostgreSQL数据库端口为5432

问拓鑫商城相关内容

肯定是去看拓鑫里边的数据库配置情况

在.env.bak即可看见数据库的配置情况

发现是PostgreSQL数据库

端口是5432

所以本题答案是CD

15、“拓鑫商城”使用的数据库密码是多少?(答案格式:以实际为准,如123Abc)

同一个地方就能看见密码是

Tuoxin@2026_DB

当然也可以连一下验证看看

16、管理员赵天龙(admin)的密码明文是什么?(答案格式:以实际为准,如123Abc)

当然需要我们把数据库连上

建立ssh隧道比较好,发现这边ssh隧道是正常的

但是到了连接数据库就报错了

从报错可以看到我们其实是连到服务器了,但是服务器在处理请求的时候连接突然被服务器给主动断了

开始排查一下问题

1
2
3
ss -lntp | grep 5432
ps aux | grep postgres
/www/server/pgsql/bin/psql -h 127.0.0.1 -p 5432 -U tuoxin -d tuoxin_mall

检测端口进程并测试后发现本地开启psql完全没有问题

所以我们可以缩小到问题只是Navicat的SSH隧道这一层

(那我不用SSH隧道不就好了)

当然这样子也可以啦,不过我们还是深挖一下为什么ssh隧道不可以

问题很明确是ssh到数据库这段路,我们怀疑的第一个就是是不是ssh不允许tcp转发

1
sshd -T | grep -Ei 'allowtcpforwarding|disableforwarding|permitopen'

啊就是这个问题,给关掉了

1
2
grep -RniE '^[[:space:]]*AllowTcpForwarding|^[[:space:]]*DisableForwarding|^[[:space:]]*PermitOpen' \
/etc/ssh/sshd_config /etc/ssh/sshd_config.d/ 2>/dev/null

看看是哪一个文件关掉的

在这边啊,我们去打开就好了

改成yes

重新reload一下ssh

1
systemctl reload sshd

这下子用ssh隧道去访问也通了

去user表看看赵天龙这个人啊

不用找,就是第一个

这边有密码的hash和legacy_passwd,至于如何利用还是要看密码加密存储的手法

毕竟只给了hash,只有靠碰撞

我们最后可以在app/controller/Auth.php找到密码的存储方式

可以看到新用户注册是使用的PHP的password_hash函数在进行Bcrypt加密

如果是旧用户,也有对密码进行加密后存到legacy_password的

验证是先新后旧,所以我们其实可以两边都能解

先看旧的

这边说的很清楚了,在\app\lib\CryptoHelper有legacyDecrypt函数

先解Base64,然后再Reverse了一下,最后异或了Tuoxin@2026!Legacy即可

那我们也这样子来一趟

得到密码Passw0rd

或者去爆破Bcrypt

1
hashcat -a 0 -m 3200 '$2y$10$2bnI84AWNzL6HwSPWcT3Qeugd0bodY/UAVyBvBY6Fp.y.8ycou60W' rockyou.txt -w 3

但是Bcrypt不好爆

所以本题的密码为Passw0rd

17、“拓鑫商城”的刷单任务大厅中,当前显示正在进行中的刷单任务有多少个?(答案格式:1)

直接在数据库查看tasks这个表

可以看见open的是10条在进行的刷单任务

答案是10

打开网站看也一样

18、登录“拓鑫商城”的后台管理页面,受害人卫永峰在2025-12-29 ~ 2026-03-29购买了多少份智能合约产品“鲨鱼鳍结构化”(答案格式:1)

要登录后台了,我们仿真网站

直接访问网站发现404,应该是反向代理有问题,我们查看网站配置文件

/www/server/nginx/conf/nginx.conf

可以看到宝塔经典结构,但是这边写的其实有问题

平时其实是没啥问题的,但是在这个地方不止一个文件在listen 80,而且在tuoxin.com.conf前还有文件在listen 80

于是Nginx会把第一个出现的当作默认server,导致了这边一直404

我们只要在tuoxin.com.conf强调一下listen 80 default_server;

再把我们的ip加到server_name即可

1
nginx -t && systemctl restart nginx

重启一下nginx

即可成功访问网站了

直接登录admin,密码解过了是Passw0rd

成功登录后台

直接去合约管理的认购记录即可看见购买了5份

19、接上题,“鲨鱼鳍结构化”的合约地址是多少?(答案格式:以实际为准,如0Xabc123XXXX)

在合约管理的合约产品没看见合约地址

去数据库找一下

在contract_products可以看到合约地址0xAC785C81EB039C101B4175BB5BB66F8CA08B6A3C

20、“拓鑫商城”数据库中的用户手机号使用加密算法加密,加密密钥是什么?(答案格式:以实际为准,如123_Abc)

确实加密了,就叫phone,我们看看phone怎么加密的

先是依旧看一下Auth.php

发现调用的是/app/lib/CryptoHelper.php的encryptPhone加密方法

直接就能看见密码是TJ_huanghe_2026

21、“拓鑫商城”管理后台中的“合约投资交流群”的群主用户名是什么?(答案格式:abc)

说了是管理后台,这边可以看见群聊

点进去就能看见群主是杨红

但是有俩杨红

还是去数据库看

可以看到created_by 22

所以是id 22的杨红,用户名是dengchao

22、“拓鑫商城”启动了以下哪些网站防护规则?(多选题)

A. SQL注入防御

B. XSS防御

C. 恶意文件上传防御

D. 恶意爬虫防御

直接去宝塔的WAF看

发现ABCD全开着,全选即可

23、服务器上正在运行(重启策略为:停止后马上重启)的 AI 推理Docker容器名称是什么?(答案格式:以实际为准,如abc-def)

打开Docker栏目看看

明显是中间这一个

所以名称为alpine-llama-cpp-server

重启策略都符合

24、接上题,该AI 推理Docker容器中部署加载的大语言模型参数量是多少?(答案格式:35B)

这边直接能看见是0.8B的

或者我们也可以访问一下,说了端口是6699

访问6699端口即可看见确实是0.8B

25、接上题,上述部署加载的模型,设置的上下文长度是多少tokens?(答案格式:无标点符号,如123456)

这边直接写了是117760tokens,答案也确实是117760tokens,但是这边其实考的有问题

下边是范叔指出的问题

因为在这边作者启动的时候并没有指认传递上下文长度的参数进去,即启动就没有传递–ctx-size参数来设置上下文长度

所以llama.cpp就自动根据宿主机的内存大小来设置上下文了。

我们的火眼默认仿真是4G内存,所以标准答案以及大多数人做的答案就都是117760

但如果你开8g,llama.cpp会自动开满262k上下文导致你这边显示的是262k

如果设置的内存是2G,又会导致上下文显示是117760的减半

26、服务器上已停止(重启策略为:不重启)的Docker容器,使用的镜像ID是多少?(答案格式:以实际为准,如123abc)

依旧是Docker这边写的,已停止的就一个,所以容器就是这个

我们再看他的镜像id

可以看到应该是4a01b014fae7

27、接上题,启动该容器,访问相应服务地址,其中配置的大模型接口地址为?(答案格式:http://192.168.1.1:1234)

题目说了启动该容器,那我们就启动一下

直接启动即可

开在3000端口,访问一下

1
docker inspect nextchat

看看这个容器的配置文件,找一下接口地址

所以答案是http://172.17.0.1:6699

28、该服务器中部署的FileBrowser默认管理员密码是什么?(答案格式:以实际为准,如123Abc)

FileBrowser的端口在8081

找一下密码

发现这个容器的日志里边藏着呢,FCHZTo0mAYzxRxka,我们可以尝试下能否打开

成功了,所以密码就是FCHZTo0mAYzxRxka

29、分析嫌疑人存储在服务器中的“料子”,其中城市为南京的受害人有多少个?(答案格式:10)

找到料子的表格文件,下载下来

1
2
3
4
5
6
7
8
9
10
11
12
13
import openpyxl

file_path = '我的料子.xlsx'
wb = openpyxl.load_workbook(file_path)

nj_count = 0
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
for row in sheet.iter_rows(min_row=2, values_only=True):
if row[2] == '南京':
nj_count += 1

print(f'南京人数: {nj_count}')

所以是84个人

30、分析嫌疑人存储在服务器中的所有月工资表,杨红的全部实发工资是多少?(答案格式:123456)

月工资表,全部下下来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import openpyxl
import zipfile
import os

zip_path = '月工资表.zip'
folder_path = '月工资表'

with zipfile.ZipFile(zip_path, 'r') as z:
z.extractall(folder_path)

total = 0

for file_name in os.listdir(folder_path):
if file_name.endswith('.xlsx'):
file_path = os.path.join(folder_path, file_name)
wb = openpyxl.load_workbook(file_path)

for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]

for row in sheet.iter_rows(min_row=2, values_only=True):
if row[0] == '杨红':
total += row[3]

print(f'杨红全部实发工资: {total}')


2026黄河流域公安院校-电子物证单项赛wp
https://mei-you-qian.github.io/2026/08/11/2026黄河流域公安院校-电子物证单项赛/
作者
Meiyouqian
发布于
2026年8月11日
许可协议