2026獬豸杯wp

新手小白记录一下学习电子取证的历程,重点在学习和坚持,写wp也参考了其他师傅的解题思路,欢迎各位师傅的指正与交流。

一.手机部分

1.请分析检材1:手机的序列号是什么?

火眼工具没有找到,只能问AI去哪个位置能找到

安卓的手机序列号可以从系统属性、启动参数、内核日志、厂商属性文件、取证报告/设备信息表查看

1. 系统属性快照(serialno翻译过来就是序列号)

ro.serialno

ro.boot.serialno

persist.sys.serialno

persist.sys.oplus.serialno

于是直接在filelocator里面暴力搜索

2. 内核日志 / 启动日志

很多手机会在启动参数里带序列号,关键词通常是:

serialno=

ro.boot.serialno

androidboot.serialno

常见文件:

/adb/ksu/log/dmesg.log

/adb/ksu/log/dmesg.old.log

/adb/lspd/log/kmsg.log

/adb/lspd/log.old/kmsg.log

/debuglogger/mobilelog/.../kernel.log

/proc/cmdline

2.请分析检材1:该手机的具体型号是什么?

同样的问了一下关键词应该搜索什么? ● Android 手机具体型号一般查 系统属性,重点看这些字段:

ro.product.model

ro.product.marketname

ro.product.name

ro.product.device

ro.product.brand

ro.product.manufacturer

最常用的搜索安卓的机型就是搜“model”和“marketname”

搜索到了一加Ace5至尊版

3.请分析检材1:手机中已删除的联系人手机号码是什么?

我这里是直接用工具看的

13696966666

也有手搓的办法:

一般查看已删除联系人手机号,重点看 Android 的联系人数据库:

基础知识:contacts2.db是Android(安卓)系统用来存储用户联系人核心数据的 SQLite 数据库文件。

/data/data/com.android.providers.contacts/databases/contacts2.db

因此直接搜索contacts.db即可,查看数据库,找到deleted即可

4.请分析检材1:手机中找到密码本文件,计算其MD5哈希值,取后6位,字母大写。

直接在文件里面暴力搜索“密码”找到密码本文件

计算一下MD5值:AD3563

5.请分析检材1:嫌疑人下载的图片隐写工具名称是什么?

在文件里面搜索download,查看一些download文件夹,发现一个做misc比较熟悉的一个软件steghide

这里基本上可以锁定就是这个工具了

这里由于我是小白,不妨学习一下这个工具的使用方式以及参数

steghide主要的思路就是将一份文件融合进一张图片里面,然后需要密码解开,以下是常用命令结构

查看图片里是否有隐写内容 steghide info -sf important.jpg 如果需要密码: steghide info -sf important.jpg -p JHTJ@202605 --- 提取隐藏文件 steghide extract -sf important.jpg -p JHTJ@202605 指定输出文件名: steghide extract -sf important.jpg -p JHTJ@202605 -xf output.z01 --- 把文件隐藏进图片 steghide embed -cf cover.jpg -ef secret.txt -p password 意思是: 把 secret.txt 隐藏进 cover.jpg,密码是 password

这里出题人明显还是心软了,因为直接将爆破密码告诉了我们,现在只需要找到正确的图片

觉得肯定是在在相机的10张照片里面,一开始以为是最后一个二维码,试了一下发现不对

是左边那张文件名为important.jpg,这里出题人就在暗示这个应该是目标图片

steghide.exe extract -sf important.jpg

-sf的意思是已经藏了文件,extract -sf就是提取隐藏文件

然后就是密码爆破环节,用AI写了个脚本

#!/usr/bin/env python3 import os import subprocess image = r"D:\CTF\图片隐写\steghide\important.jpg" wordlist = r"D:\CTF\图片隐写\steghide\常用密码.txt" steghide_path = r"D:\CTF\图片隐写\steghide\steghide.exe" if not os.path.exists(image): print(f"[-] 找不到图片文件:{image}") exit() if not os.path.exists(wordlist): print(f"[-] 找不到密码字典:{wordlist}") exit() if not os.path.exists(steghide_path): print(f"[-] 找不到 steghide:{steghide_path}") exit() print("[*] 开始爆破 Steghide 密码...") with open(wordlist, "r", encoding="utf-8", errors="ignore") as f: for idx, line in enumerate(f, 1): password = line.strip("\ufeff\r\n\t ") if not password: continue print(f"[{idx}] trying: {password}") result = subprocess.run( [steghide_path, "info", "-p", password, image], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, input="y\n" ) output = result.stdout if "embedded file" in output: print("\n[+] 找到密码:", password) print(output) break else: print("[-] 字典已尝试完毕,没有爆破成功")

结果是:JHTJ@202605

中间写脚本的时候遇上了跟steghide版本不兼容的时候,之前写的参数的顺序有点问题,以下是正确顺序

[steghide_path, "info", "-p", password, image]

6.请分析检材1:嫌疑人使用隐写工具进行文件隐写密码是什么?

见上题,JHTJ@202605

7.请分析检材1:嫌疑人向数据贩子购买公民个人信息共计多少条?

根据工具发现了历史下载里面有个加密的压缩包——数据.zip

于是现在主要任务就是找数据的密码

从下面的题目提示,可以看出应该是要找到聊天数据库里面的信息

一般在数据库里面,搜索一下关键词message/msg这些(我承认有赌的成分)

得到关键聊天信息

基本上有好多题可以直接秒了,此题答案100

8.请分析检材1:嫌疑人向数据贩子交易时使用的付款方式是什么?

见上下文,银行卡

9.请分析检材1:数据贩子交易过程中提供的银行卡号是多少?

见上下文,6222355973482923738

10.请分析检材1:接上题,嫌疑人所使用聊天工具的用户 ID 是多少?

这里我这边认为就是他的电话17706223971,当然有不同意见可以一起讨论一下

11.请分析检材1:嫌疑人使用浏览器访问了该下载链接,该浏览器对应的包名是什么?

查看apk的软件包,直接搜索浏览器,发现共有三个浏览器

依旧去文件中心分别查看一下每个浏览器的下面的文件

浏览之后发现,只有这个浏览器里面是由下载的任务的,所以可以锁定是com.meiit.browser

12.请分析检材1:嫌疑人于何时下载数据商人发送的数据压缩包文件?

这里也是工具直出的,正确率存疑

2026-05-12 17:00:05

13.请分析检材1:接上题,该压缩包的解压密码是什么?

见上下文,是嫌疑人电话17706223971

14.请分析检材1:接上题,年龄在 40 至 60 岁(含 40、60 岁)的富豪共有多少人?【答案格式:123】

解压出来之后,筛选一下46

15.综合分析:请找出嫌疑人筛选的重点客户名单,并统计名单内共有多少人?【答案格式:1】

接上题,由于我们只找到z01这一个分卷ZIP,自然而然想到其中一种解法就是去找全它的全卷然后解压缩,但是遗憾的是在手机的检材里面并未找到全卷的信息

ps:做到后面的题目可以发现是在计算机的检材里面,所以这里我们就不过多说明这一种解法。

我们将z01的后缀名改成zip,发现里面确实藏着一个xlsx后缀的名单文件,不过是被破坏的,于是我们想办法如何提取出来

由于.xlsx的本质也是个压缩包zip,里面是由很多xml文件构成的,所以即使我们打不开整个xlsx,我们可以根据一些字段的名称和内容,就能还原xlsx表格的全貌

重点客户.xlsx

├── [Content_Types].xml

├── _rels/.rels

├── docProps/

├── xl/

│ ├── workbook.xml

│ ├── sharedStrings.xml

│ ├── styles.xml

│ └── worksheets/

│ └── sheet1.xml

常见的xlsx的结构如上所示

这里也是参考了其他师傅的做法,先修复整个zip

因为分卷的缘故,所以是没有完整的末尾的中央目录,所以这里用zip -FF的作用是根据现有内容重新建一个新的中央目录,然后输出为fixed.zip,变相的修复了这个残缺的zip文件

zip -FF 重点客户.z01 --out fixed.zip

目的是为了得到.xlsx里面的sharedStrings.xml和sheet1.xml

然后用7z这个工具进行暴力解压两次

7z x fixed.zip --ofixed_out

然后将解压得到的.xlsx文件进一步的解压

7z x ~.xlsx --ofixed_out2

于是得到xml的文件

查看sharedstrings.xml,可以得到一共有5个人