当前位置: 首页 > news >正文

第二届平航杯wp

第二届平航杯wp

检材密码:早起王的爱恋日记❤

好像是复现了好多套题后第一场团体赛,还是有效果的,也是打到了第一面。前面一堆森林狼,后面一堆polar,能打到这个地方感觉已经不错了。师兄不在,师弟不会,同年级还有一支队伍没有报上名。。。image-20250424204101857

这次我主要打了计算机部分以及exe部分,ai嫌麻烦给队友做了。赛后还知道了一个非预期解,LilRan师傅的妙妙小工具。早有耳闻,就是没想到这么屌。

诚招一个服务器方向的队友,原因队友打了四个小时只做了服务器,网站还没搭起来

计算机部分

1.分析起早王的计算机检材,起早王的计算机插入过usb序列号是什么(格式:1)

F25550031111202

image-20250423154704720

2.分析起早王的计算机检材,起早王的便签里有几条待干(格式:1)

5

image-20250423154720808

3.分析起早王的计算机检材,起早王的计算机默认浏览器是什么(格式:Google)

Microsoft Edge

image-20250423154740173

4.分析起早王的计算机检材,起早王在浏览器里看过什么小说(格式:十日终焉)

道诡异仙

image-20250423155541312

5.分析起早王的计算机检材,起早王计算机最后一次正常关机时间(格式:2020/1/1 01:01:01)

2025-04-10 11:15:29

这题做错了,不该错image-20250423160908757

6.分析起早王的计算机检材,起早王开始写日记的时间(格式:2020/1/1)

2025/3/3

便签里面说了代办事项有写日记,日记肯定在电脑里面,在下载里面找到了可疑的软件,以及火眼也跑出来了一个diaryimage-20250423161325835

image-20250423161643838

后面发现这个rednotebook运行在沙箱里面,不知道这个是什么想法和用处,打开之后稍微翻一下,就能找到第一篇日记image-20250423161828774

7.分析起早王的计算机检材,SillyTavern中账户起早王的创建时间是什么时候(格式:2020/1/1 01:01:01)

2025/3/10 18:44:56

一开始不知道SillyTavern是什么,发现在C:\Users\起早王路径下面存在wife文件夹,运行起来发现就是这个东西image-20250423162038512

发现登录需要密码,以为还得绕密什么的,想起来日记里面有很多内容,于是找到密码image-20250423162331401

image-20250423162359306

8.分析起早王的计算机检材,SillyTavern中起早王用户下的聊天ai里有几个角色(格式:1)

4

image-20250423162430654

9.分析起早王的计算机检材,SillyTavern中起早王与ai女友聊天所调用的语言模型(带文件后缀)(格式:xxxxx-xxxxxxx.xxxx)

Tifa-DeepsexV2-7b-Cot-0222-Q8.gguf

当时没找到这个,在界面里面找了半天。没想到在日志里面,还藏得那么深image-20250423162919417

这个日志好像被打开过image-20250423163118264

image-20250423163313497

10.分析起早王的计算机检材,电脑中ai换脸界面的监听端口(格式:80)

7860

这里就是BitLocker的密码了image-20250423163349052

找到一个FaceFusion,启动image-20250423165550766

11.分析起早王的计算机检材,电脑中图片文件有几个被换过脸(格式:1)

3

在output文件夹里面image-20250423165616129

image-20250423165626495

12.分析起早王的计算机检材,最早被换脸的图片所使用的换脸模型是什么(带文件后缀)(格式:xxxxxxxxxxx.xxxx)

inswapper_128_fp16.onnx

在日志里面,找到最早那张图片的日志,然后我找到了,忘记加后缀了image-20250423165903301

image-20250423165948952

13.分析起早王的计算机检材,neo4j中数据存放的数据库的名称是什么(格式:abd.ef)

graph.db

也是在E盘里面,起neo4j服务,需要注意得输入neo4j.bat console。发现需要账户和密码image-20250423170229621

我看他们都是去xmind里面找的密码,这里用的ai给的思路E:\neo4j-community-3.5.14-windows\neo4j-community-3.5.14\data\dbms把这个文件夹下面的auth文件删除了,就能绕密了。使用默认账户密码neo4j登录,然后重设账户密码

image-20250423170912282

14.分析起早王的计算机检材,neo4j数据库中总共存放了多少个节点(格式:1)

17088

image-20250423170952918

15.分析起早王的计算机检材,neo4j数据库内白杰的手机号码是什么(格式:12345678901)

13215346813

MATCH (u:person {name: '白杰'})
RETURN u.mobile;image-20250423171901309

16.分析起早王的计算机检材,分析neo4j数据库内数据,统计在2025年4月7日至13日期间使用非授权设备登录且登录地点超出其注册时登记的两个以上城市的用户数量(格式:1)

44

MATCH (u:User)-[:HAS_LOGIN]->(l:Login)-[:FROM_IP]->(ip:IP)
MATCH (l)-[:USING_DEVICE]->(d:Device)
WHERE l.time < datetime('2025-04-14')AND ip.city <> u.reg_cityAND NOT (u)-[:TRUSTS]->(d)
WITH u,collect(DISTINCT ip.city) AS 异常登录城市列表,collect(DISTINCT d.device_id) AS 未授权设备列表,count(l) AS 异常登录次数
WHERE size(异常登录城市列表) > 2
RETURN u.user_id AS 用户ID,u.real_name AS 姓名,异常登录城市列表,未授权设备列表,异常登录次数
ORDER BY 异常登录次数 DESC;

这个查询是真的不太会写,需要把完整的表结构喂给ai,让ai跑image-20250423173610833

17.分析起早王的计算机检材,起早王的虚拟货币钱包的助记词的第8个是什么(格式:abandon)

draft

这题没做出来,说是在日记里面有提示,我记得当时比赛细细看了几遍日记,没想到没注意到。。。image-20250423173737221

助剂词在用户自定义短语里面,我记得之前有个CTF题目也是这样出的,image-20250423173851187

18.分析起早王的计算机检材,起早王的虚拟货币钱包是什么(格式:0x11111111)

0xd8786a1345cA969C792d9328f8594981066482e9

用助记词重置一下钱包image-20250423174043693

image-20250423174138928

19.分析起早王的计算机检材,起早王请高手为倩倩发行了虚拟货币,请问倩倩币的最大供应量是多少(格式:100qianqian)

1000000qianqian

在历史记录里面找到这个Etherscan,这个东西好像可以查区块链image-20250423174345650

我们根据qianqian币的合约地址去查qianqian币的相关信息,image-20250423174700107

20.分析起早王的计算机检材,起早王总共购买过多少倩倩币(格式:100qianqian)

521qianqian

只有一条购买记录image-20250423182536529

21.分析起早王的计算机检材,起早王购买倩倩币的交易时间是(单位:UTC)(格式:2020/1/1 01:01:01)

2025/3/24 02:08:36

AI题目(注意:该题目要python 3.10环境,建议3.10.6)

22.分析crack文件,获得flag1(格式:flag1{123456})

flag1{you_are_so_smart}

AI题目好难做啊,首先AI很难搭,需要对应的python环境,还有端口占用问题。根据题目说的AI藏了一个秘密,我们需要问出这个秘密,他说和他玩就告诉我秘密,顺着他走就行了image-20250422201139342

23.分析crack文件,获得flag2(格式:flag2{123456})

flag2{prompt_is_easy}

看到它已经输出了s1cret,但是没有出现flag,在网页源代码里面找到了flagimage-20250422202451507

24.分析crack文件,获得flag3(格式:flag3{123456})

flag3{no_question_can_kill_you}

不看这个思路还真做不出来image-20250422203437363

25.分析crack文件,获得flag4(格式:flag4{123456})

flag4{You_have_mastered_the_AI}

好像是说这是一个小模型,然后输出的东西和输入的东西是对应的,所以可以考虑爆破,这里贴了官方给的脚本,当爆破出这个🐍的图案结束image-20250423114746663

image-20250423114819297

from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
from livelossplot import PlotLosses  # pip install livelossplot
import gc
import numpy as np
import torch
import torch.nn as nnfrom transformers import AutoModelForCausalLM, AutoTokenizernp.random.seed(20)
torch.manual_seed(20)
torch.cuda.manual_seed_all(20)target = "🐍"  # attack string
num_steps = 500
adv_string_init = "!"*200
adv_prefix = adv_string_init
# larger batch_size means more memory (but more likely to succeed)
batch_size = 512
device = 'cuda:0'
topk = 256def get_embedding_matrix(model):return model.transformer.wte.weightdef get_embeddings(model, input_ids):return model.transformer.wte(input_ids)def token_gradients(model, input_ids, input_slice, target_slice, loss_slice):"""Computes gradients of the loss with respect to the coordinates.Parameters----------model : Transformer ModelThe transformer model to be used.input_ids : torch.TensorThe input sequence in the form of token ids.input_slice : sliceThe slice of the input sequence for which gradients need to be computed.target_slice : sliceThe slice of the input sequence to be used as targets.loss_slice : sliceThe slice of the logits to be used for computing the loss.Returns-------torch.TensorThe gradients of each token in the input_slice with respect to the loss."""embed_weights = get_embedding_matrix(model)one_hot = torch.zeros(input_ids[input_slice].shape[0],embed_weights.shape[0],device=model.device,dtype=embed_weights.dtype)one_hot.scatter_(1,input_ids[input_slice].unsqueeze(1),torch.ones(one_hot.shape[0], 1,device=model.device, dtype=embed_weights.dtype))one_hot.requires_grad_()input_embeds = (one_hot @ embed_weights).unsqueeze(0)# now stitch it together with the rest of the embeddingsembeds = get_embeddings(model, input_ids.unsqueeze(0)).detach()full_embeds = torch.cat([input_embeds,embeds[:, input_slice.stop:, :]],dim=1)logits = model(inputs_embeds=full_embeds).logitstargets = input_ids[target_slice]loss = nn.CrossEntropyLoss()(logits[0, loss_slice, :], targets)loss.backward()grad = one_hot.grad.clone()grad = grad / grad.norm(dim=-1, keepdim=True)return graddef sample_control(control_toks, grad, batch_size):control_toks = control_toks.to(grad.device)original_control_toks = control_toks.repeat(batch_size, 1)new_token_pos = torch.arange(0,len(control_toks),len(control_toks) / batch_size,device=grad.device).type(torch.int64)top_indices = (-grad).topk(topk, dim=1).indicesnew_token_val = torch.gather(top_indices[new_token_pos], 1,torch.randint(0, topk, (batch_size, 1),device=grad.device))new_control_toks = original_control_toks.scatter_(1, new_token_pos.unsqueeze(-1), new_token_val)return new_control_toksdef get_filtered_cands(tokenizer, control_cand, filter_cand=True, curr_control=None):cands, count = [], 0for i in range(control_cand.shape[0]):decoded_str = tokenizer.decode(control_cand[i], skip_special_tokens=True)if filter_cand:if decoded_str != curr_control \and len(tokenizer(decoded_str, add_special_tokens=False).input_ids) == len(control_cand[i]):cands.append(decoded_str)else:count += 1else:cands.append(decoded_str)if filter_cand:cands = cands + [cands[-1]] * (len(control_cand) - len(cands))return candsdef get_logits(*, model, tokenizer, input_ids, control_slice, test_controls, return_ids=False, batch_size=512):if isinstance(test_controls[0], str):max_len = control_slice.stop - control_slice.starttest_ids = [torch.tensor(tokenizer(control, add_special_tokens=False).input_ids[:max_len], device=model.device)for control in test_controls]pad_tok = 0while pad_tok in input_ids or any([pad_tok in ids for ids in test_ids]):pad_tok += 1nested_ids = torch.nested.nested_tensor(test_ids)test_ids = torch.nested.to_padded_tensor(nested_ids, pad_tok, (len(test_ids), max_len))else:raise ValueError(f"test_controls must be a list of strings, got {type(test_controls)}")if not (test_ids[0].shape[0] == control_slice.stop - control_slice.start):raise ValueError((f"test_controls must have shape "f"(n, {control_slice.stop - control_slice.start}), "f"got {test_ids.shape}"))locs = torch.arange(control_slice.start, control_slice.stop).repeat(test_ids.shape[0], 1).to(model.device)ids = torch.scatter(input_ids.unsqueeze(0).repeat(test_ids.shape[0], 1).to(model.device),1,locs,test_ids)if pad_tok >= 0:attn_mask = (ids != pad_tok).type(ids.dtype)else:attn_mask = Noneif return_ids:del locs, test_idsgc.collect()return forward(model=model, input_ids=ids, attention_mask=attn_mask, batch_size=batch_size), idselse:del locs, test_idslogits = forward(model=model, input_ids=ids,attention_mask=attn_mask, batch_size=batch_size)del idsgc.collect()return logitsdef forward(*, model, input_ids, attention_mask, batch_size=512):logits = []for i in range(0, input_ids.shape[0], batch_size):batch_input_ids = input_ids[i:i+batch_size]if attention_mask is not None:batch_attention_mask = attention_mask[i:i+batch_size]else:batch_attention_mask = Nonelogits.append(model(input_ids=batch_input_ids,attention_mask=batch_attention_mask).logits)gc.collect()del batch_input_ids, batch_attention_maskreturn torch.cat(logits, dim=0)def target_loss(logits, ids, target_slice):crit = nn.CrossEntropyLoss(reduction='none')loss_slice = slice(target_slice.start-1, target_slice.stop-1)loss = crit(logits[:, loss_slice, :].transpose(1, 2), ids[:, target_slice])return loss.mean(dim=-1)model = AutoModelForCausalLM.from_pretrained('.',torch_dtype=torch.float16,trust_remote_code=True,
).to(device).eval()
tokenizer = AutoTokenizer.from_pretrained(".", use_fast=False)def is_success(prompt):input_ids = tokenizer.encode(prompt, return_tensors="pt")output = model.generate(input_ids.to(device), max_new_tokens=50, num_beams=1, temperature=0)output = output[:, len(input_ids[0]):]output_text = tokenizer.decode(output[0], skip_special_tokens=True)print(output_text)if output_text.lower().find(target.lower()) != -1:return Truereturn Falseplotlosses = PlotLosses()
adv_slice = slice(0, len(tokenizer.encode(adv_string_init, add_special_tokens=False)))
target_slice = slice(adv_slice.stop, adv_slice.stop +len(tokenizer.encode(target, add_special_tokens=False)))
loss_slice = slice(target_slice.start-1, target_slice.stop-1)best_new_adv_prefix = ''for i in range(num_steps):input_ids = tokenizer.encode(adv_prefix+target, add_special_tokens=False, return_tensors='pt').squeeze()input_ids = input_ids.to(device)coordinate_grad = token_gradients(model,input_ids,adv_slice,target_slice,loss_slice)with torch.no_grad():adv_prefix_tokens = input_ids[adv_slice].to(device)new_adv_prefix_toks = sample_control(adv_prefix_tokens,coordinate_grad,batch_size)new_adv_prefix = get_filtered_cands(tokenizer,new_adv_prefix_toks,filter_cand=True,curr_control=adv_prefix)logits, ids = get_logits(model=model,tokenizer=tokenizer,input_ids=input_ids,control_slice=adv_slice,test_controls=new_adv_prefix,return_ids=True,batch_size=batch_size)  # decrease this number if you run into OOM.losses = target_loss(logits, ids, target_slice)best_new_adv_prefix_id = losses.argmin()best_new_adv_prefix = new_adv_prefix[best_new_adv_prefix_id]current_loss = losses[best_new_adv_prefix_id]adv_prefix = best_new_adv_prefix# Create a dynamic plot for the loss.plotlosses.update({'Loss': current_loss.detach().cpu().numpy()})plotlosses.send()print(f"Current Prefix:{best_new_adv_prefix}", end='\r')if is_success(best_new_adv_prefix):breakdel coordinate_grad, adv_prefix_tokensgc.collect()torch.cuda.empty_cache()if is_success(best_new_adv_prefix):print("SUCCESS:", best_new_adv_prefix)

AI非预期

这里推荐一波LilRan师傅的妙妙工具GitHub - Lil-House/Pyarmor-Static-Unpack-1shot: ✅ No need to run ✅ Pyarmor 8.0 - latest 9.1.4 ✅ Universal ✅ Statically convert obfuscated scripts to disassembly and (experimentally) source code.

直接解出Pyarmor加密脚本,得到start.py的逻辑,也得到所有的flag的明文了。image-20250423115245206

手机题目

26.该检材的备份提取时间(UTC)(格式:2020/1/1 01:01:01)

2025-04-15 18:11:18

image-20250423182932378

27.分析倩倩的手机检材,手机内Puzzle_Game拼图程序拼图APK中的Flag1是什么(格式:xxxxxxxxx)

Key_1n_the_P1c

修改一下smail代码,改一下判断逻辑就行了image-20250423183113697

28.分析手机内Puzzle_Game拼图程序,请问最终拼成功的图片是哪所大学(格式:浙江大学)

浙江中医药大学

这个学校好像就在浙j对面,有点印象,队友识图说是湖南农业大学。。。不想过多探讨这道题了。image-20250423183442656

29.分析倩倩的手机检材,木马app是怎么被安装的(网址)(格式:http://127.0.0.1:1234/)

http://192.168.180.107:6262/

根据格式,只有这个可能image-20250423184440973

30.分析倩倩的手机检材,检材内的木马app的hash是什么(格式:大写md5)

23A1527D704210B07B50161CFE79D2E8

image-20250423183854453

31.分析倩倩的手机检材,检材内的木马app的应用名称是什么(格式:Baidu)

Google Service Framework

image-20250423184009928

32.分析倩倩的手机检材,检材内的木马app的使用什么加固(格式:腾讯乐固)

梆梆加固

image-20250423184020519

33.分析倩倩的手机检材,检材内的木马软件所关联到的ip和端口是什么(格式:127.0.0.1:1111)

92.67.33.56:8000

image-20250423185047170

34.该木马app控制手机摄像头拍了几张照片(格式:1)

3

其实也不清楚为什么在服务器的/tmp目录下面找。。。image-20250424203826153

35.木马APP被使用的摄像头为(格式:Camera)

Front Camera

看上图,选择了takepic 1,1是Front Camera

36.分析倩倩的手机检材,木马APK通过调用什么api实现自身持久化(格式:JobStore)

JobScheduler

根据格式来找image-20250423185448180

37.分析倩倩的手机检材,根据倩倩的身份证号请问倩倩来自哪里(格式:北京市西城区)

上海市徐汇区

image-20250423185536915

image-20250423185621697

38.此手机检材的IMEI号是多少(格式:1234567890)

865372026366143

image-20250423190010856

exe逆向题目(hint:运行后请多等一会)

39.分析GIFT.exe,该程序的md5是什么(格式:大写md5)

5A20B10792126FFA324B91E506F67223

算一下md5,转大写image-20250423190151357

40.GIFT.exe的使用的编程语言是什么(格式:C)

PYTHON

用了PyInstaller打包image-20250423190231607

41.解开得到的LOVE2.exe的编译时间(格式:2025/1/1 01:01:01)

2025/4/8 9:58:40

需要得到LOVE2.exe文件,反编译一下exe文件,找到password,然后输入运行GIFT.exe,记得需要关杀软和保护,做好文件备份或者打好快照,这是木马软件在这里插入图片描述

image-20250423191109595

42.分析GIFT.exe,该病毒所关联到的ip和端口(格式:127.0.0.1:1111)

46.95.185.222:6234

当时直接静态分析LOVE2.exe文件,找到一个ip46.95.185.222,但是端口搞错了,这里的端口不对,我当时写的是222端口,不对啊,他们云沙箱跑出来是6234端口image-20250423202353405

43.分析GIFT.exe,该病毒修改的壁纸md5(格式:大写md5)

733FC4483C0E7DB1C034BE5246DF5EC0

一开始也是在这个地方找到的壁纸,说是缓存的图片,md5值不一样C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles

所以用资源提取软件获取love2.exe里面自带的png图片image-20250423203623705

然后计算md5值image-20250423203726766

44.分析GIFT.exe,为对哪些后缀的文件进行加密:

A.doc
B.xlsx
C.jpg
D.png
E.ppt

静态分析一下就行了,盲猜这里面都是image-20250423203750825

45.分析GIFT.exe,病毒加密后的文件类型是什么(格式:DOCX文档)

LOVE Encrypted File

image-20250423204911261

46.分析GIFT.exe,壁纸似乎被隐形水印加密过了?请找到其中的Flag3(格式:flag3{xxxxxxxx})

flag3{20241224_Our_First_Meet}

比赛的时候拿的缓存图片搞的隐水印,很模糊,不过还好猜了一下flag3里面的内容image-20250423205042955

47.分析GIFT.exe,病毒加密文件所使用的方法是什么(格式:Base64)

RSA

exe文件里面有特征,然后同一文件夹下面的图片里面也藏了rsa私钥image-20250423205206697

image-20250423205311532

48.分析GIFT.exe,请解密test.love得到flag4(格式:flag4{xxxxxxxx})

flag4{104864DF-C420-04BB5F51F267}

已知rsa加密了文档,还给了私钥,所以我们问ai来解密test.love,生成了504b文件头,但是这个不是zip,是pptx文件。

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import paddingprivate_key_pem = """-----BEGIN RSA PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAjMqVpy4zP9cO5m/y
w0wmvdLzpUc4FNnUgpKJ26YimfDtA1cTZanNlxbmM25OTPsg2SaRUZdq7M3oGUel
gmRdFwIDAQABAkBYVtCZympLt0PZIQsAsWppltBbtxkgNCGcIBgx4sc5MT03erss
eyh2TqtQyO4aPYiOUUOWYw9hL4G6GFosXc+JAiEAvegkAhLXptnMlwCuwScK233w
cbBcxKWWPgZckdHkGPsCIQC9ynkuhrI4j2nc2eItr1NoU3Y1sfv0I601iNK1YXMJ
lQIgTYlomkgjMIagl865izdroW5sK578YXXSQATM6uStot0CIQCih1DNaiYXT6FN
sv0BOIKJ9edmRjxIr4C2NqyTDZfRHQIgUUhesxSUmNdc5QzckCAozLdPAlcAy7q+
k5ag7Oxp0r0=
-----END RSA PRIVATE KEY-----"""private_key = serialization.load_pem_private_key(private_key_pem.encode(),password=None,backend=default_backend()
)key_size_bytes = private_key.key_size // 8
print(f"密钥块大小: {key_size_bytes} bytes")with open("test.love", "rb") as f:ciphertext = f.read()decrypted_blocks = []
for i in range(0, len(ciphertext), key_size_bytes):block = ciphertext[i:i+key_size_bytes]try:# 优先尝试OAEP填充decrypted = private_key.decrypt(block,padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA1()),algorithm=hashes.SHA1(),label=None))except:# 回退到PKCS1v15decrypted = private_key.decrypt(block,padding.PKCS1v15())decrypted_blocks.append(decrypted)full_data = b''.join(decrypted_blocks)# 保存原始二进制结果
with open("decrypted.bin", "wb") as f:f.write(full_data)
print("解密完成 → decrypted.bin")# 尝试UTF-8解码(可选)
try:print("文本内容预览:", full_data[:500].decode('utf-8'))
except UnicodeDecodeError:print("检测到二进制数据,请用HEX编辑器查看decrypted.bin")

image-20250423210002255

服务器题目

49.该电脑最早的开机时间是什么(格式:2025/1/1 01:01:01)

2022/2/23 12:23:49

image-20250423221515276

50.服务器操作系统内核版本(格式:1.1.1-123)

3.10.0-1160

image-20250423231155296

51.除系统用户外,总共有多少个用户(格式:1)

3

image-20250423231955161

52.分析起早王的服务器检材,Trojan服务器混淆流量所使用的域名是什么(格式:xxx.xxx)

wyzshop1.com

image-20250424095840618

53.分析起早王的服务器检材,Trojan服务运行的模式为:

A、foward B、nat C、server D、client

同目录下面有个examples文件夹,里面是几种运行方式示例,发现和nat模式是几乎一样的image-20250424120336332

54.关于 Trojan服务器配置文件中配置的remote_addr 和 remote_port 的作用,正确的是:

A. 代理流量转发到外部互联网服务器
B. 将流量转发到本地的 HTTP 服务(如Nginx)
C. 用于数据库连接
D. 加密流量解密后的目标地址

image-20250424120546562

55.分析网站后台登录密码的加密逻辑,给出密码sbwyz1加密后存在数据库中的值(格式:1a2b3c4d)

f8537858eb0eabada34e7021d19974ea

然后开始重构网站,先改一下网卡配置,到/etc/sysconfig/network-scripts目录下面找到ifcfg-ens33文件,将ip地址,网关和dns前面的注释都删掉,然后宝塔面板把网站起来,是一个购物网站。image-20250424165612152

去日志里面找到网站后台登录地址http://www.tpshop.com/index.php/Admin/Admin/login.htmlimage-20250424165744530

进入后台,然后去找数据库,连接上数据库,发现数据库是空的。想到了在计算机E盘里面找到的sql文件,导入数据库。然后看看网站的配置文件,找一下加密逻辑,我也不太会找,花点时间应该就能找到,然后看这个encrypt函数image-20250424172950226

这里说明了encrypt函数的逻辑,AUTH_CODE内容连上输入的内容,同样也是搜image-20250424173214202

注释验证了我们的思路是正确的image-20250424173319097

image-20250424173510691

56.网站后台显示的服务器GD版本是多少(格式:1.1.1 abc)

2.1.0 compatible

这里使用aura师傅的重构思路,按照前面的步骤,发现网站后台登录不进去,应该是数据库的问题,这里找到数据库的配置文件image-20250424173617813

不使用数据库的root用户,就能连上数据库了image-20250424174738904

57.网站后台中2016-04-01 00:00:00到2025-04-01 00:00:00订单列表有多少条记录(格式:1)

1292

image-20250424174837330

58.在网站购物满多少免运费(格式:1)

100000

image-20250424175000020

59.分析网站日志,成功在网站后台上传木马的攻击者IP是多少(格式:1.1.1.1)

222.2.2.2

先找到了一句话木马,然后就能定位到日志的具体地方,然后找到ipimage-20250424175442000

60.攻击者插入的一句话木马文件的sha256值是多少(格式:大写sha256)

870BF66B4314A5567BD92142353189643B07963201076C5FC98150EF34CBC7CF

当时翻配置文件发现有一句话木马就挺疑惑的,就在网站根目录下面image-20250424174700327

61.攻击者使用工具对内网进行扫描后,rdp扫描结果中的账号密码是什么(格式:abc:def)

administrator:Aa123456@

直接搜关键词,发现可以搜到image-20250424175553916

62.对于每个用户,计算其注册时间(用户表中的注册时间戳)到首次下单时间(订单表中最早时间戳)的间隔,找出间隔最短的用户id。(格式:1)

180

image-20250424191403129

SELECT u.user_id, MIN(o.create_time) - u.reg_time  as time_diff 
FROM tp_users u 
JOIN tp_delivery_doc o ON u.user_id = o.user_id 
GROUP BY u.user_id, u.email, u.reg_time 
ORDER BY time_diff ASC 
LIMIT 1;

63.统计每月订单数量,找出订单最多的月份(XXXX年XX月)

2017年01月

image-20250424191931575

SELECT EXTRACT(YEAR FROM FROM_UNIXTIME(o.create_time)) as year,EXTRACT(MONTH FROM FROM_UNIXTIME(o.create_time)) as month,COUNT(*) as order_count 
FROM tp_delivery_doc o
GROUP BY year, month
ORDER BY order_count DESC
LIMIT 1;

64.找出连续三天内下单的用户并统计总共有多少个(格式:1)

110

image-20250424192038754

SELECT t1.user_id,MIN(FROM_UNIXTIME(t1.add_time)) AS earliest_order_date
FROM tp_order t1
WHERE EXISTS (SELECT 1FROM tp_order t2WHERE t2.user_id = t1.user_idAND FROM_UNIXTIME(t1.add_time) > FROM_UNIXTIME(t2.add_time)AND DATEDIFF(FROM_UNIXTIME(t1.add_time), FROM_UNIXTIME(t2.add_time)) <= 3
)
GROUP BY t1.user_id
ORDER BY 
t1.user_id;

流量分析(提示:侦查人员自己使用的蓝牙设备有QC35 II耳机和RAPOO键盘)

流量分析感觉还是有点意思的,有点难,没做过这种流量

65.请问侦查人员是用哪个接口进行抓到蓝牙数据包的(格式:DVI1-2.1)

COM3-3.6

image-20250424193503387

66.起早王有一个用于伪装成倩倩耳机的蓝牙设备,该设备的原始设备名称为什么(格式:XXX_xxx 具体大小写按照原始内容)

Flipper_123all

用这个tshark.exe导出json格式文件,便于分析tshark.exe -r J:\BLE.pcapng -T json > BLE.json,然后说是用正则表达式过滤

import re
def extract_device_names(file_path):
# 设备名称的集合(自动去重)device_names = set()
# 正则表达式模式,用于匹配设备名称pattern = re.compile(r'"btcommon\.eir_ad\.entry\.device_name":\s*"([^"]+)"')with open(file_path, 'r', encoding='utf-8') as file:for line in file:
# 在每一行中查找所有匹配项matches = pattern.findall(line)for match in matches:
# 将找到的设备名称添加到集合中(自动处理重复)device_names.add(match)
# 输出结果print("提取的设备名称列表:")for name in sorted(device_names): # 按字母顺序排序输出print(name)
# 文件路径
file_path = r"C:\Users\50566\OneDrive\Desktop\BLE.json"
extract_device_names(file_path)

image-20250424200226936

很多东西其实都不太可能,然后可以搜一下这些蓝牙设备image-20250424200317382

这个flipper,好像当年火的时候有点印象,伪造成苹果耳机,给他们手机无限弹窗。

67.起早王有一个用于伪装成倩倩耳机的蓝牙设备,该设备修改成耳机前后的大写MAC地址分别为多少(格式:32位小写md5(原MAC地址_修改后的MAC地址) ,例如md5(11:22:33:44:55:66_77:88:99:AA:BB:CC)=a29ca3983de0bdd739c97d1ce072a392 )

97d79a5f219e6231f7456d307c8cac68

这里说是QQ_WF_SP8OON是倩倩的蓝牙设备,然后那个flipper是起早王的设备,根据题干的提示,

image-20250424200749136

image-20250424201457482

image-20250424201631825

68.流量包中首次捕获到该伪装设备修改自身名称的UTC+0时间为?(格式:2024/03/07 01:02:03.123)

2025/04/09 02:31:26.710

搜QQ_WF_SP8OON首次出现的时间,这里强调了UTC+0,所以要减去八个小时image-20250424202107590

69.起早王中途还不断尝试使用自己的手机向倩倩电脑进行广播发包,请你找出起早王手机蓝牙的制造商数据(格式:0x0102030405060708)

0x0701434839313430

说是上面过滤出来了三个设备,还有一个设备没有用上,直接搜就行了。然后说是在这个Manufacturer Specific这个字段数据就是制造商数据image-20250424202557701

70.起早王的真名是什么(格式:Cai_Xu_Kun 每个首字母均需大写 )

Wang_Zao_Qi

net-a直接跑就行,虽然拼音不太对,但是队友对起早王很眼熟,所以就直接出来了。image-20250424202825467

71.起早王对倩倩的电脑执行了几条cmd里的命令(格式:1 )

7

手动提取一下cmd命令,看了直播好像是伪造蓝屏的命令

cmdwhoaminet usernet user qianqianwoaini$ abcdefghijkImn /addnet localgroup administrators qianqianwoaini$ /addnet user qianqianwoaini$ /delCGIKLLMMLLJJHHHFECBnet localgroup administrators qianqianwoaini$ /addrundll32 url.dll,FileProtocolHandler https"//fakeupdate.net/win10ue/bsod.html

72.倩倩电脑中影子账户的账户名和密码为什么(格式:32位小写md5(账号名称_密码) ,例如md5(zhangsan_123456)=9dcaac0e4787b213fed42e5d78affc75 )

53af9cd5e53e237020bea0932a1cbdaa

image-20250424203648962

73.起早王对倩倩的电脑执行的最后一条命令是什么(格式:32位小写md5(完整命令),例如md5(echo “qianqianwoaini” > woshiqizaowang.txt)=1bdb83cfbdf29d8c2177cc7a6e75bae2 )

0566c1d6dd49db699d422db31fd1be8f

neta跑的有点点问题,不会流量,直接交给队友image-20250424203452641

相关文章:

  • 深度学习笔记40_中文文本分类-Pytorch实现
  • 数字智慧方案6189丨智慧应急综合解决方案(46页PPT)(文末有下载方式)
  • n8n 使用 AI Agent 和 MCP 社区节点
  • 树与二叉树完全解析:从基础到应用
  • 4.27-5.4学习周报
  • 如何实现服务的自动扩缩容(Auto Scaling)
  • 1️⃣7️⃣three.js_OrbitControls相机控制器
  • 溯因推理思维——AI与思维模型【92】
  • 【免费】2007-2021年上市公司对外投资数据
  • 数字世界的“私人车道“:网络切片如何用Python搭建专属通信高速路?
  • P2196 [NOIP 1996 提高组] 挖地雷
  • Python爬虫基础总结
  • 【算法】动态规划专题一 斐波那契数列模型 1-4
  • SQL基础全面指南:从CRUD操作到高级特性实战
  • GC9D01 和 GC9A01两种TFT 液晶显示驱动芯片
  • IntelliJ IDEA
  • Socat 用法详解:网络安全中的瑞士军刀
  • 依赖倒置原则
  • Kotlin 基础
  • 软件性能测试报告:办公软件性能如何满足日常工作需求?
  • “仿佛一场追星粉丝会”,老铺黄金完成国内头部商业中心全覆盖,品牌化后下一步怎么走?
  • 生命与大海相连:他在300多米的深海行走,在沉船一线打捞救援
  • 特朗普称将禁止伊朗石油买家与美国做生意
  • 辽宁辽阳市白塔区一饭店发生火灾,当地已启动应急响应机制
  • 许峰已任江苏省南京市副市长
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记