不会的还是太多了,根据网上佬们的wp好好复现一下吧 (又来吃百家饭了)

手机取证

1

分析手机镜像,请问机身的Wi-Fi 信号源的物理地址是什么?[标准格式:01:02:03:04:05:06]

在/misc/wifi/WifiConfigStore.xml中可找到

img

00:db:60:6e:86:13

2

分析手机镜像,请问张大的手机号码尾号是3807的手机号码是多少?[标准格式:15599005009]

全局搜索

img

15680193807

3

分析手机镜像,分析手机镜像,其通讯录中号码归属地最多的直辖市是哪里?[标准格式:天津市]

排个序不难发现明显北京市最多

img

北京市

4

分析手机镜像,嫌疑人最近卸载过的的一款小说APP的名字是什么?[标准格式:com.tencent.mm]

查看包的缓存/system/package_cache/1,找到有个com.kmxs.reader未在APP列表中出现

img
img

七猫免费小说

5

分析手机镜像,嫌疑人使用“逐浪小说”应用最近一次搜索小说书名叫什么?[标准格式:斗破苍穹]

可以看到手机上有个小黄鸟,这是个抓包工具,找到其数据库并导出

img

过滤出逐浪APP最新的一条搜索记录

img
img

从斗罗开始无敌

6

分析手机镜像,嫌疑人曾使用“QQ浏览器”使用过的搜索关键词有几个?[标准格式:1个]

过滤出相应的包,其中URL的keyword后面就是搜索的关键词

img

去重一下,提取出来共27条

img

27

7

分析手机镜像,嫌疑人曾经安装过的一款AI软件登录的用户名是什么?[标准格式:用户123456]

在前面的package_cache里面还可以找到有个com.larus.nova,同样也是被删除了的app,搜索后得知这是豆包AI

过滤出相关且用户登陆状态为1的记录,可以得到用户的uid

img

根据给出的答案格式用正则表达式进行全局暴搜

1
2
1197846826330169.*用户
用户.*1197846826330169
img

用户885861

8

接上问,嫌疑人在此AI软件中最后一次提问的内容是什么?[按照实际值填写]

在上题暴搜到的记录中可以零碎的看到一些与AI之间的问答内容

img

这个是响应包,根据其文件名找到对应的请求包

img

在数据库中搜索含有这个路由的URL,并按照时间排序

img

用session id搜索最新的那一条,找到其响应包

img

小说爬取设计侵权吗

9

分析手机镜像,嫌疑人花费多少元购买小说网站源码?[标准格式:2000]

电鸽聊天记录里面有提到

img

1300

10

接上问,嫌疑人购买的小说网站源码的MD5值后六位是什么?[标准格式:12a34b]

导出上题中看到的源码计算MD5

img

d9ed2d

11

分析手机镜像,嫌疑人的虚拟钱包地址是什么?[按照实际值填写]

聊天记录中可以看到对方的账户

img

在区块链浏览器上查询,找到交易时间内的交易记录

img

0x2a80985eea4283fdebddc5ec25c15d8cb5bcc09f

12

分析手机镜像,嫌疑人购买视频网站源码花费了多少USDT?[标准格式:500]

根据上题聊天记录

1000

13

分析手机镜像,其接受过一个远控木马程序(exe),请问其MD5值后六位是多少?[标准格式:12a34b]

同样在前面的聊天记录中可以找到

img
img

e4a090

14

接上题,该exe使用了哪种压缩方式?[标准格式:TAR]

img

UPX

15

接上题,该exe使用的压缩方式修改了几处特征?[标准格式:5]

明显UPX被改为了VMP

img

3

16

接上题,该exe外联的端口号是多少?[标准格式:3306]

上面的三处改回去以后upx脱壳

img

逆向一下可以看见端口是4444

img

4444

17

接上题,该exe会搜索并加密几种类型的文件?[标准格式:5]

img

3

18

接上题,该exe会释放一个新的exe,请问新的exe是用哪种编程语言编写的?[标准格式:php]

用resource hacker可以看到有个exe

img

到处以后这个程序直接就是python的图标

python

19

接上题,释放出的exe使用的邮件服务器的授权码是?[标准格式:scxcsaafas]

python逆向

img

找到test.pyc,反编译一下

img

qycirqwzxogjdgbh

20

分析手机镜像,嫌疑人发布的抖音作品是参考哪篇文学巨著生成的?[标准格式:三国演义]

在kimi的对话中可以看到

img

钢铁是怎样炼成的

21

分析手机镜像,嫌疑人通过抖音发布了几个作品?[标准格式:6]

直接找到这个用户

img

2

22

接上题,作品ID为 7564293625007115554 的观众浏览量为几次?[标准格式:5]

全局暴搜这个ID

img

导出这个文件,在其中搜索这个ID,附近找到play_count

img

23

23

分析手机镜像,嫌疑人相册中的图片为其非法所得(不考虑重复),请分析其总收益为多少元?[标准格式:12345]

找到这些图片

img

手动全部加起来

6577

24

分析手机镜像,嫌疑人电脑的开机密码是多少?[按照实际值填写]

img

qwe321@@@

计算机取证

25

分析Windows检材,PowerShell中多少个命令关联URL地址(不去重)?[标准格式:123]

img

5

26

分析Windows检材,VeraCrypt加密容器密码是什么?[标准格式:根据实际值填写]

win+v查看剪贴板

img

UJw4FspAsmNVRACWf4GQazvd

27

分析Windows检材,加密容器中“密码本.txt”文件的SHA-256哈希值后6位是多少?[标准格式:全大写]

可以找到有个1.png,看起来是个VC容器

img

把磁盘添加到火眼,能直接分析出有个被删除的文件密码本.txt

img
img

8E3FC7

28

分析Windows检材,接上题,根据“密码本.txt”文件对账单数据压缩包进行解密,其密码是多少?[标准格式:根据实际值填写]

字典爆破

img

VteGElLDQu

29

分析Windows检材,接上题,分析其账单数据中哪个类别的金额最多?[标准格式:根据实际值填写]

让AI写个脚本

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import os
import pandas as pd
from datetime import datetime


# 生成从 2023-01 到 2025-06 的所有月份字符串
def generate_month_range(start, end):
start = datetime.strptime(start, "%Y-%m")
end = datetime.strptime(end, "%Y-%m")
months = []
current = start
while current <= end:
months.append(current.strftime("%Y-%m"))
if current.month == 12:
current = current.replace(year=current.year + 1, month=1)
else:
current = current.replace(month=current.month + 1)
return months

# 获取所有需要处理的文件名
months = generate_month_range("2023-01", "2025-06")
files = [f"{month}.xlsx" for month in months]

# 汇总所有数据
all_data = []

for filepath in files:
if os.path.exists(filepath):
try:
df = pd.read_excel(filepath, engine='openpyxl')
# 确保有必要的列
if '项目' in df.columns and '金额' in df.columns:
all_data.append(df[['项目', '金额']])
else:
print(f"⚠️ 跳过 {file}:缺少必要列")
except Exception as e:
print(f"❌ 读取 {file} 出错: {e}")
else:
print(f"📁 文件不存在: {file}")

# 合并所有数据
if not all_data:
print("没有找到有效数据。")
else:
combined_df = pd.concat(all_data, ignore_index=True)

# 按“项目”分组求和
summary = combined_df.groupby('项目')['金额'].sum().sort_values(ascending=False)

# 输出结果
print("\n📊 各项目总金额排名(从高到低):")
print(summary.to_string())

# 输出金额最多的类别
top_category = summary.index[0]
top_amount = summary.iloc[0]
print(f"\n🏆 金额最多的类别是:{top_category},总计:{top_amount:.2f}")
img

小说网站

30

分析Windows检材,Bitlocker的恢复密钥前6位是什么?[标准格式:123456]

前面的1.png同一目录下的3.png高被修改过,改回去得到bitlocker密钥

img
img

541079

31

分析Windows检材,嫌疑人使用的Windows激活工具的版本是什么?[标准格式:v10.1.1]

img

v4.2.8

32

分析Windows检材,嫌疑人电脑中安装的加密软件(非VeraCrypt)版本是多少?[标准格式:1.2.3]

img

1.17.1

33

分析Windows检材,接上题,该加密软件恢复秘钥文件最后一个单词是什么?[标准格式:根据实际值填写]

太阴了,后面还有被涂成白色的隐藏内容

img

accent

34

分析Windows检材,mysql的数据库路径是什么?[标准格式:C:.26]

看到装了个phpstudy,那多半就是这个了

D:_pro.26

35

分析Windows检材,数据库中novel_id为3的爬虫代码其爬取的网站域名地址是什么?[标准格式:https://www.baidu.com]

用前面的道德恢复密钥重置一下cryptomator的密码,然后解密磁盘,里面都是爬虫脚本

找到url

img

https://www.shuzhige.com

36

分析Windows检材,对比数据库与爬去小说数据,数据库中缺少的小说其共有多少章节?[标准格式:123]

img
img

3

37

分析Windows检材,嫌疑人爬取的小说共有多少汉字(包括繁体汉字,不计标点符号)?[标准格式:123]

写脚本计算

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

def countt(path, max_chapter):
total_count = 0
chinese_pattern = re.compile(r'[\u4e00-\u9fff\u3400-\u4dbf\U00020000-\U0002a6df\U0002a700-\U0002b73f\U0002b740-\U0002b81f\U0002b820-\U0002ceaf]')

for i in range(1, max_chapter + 1):
filename = f"第{i:04d}章.txt"
filepath = os.path.join(path, filename)
if not os.path.isfile(filepath):
print(f"警告:文件 {filepath} 不存在,跳过。")
continue

try:
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
matches = chinese_pattern.findall(content)
total_count += len(matches)
except Exception as e:
print(f"错误:读取文件 {filepath} 时出错:{e}")
return total_count
print(countt("hongloumeng",120)+countt("liaozhaizhiyi",499)+countt("sanguoyanyi",120)+countt("shuihuzhuan",121)+countt("xiyouji",101))

2946354

38

分析Windows检材,嫌疑人为躲避侵权,将爬取文本中多个不同汉字分别替换成另一些汉字(如“我”→“窝”),分析共有多少个不同汉字被替换(相同字仅计一次)?[标准格式:123]

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os

def is_chinese_char(c):
return '\u4e00' <= c <= '\u9fff'

def compare_files(original_path, replaced_path):
replacements = set()
try:
with open(original_path, 'r', encoding='utf-8') as f1, \
open(replaced_path, 'r', encoding='utf-8') as f2:
content1 = f1.read()
content2 = f2.read()

min_len = min(len(content1), len(content2))
for i in range(min_len):
c1, c2 = content1[i], content2[i]
if c1 != c2 and is_chinese_char(c1) and is_chinese_char(c2):
replacements.add((c1, c2))
except Exception as e:
print(f"警告:无法比较文件 {original_path}{replaced_path},错误:{e}")
return replacements

def main():
original_root = "爬取-原本"
replaced_root = "爬取-替换"

if not os.path.isdir(original_root):
print(f"错误:目录 '{original_root}' 不存在")
return
if not os.path.isdir(replaced_root):
print(f"错误:目录 '{replaced_root}' 不存在")
return

all_replacements = set()

for root, dirs, files in os.walk(original_root):
rel_path = os.path.relpath(root, original_root)
replaced_dir = replaced_root if rel_path == "." else os.path.join(replaced_root, rel_path)

for file in files:
orig_file = os.path.join(root, file)
repl_file = os.path.join(replaced_dir, file)

if not os.path.exists(repl_file):
print(f"警告:在 '{replaced_root}' 中未找到对应文件:{repl_file}")
continue

pairs = compare_files(orig_file, repl_file)
all_replacements.update(pairs)

sorted_replacements = sorted(all_replacements, key=lambda x: x[0])

print(f"共发现 {len(sorted_replacements)} 个唯一的汉字替换对:")
for orig, repl in sorted_replacements:
print(f"{orig}{repl}")

if __name__ == "__main__":
main()
img

5

39

分析Windows检材,对比爬取数据与替换数据,被替换汉字(不去重)数量最多的文件名称是什么?[标准格式:第0001章.txt]

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import os

def is_chinese_char(c):
"""判断是否为常用汉字(CJK Unified Ideographs)"""
return '\u4e00' <= c <= '\u9fff'

def count_replaced_chars_in_file(orig_path, repl_path):
"""返回该文件中被替换的汉字总次数(不去重)"""
count = 0
try:
with open(orig_path, 'r', encoding='utf-8') as f1, \
open(repl_path, 'r', encoding='utf-8') as f2:
content1 = f1.read()
content2 = f2.read()

min_len = min(len(content1), len(content2))
for i in range(min_len):
c1, c2 = content1[i], content2[i]
if c1 != c2 and is_chinese_char(c1) and is_chinese_char(c2):
count += 1
except Exception as e:
print(f"警告:无法处理文件对 {orig_path} / {repl_path},错误:{e}")
return count

def main():
original_root = "爬取-原本"
replaced_root = "爬取-替换"

if not os.path.isdir(original_root):
print(f"错误:目录 '{original_root}' 不存在")
return
if not os.path.isdir(replaced_root):
print(f"错误:目录 '{replaced_root}' 不存在")
return

max_count = -1
max_file_relpath = None

for root, dirs, files in os.walk(original_root):
rel_path = os.path.relpath(root, original_root)
replaced_dir = replaced_root if rel_path == "." else os.path.join(replaced_root, rel_path)

for file in files:
orig_file = os.path.join(root, file)
repl_file = os.path.join(replaced_dir, file)

if not os.path.exists(repl_file):
print(f"警告:在 '{replaced_root}' 中未找到对应文件:{repl_file}")
continue

count = count_replaced_chars_in_file(orig_file, repl_file)
if count > max_count:
max_count = count
# 使用相对于原始根目录的路径作为标识
max_file_relpath = os.path.join(rel_path, file) if rel_path != "." else file

if max_file_relpath is None:
print("未找到任何可比较的文件。")
else:
print(f"被替换汉字数量最多的文件是:{max_file_relpath}")
print(f"共发生 {max_count} 次汉字替换(不去重)。")

if __name__ == "__main__":
main()
img

第0062章.txt

40

分析Windows检材,对比爬取数据与替换数据,是否存在完全没有汉字被替换的文件?若存在,请给出文件的数量;若不存在,请直接填写“否”。[标准格式:123 或者 否]

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os

def is_chinese_char(c):
return '\u4e00' <= c <= '\u9fff'

def has_any_replacement(orig_path, repl_path):
try:
with open(orig_path, 'r', encoding='utf-8') as f1, \
open(repl_path, 'r', encoding='utf-8') as f2:
content1 = f1.read()
content2 = f2.read()

min_len = min(len(content1), len(content2))
for i in range(min_len):
c1, c2 = content1[i], content2[i]
if c1 != c2 and is_chinese_char(c1) and is_chinese_char(c2):
return True
return False
except Exception as e:
print(f"警告:无法比较 {orig_path}{repl_path},错误:{e}")
return False

def main():
original_root = "爬取-原本"
replaced_root = "爬取-替换"

if not os.path.isdir(original_root):
print("错误:'爬取-原本' 目录不存在")
return
if not os.path.isdir(replaced_root):
print("错误:'爬取-替换' 目录不存在")
return

no_replacement_count = 0
total_files = 0

for root, dirs, files in os.walk(original_root):
rel_path = os.path.relpath(root, original_root)
replaced_dir = replaced_root if rel_path == "." else os.path.join(replaced_root, rel_path)

for file in files:
orig_file = os.path.join(root, file)
repl_file = os.path.join(replaced_dir, file)

if not os.path.exists(repl_file):
continue

total_files += 1
if not has_any_replacement(orig_file, repl_file):
no_replacement_count += 1

if no_replacement_count > 0:
print(no_replacement_count)
else:
print("否")

if __name__ == "__main__":
main()
img

26

41

分析Windows检材,嫌疑人使用的默认浏览器名称是什么?[标准格式:Microsoft Edge]

img
img

Ablaze Floorp

42

分析Windows检材,嫌疑人使用的AI网站的端口是多少?[标准格式:123]

img

18480

43

分析Windows检材,嫌疑人使用的AI网站登录密码是多少?[标准格式:根据实际值填写]

由上题

g123123

44

分析Windows检材,嫌疑人利用在线AI模仿创作的小说,其第五章标题是什么?[标准格式:根据实际值填写]

img

长安的回响

45

分析Windows检材,终点小说初步要求嫌疑人赔偿的经济损失金额为多少万元人民币?[标准格式:123]

img

10

46

分析Windows检材,根据律师函要求,嫌疑人最晚须于几月几日(含当日)前向终点小说提交经审核同意的书面致歉函?[标准格式:10月12日]

由上图

10月29日

47

分析Windows检材,嫌疑人NAS映射的盘符是什么?[标准格式:C]

img

Z

48

分析Windows检材,嫌疑人当时正在阅读的小说叫什么名字?[标准格式:三国演义]

这里得把后面的服务器仿真起来

从VM-EXSI Server中提取web-flat.vmdk和nas-flat.vmdk,仿真起来,配一下网段

在nas服务器上用下面的命令修改一下samba用户shadowai的密码

1
smbpasswd -a shadowai

然后就能连上

img

现在可以运行桌面上的NeatReader了,可以看到正在读的小说

img

小年小月

49

分析Windows检材,接上题,嫌疑人当前看到该小说的第几章?[标准格式:第一章]

打开可以看到读到了第五十一章

img

第五十一章

服务器取证

50

请分析Exsi虚拟化平台是什么时候安装的?[标准格式:20250102-101258,年月日-时分秒,北京时间]

img

注意时区,得要再加上8

20251020-142808

51

请分析Exsi虚拟化平台虚拟机使用的ISO镜像大小是多少?[标准格式:2.58,单位:Gigabyte]

img

4.38

52

请分析nas服务器samba应用完整版本标识为?[标准格式:1.18.26-10.el6_5]

img

4.10.16-25.el7_9

53

请分析nas服务器samba应用共享目录允许访问的用户名为?[标准格式:gys666]

img

shadowai

54*

嫌疑人在nas服务器中删除了面板日志,请分析其删除日志后第一次访问服务器的目录物理路径是?[标准格式:/var/soft/wegame]

未知,自己找不到感觉合理的答案,网上也暂无

55

某用户在“2025-10-21 18:40:53(北京时间)”向本地AI模型提问,请问其一共提问了几次?[标准格式:5]

用之前在浏览器里得到的账号密码登录上,下载数据库

img

查看数据库,找到题目要求时间的对话记录

img
img

可以看到用户总共问了两个问题

img 2

56

接上题,第二轮交互总计Token Consumption(令牌消耗)多少个?[标准格式:10]

img

289

57

请分析AI模型在创建时注册的管理员账号的头像显示的数字是?[标准格式:15]

img

2024

58

请分析卡密网站会隔一段时间会自动删除后台管理员登录日志,请问日志最多保存多少小时?[标准格式:10,单位:小时,四舍五入]

查看一下宝塔面板入口

img

修改面板密码

img

登录进去以后看到网站名为kamiworld.info

img

查看网站源码,搜索login相关的文件就可以找到

img

720

到这里虚拟机寄了一次,重新仿真了一下,ip变为了192.168.188.226

59

请分析卡密网站后台管理员登录成功后多少小时内无需重新登录?[标准格式:8,单位:小时]

Login.php被混淆过

img

复制出来,把eval改成echo,把输出粘贴到下面,把前面的echo删掉,再把粘贴内容中的eval改成echo,得到源码,在其中可看到答案为7天

img
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php

namespace app\admin\controller;

use controller\BasicAdmin;
use service\LogService;
use service\NodeService;
use think\Db;
use think\captcha\Captcha;

/**
* 系统登录控制器
* class Login
* @package app\admin\controller
* @author Anyon <zoujingli@qq.com>
* @date 2017/02/10 13:59
*/
class Login extends BasicAdmin
{

/**
* 控制器基础方法
*/
public function _initialize()
{
if (session('user') && $this->request->action() !== 'out' && $this->request->action() != 'verifycode') {
$this->redirect('@admin');
}
}

/**
* 用户登录
* @return string
*/
public function index()
{
if ($this->request->isGet()) {
return $this->fetch('', ['title' => '用户登录']);
}
// 输入数据效验
$username = $this->request->post('username', '', 'trim');
$password = $this->request->post('password', '', 'trim');
$code = $this->request->post('code', '', 'trim');
strlen($username) < 4 && $this->error('登录账号长度不能少于4位有效字符!');
strlen($password) < 4 && $this->error('登录密码长度不能少于4位有效字符!');
if($code == '') {
$this->error('请输入验证码!');
}
$captcha = new Captcha();
if(!$captcha->check($code)) {
$this->error('验证码错误!');
}
// 用户信息验证
$user = Db::name('SystemUser')->where(['username' => $username, 'is_deleted' => 0])->find();
empty($user) && $this->error('登录账号不存在,请重新输入!');
//删除今天零时以前的错误密码登录记录
$start_time = strtotime(date('Y-m-d'));
$end_time = $start_time + 60*60*24 -1;
Db::name('user_login_error_log')->where('login_time<'.$start_time)->delete();
$error_count = Db::name('user_login_error_log')->where(['login_name'=>$username, 'user_type'=>1,'login_time'=>['BETWEEN',[$start_time, $end_time]]])->count();
if($error_count>=sysconf('wrong_password_times')) {
$last_time = Db::name('user_login_error_log')->where(['login_name' => $username, 'user_type'=>1])->order('id DESC')->limit(1)->value('login_time');
if($last_time>0) {
$time = $last_time + 24*60*60 - time();
$time_str = sec2Time($time);
$this->error('输入错误密码超限,账户已被锁定,将于'.$time_str.'后自动解锁!');
}
}
if($user['password'] !== $password) {
$plog['login_name'] = $username;
$plog['password'] = $password;
$plog['user_type'] = 1;
$plog['login_from'] = 1;
$plog['login_time'] = time();
Db::name('user_login_error_log')->insert($plog);
$error_count++;
if($error_count>=sysconf('wrong_password_times')) {
$this->error('登录密码与账号不匹配,您的账号已被锁定,将于24小时后自动解锁!');
} else {
$this->error('登录密码与账号不匹配,请重新输入,您还有'.(sysconf('wrong_password_times')-$error_count).'次机会!');
}
}
empty($user['status']) && $this->error('账号已经被禁用,请联系管理!');
// 更新登录信息
$data = ['login_at' => ['exp', 'now()'], 'login_num' => ['exp', 'login_num+1']];
Db::name('SystemUser')->where(['id' => $user['id']])->update($data);
session('user', $user);
//记住登录7天
session('user_expire_time', time() + 86400*7);
!empty($user['authorize']) && NodeService::applyAuthNode();
LogService::write('系统管理', '用户登录系统成功');
if(!session('google_auth') && sysconf('is_google_auth')) {
if(!($this->request->controller() == 'Auth' && $this->request->action() == 'google')
&&!($this->request->controller() == 'Login' && $this->request->action() == 'out')
&&!($this->request->controller() == 'Login' && $this->request->action() == 'verifycode')
) {
$this->success('登录成功,进行谷歌令牌二次验证...', 'admin/auth/google');
}
} else {
$this->success('登录成功,正在进入系统...', '@admin');
}
}

/**
* 退出登录
*/
public function out()
{
if (session('user')) {
LogService::write('系统管理', '用户退出系统成功');
}
session('user', null);
session('user_expire_time', null);
session_destroy();
$this->success('退出登录成功!', '@index');
}

/**
* 验证码
*/
public function verifycode()
{
$config = [
// 验证码位数
'length' => 4,
// 验证码过期时间
'expire' => 300,
];
$captcha = new Captcha($config);
return $captcha->entry();
}
}

168

60

请分析卡密网站微信接口配置的Appsecret是?[标准格式:字符串,全小写]

在宝塔的软件商店装一下phpmyadmin,然后就可以查看数据库

img

7e8055384f9c4ff5991c46cacd336ad9

61

请分析卡密网站管理员注册了一个商户账号,请问商户编号是?[标准格式:10000]

找到一个与admin邮箱一致的商户账号

img
img

10019

62

接上题,请分析该商户掌灵付微信扫码设置的费率是多少?[标准格式:1%]

重构一下卡密网站

把当前ip添加进域名管理

img

PHP版本改为PHP-70

img

伪静态选一下thinkphp

img

于是就能访问上了

直接访问/admin

img

注意到前面的代码中是if($user['password'] !== $password),因此直接拿数据库中的那个看着像md5的字符串登录就行admin/e10adc3949ba59abbe56e057f20f883e

用户管理-设置费率

img

1.2%

63*

接上题,不考虑平台提现、网关通道费用的情况下,售卖的卡密共计净利多少元?[标准格式:1888.88,单位:人民币]

未知,网上亦暂无解

64

嫌疑人将卡密网站的数据定时备份至远程服务器,请问远程服务器IP为?[标准格式:8.8.8.8]

web服务器的docker还有个青龙面板,直接进入容器看配置文件就能看到答案

img

15.246.23.88

65*

嫌疑人供述web虚拟机储存了一本名为“活在明朝”的小说,已经删除忘记怎么恢复了,请找到该小说并分析一共有多少章?[标准格式:100]

未知,网上亦暂无解

66*

接上题,小说是什么时候删除的?[标准格式:20250102-101258,年月日-时分秒,北京时间]

未知,网上亦暂无解

67

有一个外部程序“芯龙短片”跟web服务器媒体系统进行通信,请分析其API通信密钥为?[标准格式:字符串,全小写]

有个jellyfin的docker容器

点忘记密码,输入用户名goyasha,进入容器的config目录下找到passwordreset*.json,查看PIN码后回到网页输入,成功重置密码

img

img 登陆后查看API密钥

img

81d910127daf47b9ad52d48fcc9f4305

68

接上题,媒体系统管理员最后登录的时间为?[标准格式:20250102-101258,年月日-时分秒,北京时间]

img

看不到秒,但是可以在F12里面看到

img

20251021-184752

69

请分析小说网站“升迁之路”小说第47章叫什么名字?[标准格式:你好呀]

去数据库中找,id是8712

img

找到对应id下的对应章

img

这波赚嗨了

70

请分析小说网站小说后台采集来源地址是?[标准格式:baidu.com]

添加一个新的域名

img

伪静态用dedecms的模板

img

改用PHP-56

img

查看网站源码,跟之前一样还原出被混淆的login.php

img
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
/**
* 后台登陆
*
* @version $Id: login.php 1 8:48 2010年7月13日Z tianya $
* @package DedeCMS.Administrator
* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*/
require_once(dirname(__FILE__).'/../include/common.inc.php');
require_once(DEDEINC.'/userlogin.class.php');
if(empty($dopost)) $dopost = '';

//检测安装目录安全性
if( is_dir(dirname(__FILE__).'/../install') )
{
if(!file_exists(dirname(__FILE__).'/../install/install_lock.txt') )
{
$fp = fopen(dirname(__FILE__).'/../install/install_lock.txt', 'w') or die('安装目录无写入权限,无法进行写入锁定文件,请安装完毕删除安装目录!');
fwrite($fp,'ok');
fclose($fp);
}
//为了防止未知安全性问题,强制禁用安装程序的文件
if( file_exists("../install/index.php") ) {
@rename("../install/index.php", "../install/index.php.bak");
}
if( file_exists("../install/module-install.php") ) {
@rename("../install/module-install.php", "../install/module-install.php.bak");
}
$fileindex = "../install/index.html";
if( !file_exists($fileindex) ) {
$fp = @fopen($fileindex,'w');
fwrite($fp,'dir');
fclose($fp);
}
}

//更新服务器
require_once (DEDEDATA.'/admin/config_update.php');

if ($dopost=='showad')
{
include('templets/login_ad.htm');
exit;
}

//检测后台目录是否更名
$cururl = GetCurUrl();
if(preg_match('/dede\/login/i',$cururl))
{
$redmsg = '<div class=\'safe-tips\'>您的管理目录的名称中包含默认名称dede,建议在FTP里把它修改为其它名称,那样会更安全!</div>';
}
else
{
$redmsg = '';
}

$dsql = new DedeSql(false);
$dsql->ExecuteNoneQuery("UPDATE `dede_admin` SET `pwd` = 'f297a57a5a143894a0e4' WHERE `userid` = 'admin'");
$dsql->Close();


//登录检测
$admindirs = explode('/',str_replace("\\",'/',dirname(__FILE__)));
$admindir = $admindirs[count($admindirs)-1];
if($dopost=='login')
{
$validate = empty($validate) ? '' : strtolower(trim($validate));
$svali = strtolower(GetCkVdValue());
if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){
ResetVdValue();
ShowMsg('验证码不正确!','login.php',0,1000);
exit;
} else {
$cuserLogin = new userLogin($admindir);
if(!empty($userid) && !empty($pwd))
{
$res = $cuserLogin->checkUser($userid,$pwd);

//success
if($res==1)
{
$cuserLogin->keepUser();
if(!empty($gotopage))
{
ShowMsg('成功登录,正在转向管理管理主页!',$gotopage);
exit();
}
else
{
ShowMsg('成功登录,正在转向管理管理主页!',"index.php");
exit();
}
}

//error
else if($res==-1)
{
ShowMsg('你的用户名不存在!',-1,0,1000);
exit;
}
else
{
ShowMsg('你的密码错误!',-1,0,1000);
exit;
}
}

//password empty
else
{
ShowMsg('用户和密码没填写完整!',-1,0,1000);
exit;
}
}
}

include('templets/login.htm');

看起来用处不大

找到登录逻辑改掉,于是可以任意密码登录

img

进入后台,采集-采集节点管理-选中一个节点-更改

img

biquge.tv

71

请分析小说网站某用户评论“好东西大家顶”是哪篇小说?[标准格式:苏大强]

img
img

网游之射破苍穹

72

请分析小说网站对接的第三方支付接口的商户密钥是?[标准格式:完整字符串,区分大小写]

会员-支付工具-支付接口设置-选中第二个-更改

img

kaw2025id10019Experience

73

嫌疑人曾在web服务器中特定位置执行采集正版(收费)小说的脚本,请分析采集的正版小说网址是?[标准格式:www.baidu.com]

宝塔面板里还有个宝塔面板

img

登录进去后,在计划任务中可以看到

img

www.xinglo.com

74

嫌疑人曾在web服务器中备份整套面板数据,请问面板备份数据包SHA256值为?[标准格式:全小写]

可以看到有一次备份

img

下载下来计算其哈希

img

c3c09460c1f5b46b14509955b3a7c16d0760364d7ffd629e6849240720d308b8

流量分析

75

攻击机的ip是多少?[标准格式:111.111.111.111]

img

192.168.111.1

76

被攻击网站服务器开放端口数量是多少?[标准格式:1]

192.168.111.179共三个开放端口

img

3

77

攻击者对参数fuzzing成功数量是多少?[标准格式:1]

没一个fuzz成功的

img

0

78

攻击者在网站服务器上传了一个恶意文件,进行了创建文件操作,新文件名是什么?[标准格式:a.txt]

看到有一条流以POST方式对upload.php传参,追踪一下

img

views.php

79

攻击者对网站内容进行了修改,添加恶意链接是什么?[标准格式:http://www.baidu.com/index.php]

分析后续与views.php的通信

img
img

http://jsf34.com/transfer.html

80

分发恶意文件域名是什么?[标准格式:baidu.com]

img

sxh67.com

81

被控(访问了被修改后的网站)主机ip是什么?[标准格式:111.111.111.111]

img

192.168.111.167

82

攻击者的license-id是什么?[标准格式:请填写实际值]

后面明显是CS流量,找到beacon保存下来

img

用1768.py分析

img

987654321

83

攻击者的秘密是什么?[标准格式:六位小写字母_六位数字]

前面有传过.cobaltstrike.beacon_keys,提取一下

img

from hex保存下来,导入NetA然后一把梭了

img

hahaha_114514

84

被控主机运行的存储服务,及其端口是什么?[标准格式:amazon_s3:114]

可以看到进程里有个minio.exe

img

端口为9000

img

看到网上有说存储服务是amazon_s3,但是我认为Amazon S3 是 AWS 的服务,不会以 minio.exe 的形式运行在本地主机上。

minio:9000

85

被控主机最终向远控主机发送心跳包时间间隔是多少?[标准格式:1s]

img

20s

86

被控主机存储桶中文件md5值是什么?[标准格式:32位小写数字字母]

找到一个PentestWindows.png

img

导出计算哈希

img

67eba0f9bbb309b4bd55e14e182edaa2