2025盘古石杯决赛

检材容器密码: ENj5MWKOu7tN80uDnRbzb2C409gWpdI#@zLutPdqGGtt-XRt$_$%7i=)5xlbFzF* 容器 MD5: e4ad1b21e6e818529998869ec352134b

难程序之剖析兮,服务器未竟全功。
心力摧而神疲兮,辗转煎熬意难通。
硬件局促难堪兮,唯双虚机次第启封。
步履迟而卡顿兮,帧如幻灯片影朦胧。
博彩站点初成兮,双机倾颓顷刻崩。
意倦倦欲停求索兮,暂且收束罢此征程。
忆彼 ESXi 之规兮,一十六吉内存为宗。
嗟吾身之匮乏兮,仅携三二吉数相从。
竭极限之殚力支撑兮,三台孤悬勉自持穷。
更忧 VSAN 高悬兮,如山重压惊破心胸。
困算力之桎梏兮,叹实操之路千折万重。
心期扩容纾艰危兮,价翻倍望而意冷成空。

assets/2025盘古石杯决赛/file-20260327212911828.png

HarmonyOS 手机

  1. 打网球定的日期是?
    3月3日
    assets/2025盘古石杯决赛/file-20260309192458201.png
  2. 哪个浏览器搜索过鸿蒙开发教程?
    UC浏览器
    assets/2025盘古石杯决赛/file-20260309192637102.png
  3. 记录服务器信息的笔记软件名称是?
    assets/2025盘古石杯决赛/file-20260309193758352.png

assets/2025盘古石杯决赛/file-20260309193813072.png
assets/2025盘古石杯决赛/file-20260309193826290.png
assets/2025盘古石杯决赛/file-20260309193833693.png
不认识笔记软件导致的,喂给ai
assets/2025盘古石杯决赛/file-20260309195245840.png
思源笔记
4. 接上题, 笔记软件记录的 ip 地址一共几个?
5
assets/2025盘古石杯决赛/file-20260309201001623.png
assets/2025盘古石杯决赛/file-20260309201012330.png

  1. 接上题, DC 服务器用户名 administrator 的密码是?
    接上题,看到DC服务器对应ip后,正则搜administrator,看到对应记录
    assets/2025盘古石杯决赛/file-20260309205105710.png
    3w.panguite

iOS 手机

  1. 手机的型号?
    iPhone 13 Pro
    assets/2025盘古石杯决赛/file-20260309184209366.png
  2. 手机的 iOS 系统版本是?
    16.3.1
    assets/2025盘古石杯决赛/file-20260309184238886.png
  3. 手机的 IMEI 是?
    352507504392612, 352507504954650
    assets/2025盘古石杯决赛/file-20260309184559847.png
  4. 曾经接收过一快递, 收件地址是?
    中新市人民路1119号1栋3单元2502
    assets/2025盘古石杯决赛/file-20260309191327614.png
  5. 接上题, 联系电话是?
    同上
    15922223333
  6. 分析苹果手机检材, 找出嫌疑人参加内部会议系统的地址?
    192.168.10.104:5003/meeting/meeting
    没啥线索翻翻手机相册:
    assets/2025盘古石杯决赛/file-20260310185950777.png
    或许有用
    assets/2025盘古石杯决赛/file-20260310190053251.png
    翻到了
  7. 接上题, 找出参加会议的时间?
    2025‎年‎5‎月‎20‎日
    assets/2025盘古石杯决赛/file-20260310190426619.png
    跳转到源文件查看最后修改时间:assets/2025盘古石杯决赛/file-20260310190513478.png
  8. 截止到 2025 年 4 月, 该团队虚拟币投资总收入是多少?
    32959790278.00
    assets/2025盘古石杯决赛/file-20260310190623131.png
  9. 截止到 2025 年 4 月, 该团队虚拟币投资总支出是多少?
    10885644613
    同上
  10. 该团队雇佣钟无声的佣金是多少?
    思路是找到软件的数据库分析
    首先跳转源文件assets/2025盘古石杯决赛/file-20260310192103856.png
    得到包名com.fabian.hasse.haushaltsbuch
    assets/2025盘古石杯决赛/file-20260310192127880.png
    在application.plist里面搜索包名,看到下一行是数据目录
    assets/2025盘古石杯决赛/file-20260310192341715.png
    在data文件夹里发现数据库:分析:
    assets/2025盘古石杯决赛/file-20260310193041127.png
    assets/2025盘古石杯决赛/file-20260310195103412.png
    借鉴了wiki佬的思路
    Windows 计算机
    assets/2025盘古石杯决赛/file-20260308184317186.png

1.操作系统安装时间(UTC+8)?
2025-05-16 15:16:50 assets/2025盘古石杯决赛/file-20260308194315378.png
2. 登陆次数最多的用户?
admin
assets/2025盘古石杯决赛/file-20260308194501438.png
3. 最后一次弹出的移动设备制造商是?
SanDisk
assets/2025盘古石杯决赛/file-20260308194538191.png
4. 访问次数最多的网页名称是?

assets/2025盘古石杯决赛/file-20260308223004577.png
看到主要是这两个浏览器,点到源文件看到是sqlite数据库assets/2025盘古石杯决赛/file-20260308223229778.png
加个.sqlite后缀才能放软件分析
assets/2025盘古石杯决赛/file-20260308222910477.png
assets/2025盘古石杯决赛/file-20260308222809683.png
会议管理系统
6. 记录鸿蒙备份密码的文件格式是?
assets/2025盘古石杯决赛/file-20260308205802777.png
assets/2025盘古石杯决赛/file-20260308205829826.png
Pgs-2025!123js
7. 鸿蒙备份密码中的数字是(按照从左到右)?
2025123
8. 桌面 txt 文档隐藏的密码是?
assets/2025盘古石杯决赛/file-20260308224803778.png
assets/2025盘古石杯决赛/file-20260308224830935.png
3w.pgs.cup
9. 安装的邮件客户端是?
claws mail
assets/2025盘古石杯决赛/file-20260308210858722.png
assets/2025盘古石杯决赛/file-20260308210948007.png
10. 碎片图片重构后 ESXi2 的登陆密码是?
root/P@88w0rd
学习了wiki佬的思路用gaps来重组,看到图片都是228X171
assets/2025盘古石杯决赛/file-20260311110820032.png
由于gaps只支持正方形的,所以需要先将图片拉成正方形(228X228)
脚本如下:```

import os from PIL import Image input_folder = "./VM_Config" output_image = "combined_square.jpg" target_size = 228 grid_size = 25 image_files = [f for f in os.listdir(input_folder) if f.lower().endswith('.jpg')] canvas_size = (grid_size * target_size, grid_size * target_size) canvas = Image.new('RGB', canvas_size) for idx, img_file in enumerate(image_files[:625]):     img_path = os.path.join(input_folder, img_file)     with Image.open(img_path) as img:         img_resized = img.resize(target_size, target_size)         row = idx // grid_size         col = idx %  grid_size         position = (col * target_size, row * target_size)         canvas.paste(img_resized, position) canvas.save(output_image, quality=95)

得到下图,再用gaps处理
assets/2025盘古石杯决赛/combined_square.jpg
assets/2025盘古石杯决赛/file-20260311110712482.png
montage 输入文件路径 -tile 长宽数量 -geometry 拼图间隙 输出路径
gaps run combined_square.jpg solution.jpg --size=228 --generations=20 --population=20(配置调到了最小,内存多的话可以调大点)
assets/2025盘古石杯决赛/file-20260311110630664.png
12. xshell 连接记录共有几条?
4
assets/2025盘古石杯决赛/file-20260309205406367.png
assets/2025盘古石杯决赛/file-20260309205647740.png
wiki大佬思路
13. 控制程序监听的端口号是
4782
控制端里面找配置文件assets/2025盘古石杯决赛/file-20260309210739114.png
14. 控制端在什么时间控制过其他电脑?
5.19
assets/2025盘古石杯决赛/file-20260309210655071.png
控制端里面找log文件

HarmonyOS 程序分析

  1. 该软件应用名称是?

  2. 软件的包名是?

  3. 软件图标md5的后六位是?

  4. 软件代码保存的文件名称是?

  5. 软件的入口类是?

  6. 软件的入口密码是?

  7. 软件存储笔记的数据库名称是?

  8. 数据库的打开密码是?

  9. 数据库中笔记内容采用什么加密算法?

  10. 数据库中笔记内容加密秘钥是?

服务器集群取证

导出vcsa虚拟机文件夹,注意是分区7下面的这个assets/2025盘古石杯决赛/file-20260315195711917.png
而不是这里这个assets/2025盘古石杯决赛/file-20260315195749300.png
这个文件夹打开虚拟机会报错assets/2025盘古石杯决赛/ca79ca61dc949353e37d7eff64d91666.png
一开始以为是检材坏了,后来发现导错地方
进来可以看到
assets/2025盘古石杯决赛/file-20260311084647096.png
首先调整了一下核数为4
打开后用之前拼图给的账号密码登录:
assets/2025盘古石杯决赛/file-20260315200541397.png

### 1. 隔离虚拟机网络(取证关键)

为了防止目标服务器意外联网或触发外部通信导致证据污染,**切勿将该虚拟机的网卡设置为“桥接模式(Bridged)”或“NAT”**。

- 请在虚拟机设置中,将其网络适配器改为 **“仅主机模式 (Host-Only)”**(如果您使用的是 VMware Workstation)或将其放入一个独立的内部网络/LAN 区段。

### 2. 配置取证机(宿主机)的网络

截图中显示该 vCenter 服务器配置了静态 IP:`192.168.10.100`。  
您需要将取证工作机上对应的虚拟网卡(例如 Workstation 的 VMnet1)配置在同一个网段下:

- **IP 地址**: `192.168.10.x` (例如 `192.168.10.10`)
- **子网掩码**: `255.255.255.0`
- 网关和 DNS 留空即可。

### 3. 配置本地 Hosts 文件解析

vCenter Server 极其依赖其内部配置的 FQDN(完全限定域名)。截图中显示的地址为 `vcsa.pgs.cup`。如果只通过 IP 访问可能会出现重定向失败或证书错误。  
请在您的 Windows 取证机上修改 hosts 文件:

1. 以管理员身份运行记事本,打开 [hosts](vscode-file://vscode-app/d:/Programs/Microsoft%20VS%20Code/ce099c1ed2/resources/app/out/vs/code/electron-browser/workbench/workbench.html)
2. 在文件末尾添加以下映射:
192.168.10.100 vcsa.pgs.cup
3. 保存文件。

### 4. 获取信息与取证接入方式

网络连通后,您可以通过以下几种方式介入该系统进行取证调查:

- **系统管理后台 (VAMI)**:  
    在浏览器中访问:`https://vcsa.pgs.cup:5480`。此界面主要用于系统级管理、服务状态检查和系统日志导出。您也可以直接通过截图提示的地址 `https://vcsa.pgs.cup:443/appliance/support-bundle` 导出包含了大量系统及服务日志的支持包(Support Bundle),这对取证非常有价值。
- **vSphere 管理中心**:  
    在浏览器中访问:`https://vcsa.pgs.cup`。这里是管理集群和虚拟机的核心界面。需要 vCenter 账户密码(通常是类似于 `administrator@vsphere.local` 格式的域账号)。
- **直接进入底层操作系统调试**:  
    在您当前截图中按下 `<F2>` (Customize System),如果已知该系统的 `root` 密码,可以登入控制台。在控制台的 Troubleshooting Options 中可以开启 **SSH 服务** 或 **Bash Shell**,从而使用 SSH 客户端直连底层 Linux 以提取数据库(vPostgres)或底层日志。

完成了以上修改就可以访问管理端口:https://vcsa.pgs.cup:5480
assets/2025盘古石杯决赛/file-20260315202335537.png

assets/2025盘古石杯决赛/file-20260315202517998.png
后台用root,或者administrator@pgs.cup都可以成功进
但似乎这里没啥信息
来看看集群管理界面:https://vcsa.pgs.cup
administrator@pgs.cup进来
assets/2025盘古石杯决赛/file-20260315203945294.png

第一次见,学习下VMware vSphere 架构 集中式服务器虚拟化环境

1. **“大管家”(vCenter Server)**:就是您现在截图里看到的这个系统。它是整个集群的**指挥中心**(控制面),负责统筹管理下面所有的物理机和虚拟机。
2. **“宿主机”(ESXi 物理服务器)**:这是真正在机房里消耗电力的**硬件服务器**(数据面),它们接受 vCenter 的统一调度,提供 CPU、内存和存储资源。
3. **“业务机”(子级虚拟机)**:这就是跑在各个 ESXi 物理机上的具体业务系统(如网站服务器、数据库、OA办公系统等)。

**这里有一个取证中非常经典且有趣的“套娃现象”需要您注意:**  
虽然 vCenter 是管理所有 ESXi 物理机的“最高长官”,但 vCenter 它自己(即截图中这个系统),**本质上也是一台虚拟机**,它通常也运行在受它管理的某一台 ESXi 物理机之上。

**针对您作为取证人员的视角,这个层级对应着不同的调查方向:**

- **如果您要查“内鬼/黑客是如何批量破坏或窃取大量服务器的”**:查 **vCenter**(您手头的这个系统),因为所有跨主机的迁移、克隆、快照、删除等高权限操作日志都在这里。
- **如果您要查“某台具体物理服务器怎么断网了,或谁插了随身碟”**:查具体的 **ESXi 物理机**的底层日志。
- **如果您要查“网站怎么被黑的、数据库被谁拖库了”**:查那台特定的**子级虚拟机**的操作系统(Windows/Linux)内部日志。
  1. 找出集群服务器内的集群名?
    Cluster_Pguscup
    assets/2025盘古石杯决赛/file-20260315204109039.png

  2. 找出集群中共有多少台虚拟机?
    7
    assets/2025盘古石杯决赛/file-20260315204234064.png

  3. 找出集群中 vMotion 所用的网段?

  4. 找出集群磁盘组内共存储了多少个 iSO 镜像?

  5. 找出集群内"市场 PC"虚拟机在磁盘组中存储的名称?

  6. 找出管理此集群的服务器 vcsa 的主机名?

  7. 找出 vcsa 的版本号?
    8.0.3.00500
    assets/2025盘古石杯决赛/file-20260316083439625.png
    assets/2025盘古石杯决赛/file-20260316084900530.png

  8. 找出 vcsa 中设置的时间服务器?
    assets/2025盘古石杯决赛/file-20260316084950640.png
    ntp.aliyun.com

  9. 找出 vcsa 每天几点进行备份?
    22:59
    assets/2025盘古石杯决赛/file-20260316085238786.png

  10. 找出 vcsa 管理页面的端口号?
    5480
    assets/2025盘古石杯决赛/file-20260316085340138.png

  11. 找出 vcsa 服务器 web client 登录的账户名?

在 VMware vCenter 环境中,确实有两个容易混淆的 Web 界面:

1. **vCenter Server 管理页面 (VAMI - vCenter Server Appliance Management Interface)**
    
    - **端口:** 通常是 `5480`。
    - **用途:** 用于管理 vCenter Appliance 虚拟机本身的底层设置。例如:网络配置(IP地址、DNS)、系统时间、更新打补丁、系统服务监控、备份和还原 vCenter 数据库等。
    - **登录信息:** 默认用户名通常是 `root`,密码是安装 vCenter 时设置的 OS 密码。
2. **vSphere Web Client (现在的 vSphere Client)**
    
    - **端口:** 通常是 `443` (HTTPS)。
    - **用途:** 这是日常管理虚拟基础架构的主要界面。用于管理虚拟机(创建、删除、开机、关机)、主机(ESXi)、集群、存储、网络等资源。
    - **登录信息:** 默认管理员账号通常是 `administrator@vsphere.local` (如果使用默认域),密码是安装时设置的 SSO 密码。

**总结区分:**

- **找 "5480" 端口:** 如果题目或流量中出现 `5480` 端口,或者路径类似于 `/appliance`,那通常指的是 **vCenter Server 的管理页面 (VAMI)**。
- **找 "443" 端口:** 如果是 `443` 端口,且路径类似于 `/ui` 或者是登录到类似 `/websso/SAML2/...` 的 SSO 认证流程,那通常指的是 **vSphere Web Client**。

administrator@pgs.cup
7. 找出 vcsa 管理的服务器主机的系统版本号?
4.0.0
学习西电wiki的思路:
assets/2025盘古石杯决赛/file-20260316202814310.png
在 vCenter Server 管理页面的"连接"选项卡中编辑访问设置, 激活 Bash Shell
接着使用 ssh 连接 vCenter Server:

ssh -l "administrator@pgs.cup" 192.168.10.100

assets/2025盘古石杯决赛/file-20260316202942185.png
根据提示启动shellassets/2025盘古石杯决赛/file-20260316203055042.png
我想方便点看文件于是用finalshell
assets/2025盘古石杯决赛/file-20260316203947111.png
但发现直接看不到,问问ai
assets/2025盘古石杯决赛/file-20260316204028078.png
输入以下命令后重新连接:

chsh -s /bin/bash root

assets/2025盘古石杯决赛/file-20260316204201320.png
在 /etc/lsb-release 或 /etc/os-release 或 /etc/photon-release 文件中保存着服务器主机的发行版信息:
assets/2025盘古石杯决赛/file-20260316204421183.png
assets/2025盘古石杯决赛/file-20260316204454861.png
不过这些都只能精确到 4.0, 无法精确到答案格式中要求的 4.0.x. 查了一些资料, 看到说如果版本号为 4.0 Rev X 则代表版本为 4.0.X 否则版本号就是 4.0.0.
8. 分析 vcsa 管理的服务器主机的文件系统类型?
vmfs
首先ESXi 本地磁盘默认必须是 VMFS
也可命令查看:

lsblk

assets/2025盘古石杯决赛/file-20260316205921632.png
assets/2025盘古石杯决赛/file-20260316210017847.png
没太看出来

另一思路到esxi里面看文件系统,由于vcsa是用来运维和管理集群的,是个普通的系统+运维的软件,这里的vcsa管理着那个集群,集群的文件系统是vmfs,所以答案是vmfs
assets/2025盘古石杯决赛/dd4adf02ac2842d7d64d57796d4b0568.png


### 到底什么是 VMFS(虚拟机文件系统)?

**专业定义**:VMFS (Virtual Machine File System) 是 VMware 公司专门为存储“虚拟机”而研发的专利级**集群文件系统**。

**通俗理解**:  
您用的 U 盘通常是 FAT32 或 exFAT 格式,Windows 电脑硬盘通常是 NTFS 格式。这些文件系统都有一个致命特征:**同一时间只能有一台电脑去读写它,否则数据就全乱套了**。

但是在企业机房里,多台物理服务器(ESXi)往往连接着同一个存满虚拟机的巨型共享存储柜(SAN)。  
**VMFS 的超能力就是它可以让几十台物理服务器,在同一瞬间,同时往同一块硬盘里写入数据,彼此完全互不干扰。**

**核心界限(取证极其关键!请牢记):**

- **VCSA 内部(你的截图)**:也就是系统里面,用来存系统自己的日志和数据库的,一般是 Linux 的文件系统(如 **ext4** 或 **xfs**)包裹在 LVM 里面。
- **ESXi 物理机外部**:用来存放几十上百个业务虚拟机(比如包含这个 VCSA 自身的虚拟硬盘文件 `.vmdk`)的那个巨大的底层硬盘,它的文件格式才是 **VMFS**。

**总结一下 WP 的问题:**  
那份 WP 说“每个 lvm 卷内均为 vmfs 文件系统”,如果是对着这张 VCSA 的截图说的,那**大概率是写错了或者是概念串位了**。VCSA 的这些 `/storage/...` 目录里面绝对是 ext4/ext3,不可能是 VMFS。VMFS 只存在于 ESXi 宿主的底层硬盘里。

您以后在取证遇到这种情况,只要脑子里有一条线:**管系统的内部配置看 LVM/ext4,揪底层的虚拟硬盘看 VMFS**,思路就彻底通了。这是一个非常好的问题!作为取证人员,彻底搞懂底层存储结构的“界限”,比单纯背命令重要得多。
  1. 找出 vSAN 服务所对应的端口组名称?

assets/2025盘古石杯决赛/file-20260317205802213.png
10. 接上题, 该端口组上行端口数量?
4
assets/2025盘古石杯决赛/file-20260317210526806.png
有四个上行链路,对应四个上行端口
11. 找出 vSAN 集群许可密钥的前 5 位?
MG292
assets/2025盘古石杯决赛/file-20260317210901097.png

注意是集群的许可
12. 找出 vSAN 集群类型?
HCL/延伸集群
assets/2025盘古石杯决赛/file-20260317211528654.png
assets/2025盘古石杯决赛/file-20260317212443069.png
存疑一下,问了下ai,感觉更像延伸集群
assets/2025盘古石杯决赛/file-20260317212531159.png

虚拟机取证
做这里的题需要将整个集群重建起来. 集群使用 vSAN 集群硬盘组, 3 台 ESXi 服务器 + 1 台 vCenter Server 全部搭建起来才能读取硬盘数据. vSAN 搭建起来之后才能访问这部分及之后题目中的几台虚拟机.
需要超级内存,理论大于64g,试试。

assets/2025盘古石杯决赛/file-20260318091023937.png
assets/2025盘古石杯决赛/file-20260318092146714.png
这是因为宿主机打开了VBS,我是win11,系统默认打开VBS(基于虚拟的安全性)
可以win+R输入msinfo32 打开系统信息面版查看

assets/2025盘古石杯决赛/file-20260318093049018.png
学习了西电wiki的方法一和方法二,由于我的是win11家庭版,似乎没有这个选项:"计算机配置—管理模板—系统—Device Guard“

于是用方法二,脚本从底层关闭:

该方案需要在 BIOS 设置中关闭安全启动(secure boot)

运行以下批处理脚本:

@echo off dism /Online /Disable-Feature:microsoft-hyper-v-all /NoRestart dism /Online /Disable-Feature:IsolatedUserMode /NoRestart dism /Online /Disable-Feature:Microsoft-Hyper-V-Hypervisor /NoRestart dism /Online /Disable-Feature:Microsoft-Hyper-V-Online /NoRestart dism /Online /Disable-Feature:HypervisorPlatform /NoRestart mountvol X: /s copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi" bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215} bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X: mountvol X: /d bcdedit /set hypervisorlaunchtype off pause > nul
命名为.bat文件以管理员身份运行后重启
这个时候会看到是否关闭虚拟化安全的提示,均选择是
再开机即可。
assets/2025盘古石杯决赛/file-20260318194919664.png
但是初始的4g运存是不够的,会一直卡在某个服务的加载一直没变化,我们把内存加到8g:

assets/2025盘古石杯决赛/file-20260318200852205.png
assets/2025盘古石杯决赛/file-20260318201020079.png
assets/2025盘古石杯决赛/file-20260318201604417.png
访问管理后台,用之前得到的密码P@88w0rd登陆

  1. 找出该组织域名?
    pgs.cup
    assets/2025盘古石杯决赛/file-20260317212153013.png

  2. 找出 DNS 服务器系统 Build 版本?
    首先找到dns服务器:

在企业 IT 架构中,名为 `AD` 的服务器通常代表 Active Directory(活动目录)域控制器,而它几乎必然同时承担内网 DNS 服务器的角色。主要原因如下:

1. **AD 的绝对依赖性**:Active Directory 域服务高度依赖 DNS。域内的计算机必须通过 DNS 的 SRV 记录才能定位到域控制器(DC)来进行身份验证和登录。没有 DNS,AD 就无法运行。
2. **微软的默认架构**:在 Windows Server 上部署 AD 域服务时,系统会默认并强烈推荐将 DNS 服务器角色与 AD 安装在同一台机器上,并使用“AD 集成区域”来同步 DNS 数据。
3. **环境特征**:从你的截图中可以看到,vCenter 和 ESXi 主机都使用了 `.pgs.cup` 这样的完整域名(如 `esxi2.pgs.cup`)。这说明你的环境中有统一的内部域名管理,而这台 `AD` 虚拟机大概率就是解析 `.pgs.cup` 域名的核心 DNS 服务器。

因此,在运维常识中,看到名为 `AD` 的机器,基本默认它就是这套环境的主 DNS 服务器。涵盖了这两个核心功能。

assets/2025盘古石杯决赛/file-20260318202451711.png
可以看到我的ad近来还是掉的,推测需要把esxi1和3一起启动才能连上
assets/2025盘古石杯决赛/file-20260318205432039.png
全部启动然后连接exsi2,能看到build号:
assets/2025盘古石杯决赛/file-20260318210727031.png
24674464
2. 找出 DNS 服务器系统初始安装时间?

  1. 找出 DNS 服务器 IP?
    192.168.10.99
    assets/2025盘古石杯决赛/file-20260318205714587.png
    任意一台esxi进入后F2进Configure Management Network

  2. 找出 DNS 服务器内自建了多少条 DNS 记录?
    一直连不上虚拟机,找一下问题:
    assets/2025盘古石杯决赛/file-20260323200239128.png
    “物理网络适配器未连接到 Distributed Switch”,发现是没配网卡的原因
    assets/2025盘古石杯决赛/file-20260323201855033.png
    把三个esxi都接上另外两个网络适配器
    assets/2025盘古石杯决赛/file-20260323202007228.png
    assets/2025盘古石杯决赛/file-20260323213509911.png
    assets/2025盘古石杯决赛/file-20260323213615325.png
    assets/2025盘古石杯决赛/file-20260323214941248.png
    assets/2025盘古石杯决赛/file-20260324210607497.png
    assets/2025盘古石杯决赛/file-20260325144448736.png
    真放弃了,加上了数据盘以后每个esxi没有16g内存起不起网络拓扑(我的理解是)
    诶但你先别急,当绝望的准备关掉关掉全部都关掉的时候,发现似乎关掉一台,另外两台的机器连上了,有四台虚拟机可以用了,原来确实是内存的问题,试着继续做吧:assets/2025盘古石杯决赛/file-20260325145206633.png
    assets/2025盘古石杯决赛/file-20260325145222750.png
    这是我的配置
    目前只有bocai能直接进
    assets/2025盘古石杯决赛/file-20260325145528207.png
    另外两个显示没有支持的主机
    assets/2025盘古石杯决赛/file-20260325145847240.png
    root/3w.panguite.com进入

  3. 找出 DNS 服务器内,主机 ftp 对应的IP地址?

  4. 找出 FTP 服务器内 2025-05-19 12:25:25 上传的文件名?

  5. 找出 FTP 服务器限制访问的 IP 地址?

  6. 找出市场 PC 的磁盘大小?

  7. 找出市场 PC 的系统 build 版本号?

  8. 找出市场 PC 网卡 MAC 地址?

  9. 找出市场 PC 内话术文件,给出 SHA256 的前六位?

  10. 找出市场 PC 内用户 SID 的后 4 位?

  11. 找出财务 PC 系统初始安装时间?

  12. 找出财务 PC 的 IP 地址?

  13. 找出财务 PC 电脑内共保存了几个月的员工工资表?

  14. 找出员工"何燕" 2025 年 2 月的实发工资?

  15. 找出该组织 2025 年 5 月所有人力成本?

会议服务器

  1. 找出系统内核版本号?

  2. 找出会议服务器的 IP 地址?

  3. 找出服务器内设置的 DNS 地址?

  4. 找出老会议系统所用数据库对外映射的端口号?

  5. 找出老会议系统所用数据库 root 密码?

  6. 找出老会议系统用户密码加密方式?

  7. 找出老会议系统用户 admin 密码加密的盐值?

  8. 找出老会议系统中共开过几次会议?

  9. 找出新会议系统包含几个容器?

  10. 找出新会议系统对外映射的 http 端口?

  11. 找出新会议系统用于设置强密码的脚本名?

  12. 找出新会议系统会议协调服务密码的前6位?

  13. 找出郝虎友的电话号码?

  14. 找出该组织总公司位于那个国家?

  15. 找出该组织中国公司财务部门负责人?

网站服务器

  1. 服务器使用的 php 版本时多少?
    8.3.6
    assets/2025盘古石杯决赛/file-20260325150557625.png

  2. 执行自动备份数据库的时间是?
    5:00 am
    grep -rE 'backup|bak|dump|sql' /etc/cron* /var/spool/cron/ /var/spool/cron/crontabs/ 2>/dev/null
    assets/2025盘古石杯决赛/file-20260325151710932.png

  3. 数据库备份脚本中"2027 年 6 月"的备份密钥是多少?

assets/2025盘古石杯决赛/file-20260325152421944.png
来分析这个脚本,发现有混淆加密
解密脚本:

<?php

// 复制你的 $encoded_chunks 数组到这里

$encoded_chunks = [

    'LzBDejhNZldHdzBhVWlyZ2EvOW9STzVMbW1FSm5MdGNsWUdqZzMvelpSdjlEcGprQWlMRXZ6eFNsQWFmd0pqaHM2M2M3NHZiMnAvcm1vcnFNTDIyMnd2Nlh3SUdQcFpkWkxZY0tiK29GRVhicitvdWd1MTRUOXg4T2svSTBKTFovMXA3bjdJZ0QxNUc5clY3OVBRNTlpbDdya20vSzhvVUk0M3Z2cU5ja2ZHeGpPSWRoKzh3WGdjQjZ0TmlUU3JhVUpkeE1QbVZFb2QzYVpvS2lFcSs2V3EvZjFNOEZpOS9qRC9WbWdHUE14ZmJoYk9ETmYyWE5Ed0QzdXBseStiNE5xaHNuSVJYWTd2N2dvaTVBL2gvTnMvTElnWm1HZmhCam0yMzhYVUZSYU0ybW40VTNOZWF0cTcxMTZFSUhCTDZ3eWJRRTcvMGJjZHpZYmFyMHEwOTEvOHVhS0g3OGVta1RmQWhuN2Jwenh1M1R1NkVBODdvN3ZvR1BHS2tuMW5adXVrSHp0TDFqRU1KWGtGTFRNTmp0dE5TbFBNRWNlbjE2WTdaZ0JMY2VZU3F2aW0xNklRdVBLL1VLc3Q5Q3c3T3BCdGtxalBTV2kycFV0SjZMdTVMVFBmaUlJdTJZSk9XdGRxQlZ6UGdhYnMyL2pKLzN5VWIrQ25MS3ovYUs5ekI1emVvdXNtajYyZVM2Zm1PcFFsRGY2S1ZhZUtuaGRPZ0J3WW5rM1lSVEFLVC9oaDhPNVBTQkdaNmxoTDNJYlFqaG92NnhkV0dkM3FZZzVJcmpOZmx2dzhvQTJmbERBM2hucGNxM2pRWkswZTlLMmk5TzltU1lzNDFnN2hrcVRybENocTJVTmFBZlo4TlJXV0NPaU5QWTNSY2ZOcThMbDNXdlBVV1FwWEpqMGNsV0ErazRHZmphdnMwallNOTY1N3JOOW53clpZQjJPNFRQcHZYcWN5SzEweU9MY3lES2ZDL2JlUjNPNGYxd0NzL2NCbU5tUGwyNC9FYUZEVWR5b3VPOHRGZnJuTzREZzZtRHhTRWtZUFdDd3lQTlBEVWZIcFM4OEhrRS9hMUlmOEM1blpEQXBwV2x0aHVONFJzL3hCRVdBblJQNHB1QURrbEV6WGp1M2ZSczYzZHZNNFBoVE4vcnE5cC9ZZUNoVEFraTFISG9POWVlbmhuaVJwanRrMTBJeFpWQ0Y1NnRaL1QrVzlaV0pWUkltTmpoWFU2Zlo2MVBPNUdwQUd3VzhwRHlNR2ZEQXhwUGh1UzhFNXhvWWZNUGFacVNucURrcVF4cEoveEVrRFNHa3gxOEgvNk40MklxUis2N0hkcmRXZFpIUlBIK1JqS3hhbUVQVytYendtb2t5RTJuN2dnOUJYdWgvSkRxWmp6cmlRSzRVeXNUQjF6T2VKSDA0U25oWEZERGZZL29ZVW13bmlTUDlhM04zc0xyV0lxb0plRjFIbXlkZVpibGFLeUhqMUNiQjZid1R4MkZIRlVuUlBoUGNOamppNUNJTkFGV3NYMzVjTFA0MFZvcGIyQi82aW9CbXlXcUpERnNuTFV4OFVLREVLeS9wYXNGR1MvZ2lDdkc1TTk2ZU11aFBVaXpGR0lJZzRad2twRkFxVjl3aDIzdG9mdWFOMnBjQzM1bE5lSjJ0ZlVBSGJ4VnZUZXlYcjFTdGJtbGZEQmJqNzVxQzlEMElmSnRTaXdJeFU1Z3ptaU8vSkM0OS9HK0hTdHNTdUE1ZWJSa291TVJJZi9aSDR0ZmhWTEdoUEFENWdNbENqV2M0VU5FRzkyYlBlS0VQdE5aWCtXUmw5V05aUUp3SkJscDlXMUZ4WURESkk5bkVWZmFrYjNtRkZPMWV5QWFvWWJXVkFsclZlL1BzbDN4VVo4LzlMSkJFeHlnWjM0YVM1MXY1U2dsV3paVjZBOTUwUEF0d0lnZndIUDlWNkw2Z01CbGVsdkNJSVgxKzlPaytaVHVpTlVTdk5iTWNGOXk0d2VIbUNjZUMvVnRHc0JSSDk4cEtEYVZqWG10aTVaU0lKUVpIT29acHRj',

    'THJCWTcvVlpGTm9xQ3p1cElGdmJweVR1aUJTdmN2aUZwMUs3dHNIVHpMWVNEc3FFZlpNRFoxNHhkZHA3Q2Z6eko5VG44em95eSttM29vaHFTZ2dhYVkzSTIzQ1VLVlE4dHV6b3dPcGZCY1JkeFpYcWE3TktGTGVXVkxYYk5wSXl5OHlLTFF0WjVVYzdHSXU4R25nQTl1VStZaklZT3FXMFRrMWlwampCd1NPQkd5VklNRFVOS3BLTTFvVXliMkoyeEMzdXpWdE4yaVhzb2pYa2RVbWR3NmN1bDhWOEdmMmFYTWdaR3J1ZGR6TGNRU3Z2ZjNTNEY0Y09CWnFIZWdqQ1hrbFNBd083ekhtZDNobkk2VDNHR3ovK0FBcStkUENycmZzRzJWdUZ5am56anNmUFV3NmtyTkJYWVl2Rm4wa3M5R0h5OEpHNHpGQjlsK0lEYy9yNlZ4Y3lMQlhDUkx0YnJLdk9YOS9XZzFaeC9BQ2xLTWFBaDlHMmg5V3h2RGp0VWxCVXNYYWRVN1pZelNvYVZodTdtRmw4aUVjK2R2SDR0Vk1jNWtaYnNrMGxZeGFGbDBITEhKYUQ4bzhwNGJoMUU4dmRLQUx0VzQ3RE4wT3VXdVdkdzZQTEh5N0FTdjM5U3JjdzhxVDN5U1FucDJMMERQWWdPSXhZYkcrbjNlY2w3NGdMSyt1TXZHenRDdGVkK3Q3dDY4dERYMDBZS2ZlalY4eDJXUGh2MHRLNFh2OFl1RGEwWStSVVl0akMyL29PWjNibDZjQ3BydlRnUkdvSmdNVi9UZEJZR0swNWh5aFlPeUE3ajdUcXpDUmFVUHc1ekxWa09RMTlJSGc2M1JGdDd3Znh0L3V6bFdDWUw1blZCMmJRQUxidldQVGZrdWlWTzZkdjB4UHl5NWR4WTRSS2FBaGFuby9uSDd6aUNTRjMvcm1ZcnVxL2MyeVVFaS9GT0cra0t1cHM5MUkzcTFxczdvZEs5ZnpDaWp6ck1TRGpUaWQ2Zm9RMXNyM0xuQW5tZWZwZ0hLS3pVdlVLaUNzUUI4dGw4K2NUcGRtYkFySWlEK20rd1ZJaVNyc3NtcnhWTG4vZ25yNGdLb1lKTVd2N1QzK2h4aUdhZnNtUWloMnBvbzcxMTRacXA1UWlmbFMwanNibEE1ZWY5SGVWVExmenF5RHlVcjk1bWlLUW9ockhPb3B1Z0JXbWZ3VjlsSkY0NmVZSzYrUEg3aDdyNmdpUWFnbTU4eVltellVT3JIN2N5NVNVbXQ5S1hlYUZuRDdpZGloNmYxOTBFWDY3bk5hWWNxOG5SZ2hvM1p6Zk1leUdRYnlTU3l4WEVseFZWR0JITnlUU255dmdvbmx0U2NBYVRSOG4zUm9Xa3dWb3lGb1NqOEM0MzRhU1RnOW9vcUl3',

];

// 拼接

$_obfuscated_data = implode('', $encoded_chunks);

// 解密过程

$_decode_layer_A = base64_decode($_obfuscated_data);

$_decode_layer_B = str_rot13($_decode_layer_A);

$_decode_layer_C = strrev($_decode_layer_B);

$_decode_layer_D = base64_decode($_decode_layer_C);

$_original_php_code = gzinflate($_decode_layer_D);

  

// 输出原始PHP代码

echo $_original_php_code;

?>

得到:

php decode.php
/**
 * MySQL加密备份脚本(Docker 容器兼容版)
 * 用途:每周三凌晨5点备份MySQL数据库并使用AES-256-CBC加密
 * 配置为定时任务执行
 */

// 数据库配置(根据实际环境修改)
$db_config = [
    'container' => 'www-db-1',         // 容器名
    'username'  => 'skm2332',
    'password'  => 'skm2332',
    'database'  => 'skm2332',
];

// 备份设置
$backup_dir     = dirname(__FILE__) . '/data/db_backups/';  // 备份目录
$date_format    = 'Y-m-d_H-i-s';
$backup_file    = $backup_dir . 'db_backup_' . date($date_format) . '.sql';
$encrypted_file = $backup_file . '.enc';
$log_file       = $backup_dir . 'backup_log.txt';

// 创建备份目录(如果不存在)
if (!file_exists($backup_dir)) {
    mkdir($backup_dir, 0755, true);

    // 创建.htaccess文件禁止Web访问
    file_put_contents($backup_dir . '.htaccess', "Order allow,deny\nDeny from all");
}

// 记录开始时间
logMessage("开始备份数据库: {$db_config['database']}");

// 设置内存限制
ini_set('memory_limit', '512M');

// 获取加密密钥(按月生成)
function getEncryptionKey() {
    $base_key = 'cmf_backup_key_' . date('Ym');
    return hash('sha256', $base_key, true);
}

// 写入日志函数
function logMessage($message) {
    global $log_file;
    file_put_contents($log_file, "[" . date('Y-m-d H:i:s') . "] $message\n", FILE_APPEND);
}

// 执行备份(通过 docker exec 运行 mysqldump)
function backupDatabase($config, $output_file) {
    $cmd = sprintf(
        'docker exec %s sh -c "mysqldump -u%s -p%s --opt --skip-lock-tables --no-tablespaces --default-character-set=utf8mb4 %s" > %s',
        escapeshellarg($config['container']),
        escapeshellarg($config['username']),
        escapeshellarg($config['password']),
        escapeshellarg($config['database']),
        escapeshellarg($output_file)
    );

    logMessage("执行命令: $cmd");
    exec($cmd, $output, $return_var);
    return $return_var === 0;
}

// 分块加密文件(避免内存溢出)
function encryptFile($input_file, $output_file, $key, $log_file) {
    if (!file_exists($input_file)) {
        logMessage("错误: 备份文件 '$input_file' 不存在");
        return false;
    }

    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));

    $input_handle = fopen($input_file, 'rb');
    $output_handle = fopen($output_file, 'wb');

    if (!$input_handle || !$output_handle) {
        logMessage("无法打开文件进行加密");
        return false;
    }

    fwrite($output_handle, base64_encode($iv)); // 先写入 IV

    while (!feof($input_handle)) {
        $plaintext = fread($input_handle, 8192); // 每次读取 8KB
        $ciphertext = openssl_encrypt($plaintext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
        fwrite($output_handle, base64_encode($ciphertext));
        $iv = substr($ciphertext, 0, 16); // CBC 模式下,IV 更新为上一块的前16字节
    }

    fclose($input_handle);
    fclose($output_handle);

    logMessage("备份文件已加密: " . basename($input_file) . " -> " . basename($output_file));
    return true;
}

// 清理旧备份(保留30天内的)
function cleanOldBackups($dir, $days_to_keep = 30) {
    $files = glob($dir . '*.sql.enc');
    $now = time();

    foreach ($files as $file) {
        if (is_file($file) && ($now - filemtime($file)) > $days_to_keep * 86400) {
            if (unlink($file)) {
                logMessage("已删除过期备份文件: " . basename($file));
            }
        }
    }
}

// 主流程
try {
    if (!backupDatabase($db_config, $backup_file)) {
        throw new Exception("数据库备份失败");
    }

    logMessage("数据库备份成功: " . basename($backup_file));

    $key = getEncryptionKey();
    if (!encryptFile($backup_file, $encrypted_file, $key, $log_file)) {
        throw new Exception("加密失败");
    }

    unlink($backup_file);
    logMessage("已删除未加密的备份文件: " . basename($backup_file));

    cleanOldBackups($backup_dir, 30);
    logMessage("备份完成");

    echo "✅ 数据库备份和加密已完成。\n";

} catch (Exception $e) {
    logMessage("❌ 错误: " . $e->getMessage());
    echo "❌ 错误: " . $e->getMessage() . "\n";
}

可看到生成密钥逻辑:// 获取加密密钥(按月生成)
function getEncryptionKey() {
$base_key = 'cmf_backup_key_' . date('Ym');
return hash('sha256', $base_key, true);
}
让ai写个脚本:

<?php

$base_key = 'cmf_backup_key_202706';

echo hash('sha256', $base_key);

?>

输出:
6863bd7f968ad31a7f389843845688bf2bca0832ff4460df41736465aa619dbf

  1. 备份数据库中"充值 0.41640026BTC"的用户 id 是什么?
    根据刚才解密出来的备份脚本内容,数据库备份文件的保存位置如下:
<?php

$backup_dir     = dirname(__FILE__) . '/data/db_backups/';  // 备份目录

$date_format    = 'Y-m-d_H-i-s';

$backup_file    = $backup_dir . 'db_backup_' . date($date_format) . '.sql';

$encrypted_file = $backup_file . '.enc';

于是到/opt/www/data/db_backups/目录下
assets/2025盘古石杯决赛/file-20260325162550917.png
可看到这个备份大小是0,一看日志备份失败assets/2025盘古石杯决赛/file-20260325162616199.png
得到三个信息:
数据库名称skm2332
数据库用户名/密码skm2332 / skm2332
数据库运行在 Docker 容器:容器名为 www-db-1
assets/2025盘古石杯决赛/file-20260325162859650.png
随手翻了下日志似乎看到博彩网站的后台和登录账密...

根据之前的脚本,密钥派生规则是:
$key = hash('sha256', 'cmf_backup_key_' . date('Ym'), true)

算出SHA-256的32字节原始密钥(hex为abe74a67558cdc535e1127cf9d1c4177b064ca107a9794c01d29f281ae23173d
解密代码:

import base64
from Crypto.Cipher import AES

def decrypt_full_file(enc_file, out_file, key_hex):
    # 读取整个加密文件
    with open(enc_file, 'rb') as f:
        enc_data = f.read()
    # 前24字节是base64(IV)
    iv = base64.b64decode(enc_data[:24])
    # 后面全是base64(ciphertext)
    ciphertext = base64.b64decode(enc_data[24:])
    key = bytes.fromhex(key_hex)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    plaintext = cipher.decrypt(ciphertext)
    # 去除PKCS7填充
    pad_len = plaintext[-1]
    if pad_len > 0 and pad_len <= 16:
        plaintext = plaintext[:-pad_len]
    with open(out_file, 'wb') as f:
        f.write(plaintext)
    print('解密完成,输出文件:', out_file)

if __name__ == '__main__':
    enc_file = 'db_backup_2025-05-16_11-33-41.sql.enc'
    out_file = 'db_backup_2025-05-16_11-33-41.sql'
    key_hex = 'abe74a67558cdc535e1127cf9d1c4177b064ca107a9794c01d29f281ae23173d'
    decrypt_full_file(enc_file, out_file, key_hex)

assets/2025盘古石杯决赛/file-20260325181703054.png
assets/2025盘古石杯决赛/file-20260325181650443.png

assets/2025盘古石杯决赛/file-20260325183706176.png
前后的数据比对一下格式就会发现id是:
47332

  1. 备份数据库中网站支付方式有几种?
    3
    忙猜一下支付宝,看到pay_type然后得到3种
    assets/2025盘古石杯决赛/file-20260325184326860.png
您感觉非常敏锐!这确实是 VCSA(vCenter Server Appliance)的一个经典限制问题,您找对方向了。

问题的原因在于:VCSA 系统出于安全考虑,默认给 root 用户分配的是一个受限的“设备 Shell”(Appliance Shell),而不是标准的 Linux Bash Shell。 虽然您在上面的命令行里输入了 `shell` 命令,成功切换到了标准的 Bash 模式(也就是您看到的 `root@vcsa [ ~ ]#`),但这**仅仅改变了当前的这个命令行窗口**。

FinalShell 下方的“文件目录”实际上是在后台通过 SFTP 协议建立的另一个连接。因为 root 用户的**默认** Shell 依然是那个受限的设备 Shell,导致这个后台的 SFTP 连接被拒绝或无法解析路径,所以无论你怎么刷新,下方都是空白的。

要解决这个问题,我们需要修改 root 用户的**默认 Shell**。

### 解决步骤

请在您现在的命令行窗口(`root@vcsa [ ~ ]#` 这个状态下)执行以下操作:

**第一步:更改默认 Shell 为 Bash** 输入以下命令并按回车:

Bash

chsh -s /bin/bash root


_(这个命令的意思是:Change Shell,将 root 用户的默认登录环境永久修改为标准的 /bin/bash)_

**第二步:断开并重新连接**

1. 关闭当前在 FinalShell 中的这个 VCSA 会话标签页。
    
2. 在 FinalShell 的连接管理器中,双击您的 VCSA 服务器**重新连接**。
    

重新连接后,您不仅登录时会直接进入 `root@vcsa [ ~ ]#` 状态(不需要再手动输入 `shell`),而且下方的文件目录应该也能瞬间加载出 Linux 的系统文件夹了。

vcsa集群管理节点无法查看目录解决方法如上)
6. 网站上有一个自毁程序, 请问自毁程序的运行密钥是多少?
这里本来想在finalshell里吧网站目录考下来扫一下,卡死了两次换个思路把虚拟机考下来分析
assets/2025盘古石杯决赛/file-20260325202407554.pngassets/2025盘古石杯决赛/file-20260325202414935.png
assets/2025盘古石杯决赛/file-20260325202759625.png
在vcsa的client端能下载,但是很慢,想想从文件系统解决的办法:
暂时无,个人的理解是esxi12挂起来形成的vsandatastore目录,无法直接文件系统层次分析。

注意到网站目录下有个1.sh,看起来很可疑,其记载的时间刚好在备份后,分析下这段内容是典型的OpenSSL加密输出(以U2FsdGVkX1开头),通常是用openssl enc命令加密后的结果,但是没有找到解密逻辑和密钥
assets/2025盘古石杯决赛/file-20260327094405517.png
(# vscode如何让文本超出屏幕自动换行)
assets/2025盘古石杯决赛/file-20260327094316887.png
7. 容器启动过程中运行的第一个程序是什么?
docker-entrypoint.sh
assets/2025盘古石杯决赛/file-20260327094848086.png
/var/lib/docker/containers/目录下找到对应容器的文件夹看config.v2.json
assets/2025盘古石杯决赛/file-20260327095137630.png
可以在文件中的 "Path" 字段和 "Entrypoint" 字段看到:

  • "Path": "docker-entrypoint.sh"
  • "Entrypoint": ["docker-entrypoint.sh"]
    这就是容器启动的第一个程序
    也可以直接在网站目录下看dockerfile
  1. 管理员登陆密码的加密方法是什么?
    "###"+md5(22GtFeAKH41xK7NS9h+md5("password"))

/var/www/html/app/admin/controller/PublicController.php
这个路径很常见于国产PHP框架(如ThinkPHP、ThinkCMF等)项目中

  • /app/admin/controller/:通常存放后台管理相关的控制器代码。
  • PublicController.php:经常包含登录、注册、验证码等“公开”接口的逻辑。

docker cp 50fff335f0cc:/var/www/html/app/admin/controller/PublicController.php /root/PublicController.php
从容器中把文件拷到虚拟机里,在考到windows上
刷新一下就能看到

assets/2025盘古石杯决赛/file-20260327105853720.png
assets/2025盘古石杯决赛/file-20260327110433549.png
其实直搜更快,还找到了容器文件夹assets/2025盘古石杯决赛/file-20260327112001839.png
去查找 cmf_compare_password 或 cmf_password 这两个函数的定义和实现位置。
在容器里面执行grep语句
grep -rn "cmf_compare_password" /var/www/html
最后看到
/var/www/html/simplewind/cmf/common.php:217:function cmf_compare_password($password, $passwordInDb)
说明是全局函数,去common.php中查看
assets/2025盘古石杯决赛/file-20260327112831645.png
在火眼里面路径不太一样搜一下能找到
assets/2025盘古石杯决赛/file-20260327113152219.png
cmf_compare_password 会根据 user_pass 的前缀判断用新旧哪种加密方式("###"为新版,否则为旧版),并调用 cmf_password 或 cmf_password_old 进行加密比对。
assets/2025盘古石杯决赛/file-20260327170239969.png
是新版:
新版加密逻辑(即 cmf_password)如下:

  1. 获取加密用的 authCode(如果未传入,则取 config/database.php 里的 authcode 配置)。
  2. 对明文密码 $pw 先做一次 md5。
  3. 用 authCode 拼接上一步的 md5,再做一次 md5。
  4. 最终结果前加 "###" 前缀。

assets/2025盘古石杯决赛/file-20260327170829215.png
即"###" . \text{md5}(\text{authCode} . \text{md5}(\text{明文密码}))

  1. 管理员登陆密码的盐值是多少?
    22GtFeAKH41xK7NS9h
    如上题

  2. 后台管理登陆目录?
    admin/public/loginnaknvajvnlassanjx
    见第四题

  3. 分析网站源码, 理解其多级分佣算法, 并计算在一笔 100 元交易中, 一个 5 级推荐链最多能获得多少佣金?
    尝试仿真网站,把mysql启起来,看到mysql是另外一个容器,但是启动时报错,在指定位置找不到sql文件assets/2025盘古石杯决赛/file-20260327182156732.png把之前得到的备份数据库导入,再修改docker-compose.yml
    assets/2025盘古石杯决赛/file-20260327181459153.png
    改成导进来的备份数据库的名字,docker-compose up -d重启服务(在docker-compose.yml所在目录下)
    assets/2025盘古石杯决赛/file-20260327182648565.png
    重启以后assets/2025盘古石杯决赛/file-20260327182938190.png

密码在之前的yml文件里能看到:assets/2025盘古石杯决赛/file-20260327184027550.png
root
发现服务器起来了(http):assets/2025盘古石杯决赛/file-20260327185926393.png
但是用之前看到的mng+123123进不去,改一下密码:###ac74b822c0ec74b7cc99a59b6f8c1e01(123456)
assets/2025盘古石杯决赛/file-20260327200216559.png
就可以进来了
11. 签到奖励是多少?
同样改一下user密码,进来点签到,获得0.01USDT

  1. 签到间隔时间是多久?
    1h
    再次点击会显示“下一个小时再来”

  2. 得到签到奖励的用户共有多少?
    9
    在备份的数据库筛选去重

  3. 提现成功的用户有几个?
    1

posted @ 2026-04-02 16:56  Joyooosama  阅读(3)  评论(0)    收藏  举报
https://music.163.com/song?id=386828&uct2=U2FsdGVkX19eM5HPEPY7pt5CXA/ptd8B1ozZTWITVag=