时间:2025-05-28 19:32
人气:
作者:admin

结果为a4:55:90:15:2e:76

结果为4.14.186
keepass数据库里没有数据,还有其他包,不过都不是


结果为design.codeux.authpass.fdroid

结果为Save my P Ass.
keepass打开

结果为Forensix777
magisk,看packages.list

这个对应的版本名是v27.0,可以下载对应的包查看
结果为27.0
包名有linux关键词

结果为debian

结果为xfce
见7图
结果为99c26da5
linux的镜像

加载镜像继续分析

结果为reshacker_setup.exe

结果为gh.viru.sh

查一下是upx

结果为upx
upx -d脱壳,重新检测,发现是pyinstaller打包

反编译reco.pyc即可

代码拿下来跑一下即可

结果为village

结果为e08478b0
历史命令可以找到网站

用的是django的默认算法

查看数据库可以知道

结果为pbkdf2_sha256
启动后,123456直接登录成功了。。。理想情况下可以用bp这些发包

结果为123456

结果为/a2d3e161

结果为PluginLoader.so

结果为E2219548F5A8E61F373258EB658625ADDA7BF858A83AD8D6E4213BCD8ECEB423
\Windows\System32\winevt\Logs\Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx

结果为192.168.3.14
便签里有东西,按照这个规则,应该是2025=(20+25)^2,仿真时使用这个密码可以成功启动系统


进入后,卷3是加密系统,卷6是不加密的,密码之前手机的keepass里有,是chenhaobei
开机后非常抽象

远程桌面过去最好,vmware操作会很卡,打开显示设置,把缩放改回100


结果为时光密钥
这个图片尾部还有数据

导出来是完整的


结果为C2A8300C87F86BD04B4AEA42E7D6B83C
转为二进制,然后根据图片上的xor 1988异或出顺序,再按照标准bip39简中的字典查字
lst = []
lst.append(int("11100111101",2))
lst.append(int("11000000001",2))
lst.append(int("11111010110",2))
lst.append(int("01101010000",2))
lst.append(int("11000110110",2))
lst.append(int("00000000101",2))
lst.append(int("10001001000",2))
lst.append(int("11001111010",2))
lst.append(int("00001111000",2))
lst.append(int("00001100001",2))
lst.append(int("00000011001",2))
lst.append(int("10001011011",2))
with open("bip39_chinese_simplified.txt",'r',encoding='utf-8') as f:
lines = f.readlines()
for v in lst:
print(lines[(v^1988)-1].strip(),end="")


结果为2025-05-14 20:59:20
录音转文字

结果为钓鱼
音频分离出伴奏(我用的NovaMSS),看频谱读摩斯,按照摩斯的间隔给点

结果为114.51.41.91

结果为我的手机号
初赛中的两个手机号,一个解正常分区3170010703,一个解隐藏分区13170010703

结果为0.079BTC

结果为4.15.0

不确定
结果为hibernate

结果为raid0

结果为4

结果为296d90000
仿真pc镜像, 打开电源时进入固件,从文件引导,选第一个分区,最后找到efi/kali/grubx64.efi成功引导,账号密码和win一样



浏览器里调试一下,可以找到主要逻辑


写代码掩码攻击,但是我这里不知道为什么node的环境没法验证,只能用python的环境验证,很麻烦。。。
const CryptoJS = require("crypto-js");
const fs = require("fs");
var data = "";
for(var i=0;i<10000;i++){
var password = "chewhaoN@"+String(i).padStart(4, '0');
// 调试拿到密文
var key1 = CryptoJS.AES.decrypt("U2FsdGVkX18Tb9IA8UF4TbpMQjOs4IqZBTIkldDlgn9vw1gIF9ltOirI/lf1SCGh9hAskbnb7cIsoJL6mNii7pQ1SDSt9R7vzF3Y+/d/fPtKXHMisjbQK/U6t+3wREAuoKQ4yZ24iuw+KZ6CW9bl6ULp3nVx0B8QpueW95sw0KOtmOMpmD19nO6gkFvMohcB", password).toString();
data += password + " "+key1 + "\n";
}
const options = { encoding: 'utf8', mode: 0o666, flag: 'w' };
fs.writeFile('output.txt', data, options, (err) => {
if (err) {
console.error('Error writing file:', err);
} else {
console.log('File written successfully');
}
});
import argon2
argon2_hasher = argon2.PasswordHasher()
argon2_hash = argon2_hasher.hash(password="password")
# 调试拿到哈希
hash = "$argon2id$v=19$m=16384,t=1,p=1$k6EZEDdQYyn+/0GlJtZGpg$hicAuwJorE73Moj+Po2Txda8hyoPPGYa"
with open("output.txt","r",encoding="utf-8") as file:
lines = file.readlines()
for line in lines:
line = line.strip()
m = line.split(" ")[0]
try:
password = line.split(" ")[1]
verify = argon2_hasher.verify(hash, password)
if verify:
print(f"Password: {m} matches the hash.")
break
except:
continue

结果为chewhaoN@6087

结果为chenhaoren
修改系统时间即可

结果为080000

结果为Ubuntu 24.04

结果为api-server-2

结果为172.16.10.254
正常仿真绕密后无法登录,然后看到这一系列题目,找到了/etc/pam.d/common-auth配置文件

结果为pam_pwdfile
结果为Bcrypt
结果为my_two_factor_pwdfile
看一下确实是Bcrypt,直接python掩码跑一遍就行

import bcrypt
for i in range(1000):
pwd = f'king{str(i).zfill(3)}'
target_hash = "$2a$10$V/8GUI5aTNSnbFodPjP7Zu6vCFSXmvdd9oKHGtWv/vbT3Q4LLTCcW"
if bcrypt.checkpw(pwd.encode(), target_hash.encode()):
print(f"Password found: {pwd}")
break
# king110
结果为king110
要ssh连接,需要改网卡配置,改ip地址和网关,不赘述了
看一下容器内容,找到配置文件,这边读取还是从变量里读的

docker inspect d4

结果为172.16.10.200

结果为test.pcap
文件在/home/king/test/test.pcap
http.response.code==200过滤,然后追踪流,连着3个成功登录

结果为3
继续查看上面的流,就能看到

结果为hx-101

结果为996a32

结果为nodejs
有一个nginx容器,工作目录是/home/king/nginx-proxy,看一下就出

结果为api-server.com
见上题
结果为api-server-access.log
先看到接口名

然后找到接口路径

结果为/api/auth/flag2

结果为/api/health

结果为gdb
流量包里就看到了
结果为zhaohong666

结果为libjiami.so

结果为gcc

结果为AES-256-CBC
接下来最好是用gdb直接调试拿数据,需要先连接数据库,先把数据库的容器打开,可以观察到ip是172.17.0.2

但是我们要连的数据库是172.16.10.200,这里不在同一个网段,是不通的
不过可以发现,数据库容器映射的端口出来,并且监听0.0.0.0,所以可以让容器连接我们的ip地址即可
webapi用的是172.18这个

刚好webapi是通过docker-compose启动的,所以直接停掉,改配置文件,然后docker compose up启动


查看日志发现连接数据库成功

进入容器进行调试,容器里没啥东西,直接调试进程1即可

调用函数并获得返回的地址,查看地址数据,这里查看32个字节,因为加密算法是aes-256-cbc,密钥长度是256位

拿到密钥

结果为zhaohongzhaohongzhaohongzhaohong

结果为flag1{hong112233}

结果为flag2{hong}

直接传参数进去看看效果

结果为FICerisgood
之前已经知道用户名密码了,直接连上去查询,然后解密,由于是cbc模式,还要获取iv,这个简单直接拿了

import pymysql
import pandas as pd
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import base64
import json
def decrypt_aes(ciphertext):
ciphertext = base64.b64decode(ciphertext)
key = b'zhaohongzhaohongzhaohongzhaohong'
iv = b'0123456789012345'
cipher = AES.new(key, AES.MODE_CBC, iv)
padded_data = cipher.decrypt(ciphertext)
decrypted = unpad(padded_data=padded_data, block_size=AES.block_size)
return decrypted.decode('utf-8')
conn = pymysql.connect(
host='192.168.71.24',
port=3306,
user='root',
passwd='7001',
db='product_db',
charset='utf8'
)
cursor = conn.cursor()
sql = 'select * from products;'
df = pd.read_sql(sql, conn)
df["name_encrypted"] = df["name_encrypted"].apply(decrypt_aes)
df["description_encrypted"] = df["description_encrypted"].apply(decrypt_aes)
df["price_encrypted"] = df["price_encrypted"].apply(decrypt_aes)
df["category_encrypted"] = df["category_encrypted"].apply(decrypt_aes)
df["additional_data_encrypted"] = df["additional_data_encrypted"].apply(decrypt_aes)
print(f"商品型号的种类数量:{len(set([v.split('-')[0] for v in df['name_encrypted'].to_list()]))}")
cnt = 0
total_price = 0
for idx,row in df.iterrows():
if row['name_encrypted'].split('-')[0] == 'zk':
total_price += float(row['price_encrypted'])
if json.loads(row['additional_data_encrypted'])['color'] == '灰色':
cnt += 1
print("灰色的zk型号商品数量:", cnt)
print("zk型号商品总价格:", total_price)
# 商品型号的种类数量:5
# 灰色的zk型号商品数量: 29
# zk型号商品总价格: 106450.36000000002
结果为5
结果为29
结果为106450
仿真,其中bios和kernel需要下载,如果你有安装火眼或者盘古石仿真,那bios应该在电脑里能找到,kerner就去官网下载
另外关于网络这块,我也不太懂,不过可以通过安装openvpn的方式来获得tap网卡,改名后讲本机网卡的网络共享给他

这样仿真起来后,软路由就会有和本机同样的ip
./qemu-system-aarch64.exe -m 512 -cpu cortex-a72 -M virt -nographic -bios "C:\Program Files (x86)\PanSafe\SafeVM\bios\QEMU_EFI.fd" -kernel "G:\openwrt-22.03.0-armvirt-64-Image" -drive if=none,file="G:\router.qcow2",format=qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -append "root=/dev/vda" -net nic -net tap,ifname=tap0

结果为24.10.0
cat /etc/config/network

结果为192.168.31.1

结果为8292024
cat /etc/config/network

结果为SLkCLyRhrkWIFgJWfEd0B7s99FYWJf9PUV+scj3Vw3U=
如何获得这个文件?
我是通过共享网卡之后,scp上传到我自己的服务器当中的

这样我就能从服务器里拿到这个文件

结果为13.3.0

结果为2
A.MD5 B.AES C.BASE64 D.DES

结果为BC

结果为collected.txt
A.IP 地址 B.摄像头密码 C.备注信息 D.电话号码
aes密钥是hex0123456789ABCDEF,但是没有找到数据文件


结果为com.forensix.cam

结果为7b1963b70fbac57a50836e9a044d0029
A.devicename B.password C.id D.flag

结果为BCD

扣出来跑一下就行了

结果为05d8cccb5f
跟上面那个一样的逻辑,这里是输入的md5的前6位

结果为6
从这里跳转的

这是第6个



结果为com.forensix.cam.activity.c75e3a8b2d

结果为222
A.VC加密Linux系统 B.VC加密Windows系统 C.VC加密文件 D.VC加密系统容器
pc有加密一个win系统分区,里面有存一个加密容器
结果为BC
A.编译安装 B.包管理器安装 C.容器安装 D.单文件
容器是mysql,单文件是sqlite
A.Windows B.MacOS C.Debian D.CentOS E.Fedora
结果为AC
1.陈某将正确的助记词藏在了Linux中
2.陈某将正确的助记词藏在了windows中
3.陈某电子数据中保留了孙某的欠条
4.陈某电子数据中保留了王某的欠条
5.陈某使用JAVA搭建后台接口
6.陈某和“香格里拉大酒店”有关"
结果为146
A.4.14-arm B.6.6-arm C.4.15-x64 D.6.8-x64
结果为C
手机里这个app

数据库里存了hash

上一篇:记一次前端逻辑绕过登录到内网挖掘
下一篇:AD 横向移动-令牌模拟攻击