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

2024数证杯决赛个人赛

容器密码

个人赛:

4zL!$WpRkmANv@XFQ#7HdEyU&GpoTb56YZ^Jq83!Wr(tqA%XsPB7f@CY1xRmKH9#Le*WVG9NuvT$kJ2@7b64Tp(FLM#zqRY8Hv%!KU^9C&YXL*powq87Hr

团体赛:

mW7@B!tRp*Xz46Y9#KFUV^J2&NqoHqTpLCE%8rvGW(AX#1k@YL3$M5!bWY*9HLFq7UZR6^T!XoVmPK28J&CY9%6(Arz#tbU4oXYKLp7Wq^FV9H

题目

一、计算机取证 (共10题19.0分)

1.计算机中曾挂载的Bitlocker加密分区的恢复密钥后6位为?(答案格式:6位数字) (1.0分)

image-20250430153111679

012507-559669-054527-667557-173448-699171-415833-700755

700755

2.请写出曾远程连接过该计算机的IP;(答案格式:6.6.6.6) (1.0分)

image-20250430153207895

192.168.50.227

3.计算机中曾挂载的vhd非加密分区驱动器号为?(答案格式:大写,如D) (1.0分)

image-20250430153722619

996600.vhd是非加密的

image-20250430153907346

image-20250430153951911

M

4.接上题,分区中最后修改时间的文件MD5值为?(答案格式:全大写) (1.0分)

image-20250430154040931

0A7152C5AA002A3D65DC5C5C5FAAB868

5.请找到计算机中的Veracrypt加密容器,并写出其解密密码?(答案格式:字母大小写与实际需一致) (6.0分)

image-20250430155601723

image-20250430155808379

1P2P3$$pian5p6p78pian

6.请写出IP为202.113.81.243的发件人向机主发送的邮件附件MD5值;(答案格式:全大写) (1.0分)

image-20250430154300661

image-20250430154423402

导出:
image-20250430154431913

6cf25fff7d2882dbf5722b3b9e382b5f

7.计算机中Will Wight - Cradle Series (Books 1-12)- MOBI.torrent文件的下载地址为?(答案格式:http://...) (1.0分)

image-20250430154507835

http://suprbaydvdcaynfo4dgdzgxb4zuso7rftlil5yg5kqjefnw4wq4ulcad.onion/attachment.php?aid=4130

8.计算机中lqrazqq016j41.jpg文件的删除时间为?(UTC+0800)(答案格式:1990-01-01 01:01:01) (1.0分)

image-20250430154524464

2024-11-09 21:59:48

9.Fikret Ceker曾经向机主发送过一张照片,请找到该图片写出其拍摄的GPS坐标;(答案格式:保留小数点后4位,如33.3333N,33.3333E) (3.0分)

image-20250430154628855

image-20250430155041839

GPSLatitudeRef: N
GPSLatitude: 40.01121666666667
GPSLongitudeRef: E
GPSLongitude: 112.70008055555556

40.0112N,112.7000E

10.计算机中用户“李四”在最后一次成功登录之前登录失败了多少次? (答案格式:纯数字) (3.0分)

image-20250430155206711

6

二、手机取证 (共8题19.0分)

请根据手机检材,回答以下问题(备份密码6666):

1.分析手机检材,写出苹果手机的序列号是多少?(答案格式:大小写与实际需一致) (1.0分)

image-20250430161929866

FK3XDN2UKPJ5

2.分析手机检材,写出嫌疑人facebook账号的密码是多少?(答案格式:大小写与实际需一致) (1.0分)

image-20250430162017576

1234qwer

3.分析手机检材,下列哪些地址是嫌疑人曾经去过的? (2.0分)

A: 南宁市青秀区 B: 南宁市江南区 C: 济南市历城区 D: 上海市松江区 E: 上海市宝山区

只有这个没有Photos.sqlite

image-20250430162844998

ABCE

4.分析手机检材,嫌疑人安装了用于记账的APP,请问该APP的包名是什么?(答案格式:com.abc.abc) (1.0分)

image-20250430162201906

com.maicai.freejizhang

5.分析手机检材,嫌疑人记账APP中记录的使用支付宝支付的用于礼金红包的金额一共是多少?(答案格式:请写整数金额,如1230元) (5.0分)

支付宝支付:
image-20250430164558197

7EB78B8F64E24EB6956DC9DB44720794

image-20250430162329121

uuid

image-20250430162438022

用户uuid排除最后一个

17000000

应该去掉两个零,后面是角和分

170000元

6.分析手机检材,嫌疑人家里路由器密码是多少?(答案格式:大小写与实际需一致) (3.0分)

image-20250430163029130

image-20250430163049841

201808188

7.分析手机检材,写出嫌疑人最新家庭地址;(答案格式:XX市XX区XX路XX弄 (1.0分)

image-20250430163210227

上海市浦东新区张杨北路2899弄

8.分析手机检材,嫌疑人团伙走私的“大麻”的单价是每克多少元?(答案格式:XX元/克) (5.0分)

image-20250430162701662

mm20241105
foremost -T 19.pic 
image-20250430164700711

常见的文件后缀包括.doc、.xls、.ppt

foremost之后的结果在这里

image-20250430165331476

这里,重新回到原始的19.pic文件,手动把文件重新提出来

image-20250430173028383 image-20250430173046930

344

三、服务器取证 (共6题19.0分)

1. 重建完整的系统后,redis对外暴露的端口号是多少?(答案格式:数字) (3.0分)

image-20250430171300831

16379

2. 请找出加密mysql数据库连接密码所用的加密密钥(盐值)?(答案格式:注意大小写) (3.0分)

服务器后端是java的站,数据库为mysql和redis
image-20250502002219807

docker inspect 79d2dfa52a5e

image-20250502002310066

指定了 Spring Boot 应用的配置文件路径

/home/date/s048/application-s048.yml

思路2:

image-20250501234837897

本身没加密,应该不对

image-20250501234916635

外部的yml有

image-20250501234954398

ENC(...) 是一种 加密密码的占位标记,常见于使用 Jasypt(Java Simplified Encryption) 等加密库时

意思是:这个密码是加密过的,程序运行时会使用指定的密钥对其进行解密

回文件里找秘钥,找jasypt

image-20250501235250590

有点多,但是筛选也很简单,如果类名有的大概率是jasypt包中自带的,我们只需要看类名路径中不包含jasypt但是代码中调用过的

image-20250501235738574

image-20250501235856943

image-20250502000017255

解密脚本:

直接调用jar包进行解密操作,从jar包里面提取jasypt-1.9.3.jar:

image-20250502000527293

把这个jar包用在本地编译的流程:

image-20250502001526629 image-20250502001452674 image-20250502001511440

写解密脚本:

package org.example;import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;public class JasyptDemo {public static void main(String[] args) {// 创建加密器StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();// 设置算法和密码(必须与配置中的一致)encryptor.setAlgorithm("PBEWithMD5AndDES");encryptor.setPassword("F*DZ-kZMs5qt"); // 这是你用于加密/解密的密钥// 要解密的内容String encryptedInput = "ij+NuXpx6CZwYB1oGHA2M2E2na0G8Tux"; // 去掉 ENC(...) 的密文String decryptedText = encryptor.decrypt(encryptedInput);System.out.println("解密后: " + decryptedText);}
}
mA0:xA0^

或者

package org.example;
import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;public class Main {public static StringEncryptor stringEncryptor() {StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();encryptor.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);encryptor.setPassword("F*DZ-kZMs5qt");return encryptor;}public static void main(String[] args) {StringEncryptor encryptor = stringEncryptor();String a = "ij+NuXpx6CZwYB1oGHA2M2E2na0G8Tux";System.out.println(a+"--->"+encryptor.decrypt(a));String b = "064l9Wwf9KjXlSz0phcwvg+R5xwzCNl7";System.out.println(b+"--->"+encryptor.decrypt(b));String c = "8fiHevvtSApJ/7UoFXZcMMhzXWIdvyjv";System.out.println(c+"--->"+encryptor.decrypt(c));}
}

基本都是复制,在Main加上StringEncryptor stringEncryptor(),然后在主函数进行解密

3. 请分析得出相亲网站的后台数据库中哪张表存放了会员相关信息,写出表名? (6.0分)

一共两个mysql

image-20250502003124862

都是ssh连接

端口ip根据原来文件里来就行,反正都是docker里面的

image-20250502004412156

里面没有

试试另一个

image-20250502003056233

image-20250502003222100

a_member_st

4. 已知用户在系统中的所有操作都会被记录,请找出用户在“查询角色”时,其请求的后端路径地址为?(格式:/api/query/...) (3.0分)

image-20250502003701032

思路2:

image-20250502004627533

image-20250502004807515

image-20250502004823564

/zwz/role/getAllByPage

5. 请分析得出数据库用户表中status为-1状态值的含义为?(格式:学生) (1.0分)

image-20250502004849399

image-20250502004913888

禁用

6.请统计平均月均收入第二高的省份(省份包含三大类:省、直辖市、自治区)(答案格式:请写出完整的省份名(或直辖市名、自治区名),如江西省、天津市、西藏自治区) (3.0分)

SELECTSUBSTRING( address,1,2) AS `省份`,SUM( income ) AS `收入`,COUNT( income ) AS `人数`,SUM( income )/ COUNT( income ) AS `平均收入`
FROMa_member_st 
GROUP BY
`省份`
ORDER BY
`平均收入` DESC

image-20250502005000292

内蒙古自治区

四、程序功能分析 (共6题14.0分)

请根据APK检材,回答以下问题:

1.分析APK检材,请问程序申请了几项系统权限?(答案格式:6) (2.0分)

image-20250502005234436

4

2.分析APK检材,请写出程序的入口邀请码;(答案格式:与实际大小写保持一致) (6.0分)

image-20250502005258942

image-20250502005957246

Java Native Interface(JNI) 是 Java 提供的一种机制,用于 在 Java 代码中调用由 C/C++ 编写的本地代码,或者让 C/C++ 代码调用 Java 的类和方法。

程序调用isString函数验证邀请码是否正确。isStringnative 函数,静态代码块中加载了libgallery.so库:

private final native boolean isString(String str);public static void t(MainActivity mainActivity) {r1.c.e(mainActivity, "this$0");c cVar = mainActivity.f2407c0;if (cVar == null) {r1.c.h("binding");throw null;}if (!mainActivity.isString(((EditText) cVar.f22G).getText().toString())) {Toast.makeText(mainActivity, "邀请码不正确", 0).show();} else {mainActivity.startActivity(new Intent(mainActivity, (Class<?>) GalleryActivity.class));mainActivity.finish();}}

去isString里面找

静态代码块中加载了libgallery.so

image-20250502010114516

找到函数名isString

image-20250502010340282

image-20250502010451696
bool __cdecl Java_com_example_gallery_MainActivity_isString(int a1, int a2, int a3)
{int v3; // esiconst char *v4; // edisize_t v5; // eaxsize_t v6; // ecxchar *v7; // ediconst char *v8; // edxint v9; // esisize_t v10; // edichar *v11; // eax_BYTE *v12; // edx_BYTE *v13; // esi_BYTE *v14; // esiint *v15; // esi_BYTE *v16; // esi_BYTE *v17; // edxbool result; // albool v19; // sisize_t v20; // [esp+10h] [ebp-28h]const char *src; // [esp+14h] [ebp-24h]int dest; // [esp+1Ch] [ebp-1Ch] BYREFsize_t v23; // [esp+20h] [ebp-18h] BYREFvoid *ptr; // [esp+24h] [ebp-14h]unsigned int v25; // [esp+28h] [ebp-10h]v3 = a1;v25 = __readgsdword(0x14u);v4 = (const char *)(*(int (__cdecl **)(int, int, _DWORD))(*(_DWORD *)a1 + 676))(a1, a3, 0);v5 = strlen(v4);if ( v5 >= 0xFFFFFFF8 )sub_12FF0(&dest);v6 = v5;src = v4;if ( v5 >= 0xB ){v9 = v5 | 7;v10 = v5;v11 = (char *)operator new((v5 | 7) + 1);v6 = v10;v7 = v11;ptr = v11;dest = v9 + 2;v3 = a1;v23 = v6;v8 = src;goto LABEL_6;}LOBYTE(dest) = 2 * v5;v7 = (char *)&dest + 1;v8 = src;if ( v5 ){
LABEL_6:v20 = v6;memmove(v7, v8, v6);v8 = src;v6 = v20;}v7[v6] = 0;(*(void (__cdecl **)(int, int, const char *))(*(_DWORD *)v3 + 680))(v3, a3, v8);if ( (dest & 1) != 0 ){if ( v23 != 6 )goto LABEL_30;}else if ( (unsigned __int8)dest >> 1 != 6 ){goto LABEL_30;}v12 = (char *)&dest + 1;if ( (dest & 1) != 0 )v12 = ptr;if ( *v12 != 65 )goto LABEL_30;v13 = (char *)&dest + 3;if ( (dest & 1) != 0 )v13 = (char *)ptr + 2;if ( *v13 != 66 )goto LABEL_30;v14 = (char *)&dest + 2;if ( (dest & 1) != 0 )v14 = (char *)ptr + 1;if ( *v14 != 67 )goto LABEL_30;v15 = (int *)((char *)ptr + 3);if ( (dest & 1) == 0 )v15 = (int *)&v23;if ( *(_BYTE *)v15 != 68 )goto LABEL_30;v16 = (char *)&v23 + 1;if ( (dest & 1) != 0 )v16 = (char *)ptr + 4;if ( *v16 != 69 ){
LABEL_30:result = 0;if ( (dest & 1) == 0 )return result;goto LABEL_31;}v17 = (char *)&v23 + 2;if ( (dest & 1) != 0 )v17 = (char *)ptr + 5;result = *v17 == 70;if ( (dest & 1) != 0 ){
LABEL_31:v19 = result;operator delete(ptr);return v19;}return result;
}
image-20250502012151210

image-20250502015820410

验证答案:由于 APK 打不开,我只能用 frida 去主动调用isString,如果返回true,说明正确

Java.perform(function () {let a = Java.use("A0.a");a["a"].implementation = function () {// 在闪退之前主动调用let m = Java.use("com.example.gallery.MainActivity").$new();console.log("isString: " + m.isString("ACBDEF"));return true;};
})

3.分析APK检材,该程序进行恶意行为时保存的文件使用的加密算法及加密模式是?(答案格式:大写,如XXX-XXX) (1.0分)

Cipher.getInstance

Cipher.getInstance(...) 是 Java 加密框架中用于 创建加密或解密引擎 的方法,是 javax.crypto.Cipher 类的一个静态工厂方法。它是 Java 中实现对称加密、非对称加密、摘要算法等核心的工具之一。

image-20250502022010433

AES-GCM

4.分析APK检材,该程序进行恶意行为时保存的文件使用的加密密钥是?(答案格式:与实际大小写保持一致) (3.0分)

image-20250502022437392

你要知道密钥是多少,就必须要拿到 stringFromJNI() 的返回值。

主动调用吧

原来复制的:

把.stringFromJNI()提取

let GalleryActivity = Java.use("com.example.gallery.GalleryActivity");
GalleryActivity["stringFromJNI"].implementation = function () {console.log(`GalleryActivity.stringFromJNI is called`);let result = this["stringFromJNI"]();console.log(`GalleryActivity.stringFromJNI result=${result}`);return result;
};

模板:

Java.perform(function () {let a = Java.use("A0.a");a["a"].implementation = function () {// 在闪退之前主动调用let obj = Java.use("com.example.gallery.GalleryActivity").$new();console.log("stringFromJNI: " + obj.stringFromJNI());return true;};
})Java.perform(function () {let a = Java.use("第一个包,第一个类");a["第一个类"].implementation = function () {// 在闪退之前主动调用let obj = Java.use("真正函数所在位置").$new();console.log("stringFromJNI: " + obj.函数调用的方法());return true;};
})

最终:

Java.perform(function () {let a = Java.use("A0.a");a["a"].implementation = function () {// 在闪退之前主动调用let obj = Java.use("com.example.gallery.GalleryActivity").$new();console.log("stringFromJNI: " + obj.stringFromJNI());return true;};
})
stringFromJNI: 0123456789abcdef0123456789abcdef
stringFromJNI: 0123456789abcdef0123456789abcdef
stringFromJNI: 0123456789abcdef0123456789abcdef
stringFromJNI: 0123456789abcdef0123456789abcdef

思路2:

stringFromJNI在也是native,该方法由本地(Native)代码实现,而不是用 Java 实现

image-20250502023243645

image-20250502023437457

0123456789abcdef0123456789abcdef

5.分析APK检材,该程序上传文件的服务器通信URL是多少?(答案格式: https://xxxx/xx/xx ) (1.0分)

源码里有

https://biwuzhuanyongurl.com/upload

6.分析APK检材,以下哪个是该程序存在的恶意行为? (1.0分)

A. 偷偷调用前置摄像头拍照并上传图片至服务器

B. 偷偷调用后置摄像头拍照并上传图片至服务器

C. 后台偷偷录音并上传音频至服务器

D. 偷偷获取通讯录信息并上传服务器

E. 偷偷获取短信信息并上传服务器

image-20250502022207436

A

五、网络流量分析 (共6题19.0分)

请根据网络流量包检材,回答以下问题:

1.分析网络流量包,请问目录遍历攻击开始时间是什么时候?(答案格式:1990-01-01 01:01:01) (1.0分)

image-20250430160217897

2024/10/24 17:26:12

2.分析网络流量包,可以发现哪种攻击行为? (1.0分)

A. 网络钓鱼

B. SQL注入

C. 拒绝服务攻击

D. 恶意软件传播

E. 中间人攻击

image-20250430160335542

B

3.分析网络流量包,黑客获取到的数据库名称是?(答案格式:小写) (3.0分)

image-20250430160411958

secret

4.分析网络流量包,黑客通过时间盲注获取到的数据是什么?(答案格式:与实际大小写保持一致) (6.0分)

image-20250430154202389

Th!s_1s_5ecret!

5.分析网络流量包,黑客使用什么webshell管理工具控制服务器?(答案格式:请写中文名,无需填写版本号) (3.0分)

冰蝎

6. 分析网络流量包,黑客通过后门执行的最后一条命令是什么?(答案格式:与实际大小写保持一致) (5.0分)

image-20250430161501076

image-20250430161450426

type login.php

六、数据分析 (共4题10.0分)

请根据数据分析检材,回答以下问题:

1. 分析数据库检材,该数据库中会员姓名包含“强”字的会员数量为多少?(答案格式:纯数字) (1.0分)

SELECT * FROM member WHERE userName LIKE '%强%'

2. 属于会员id“89378”的直接下级用户数为多少?(答案格式:纯数字) (1.0分)

SELECT COUNT(*) FROM member WHERE parentId = 89378

3. 请计算每名会员的总返佣金额,写出总返佣金额最大的会员id;(答案格式:纯数字) (3.0分)

SELECT userId,SUM(newBlance-oldBlance) as `佣金` FROM salary GROUP BY userId ORDER BY `佣金` DESC

4.计算在2024年5月1日到2024年5月30日之间(包含5月1日和5月30日),总提现金额大于1000的用户数量;(答案格式:纯数字) (5.0分)

SELECTuserId,SUM(withdrawAmount)
FROMwithdraw 
WHEREFROM_UNIXTIME( creationTime /1000,'%Y-%m-%d')>='2023-05-01'
AND FROM_UNIXTIME( creationTime /1000,'%Y-%m-%d')<='2024-05-30'
GROUPBYuserId 
HAVING
SUM( withdrawAmount )> 1000
http://www.jsqmd.com/news/885923/

相关文章:

  • KylinOS KYSEC联网控制实战:从临时关闭到永久禁用netctl的完整命令指南
  • Linux驱动管理速查手册:lsmod, insmod, rmmod, modprobe 四大命令保姆级使用指南
  • 当AI学会告白:骁龙在520,把科技写成人的温柔
  • 从FastAPI到Django Channels:实战pytest-asyncio测试异步Web应用(含Mock技巧)
  • ARM7嵌入式开发:从GCC工具链到外设驱动的Sceptre开发板实战指南
  • 量子纠错码VarQEC:原理、实现与硬件优化
  • 保姆级教程:在Ubuntu上配置Frida环境,搞定Android App的IO重定向与签名绕过
  • UnityWebRequest请求HTTPS接口总报错?别慌,这份SSL证书验证避坑指南请收好
  • 2026年超声波泥水界面仪十大品牌排名深度评测:技术参数、市场表现与选型实战指南 - 水质仪表品牌排行榜
  • Ofd2Pdf:彻底解决OFD文档格式兼容性难题的专业工具
  • 观察 TaoToken 在多模型间自动路由对服务可用性的实际提升效果
  • VideoDownloadHelper终极指南:三步掌握全网视频下载的完整教程
  • Unity项目DrawCall降不下来?试试用Mesh Baker合并贴图集,保姆级图文教程
  • 【华为OD机试真题 新系统】993、小学英语老师批改作文 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
  • QMCDecode终极指南:如何在macOS上轻松解密QQ音乐加密格式
  • Upload-Labs-Linux
  • Agent在银行对账和监管报送方面有哪些成功实践?金融级智能体全景技术拆解与落地指南
  • CTF新手必看:从一张二维码到拿到Flag,手把手复盘BUUCTF那道经典杂项题
  • 如何用HsMod解锁炉石传说60+项隐藏功能:终极优化指南
  • 欧盟正式动手:关键零部件,中国供应不能超过40%
  • 基于SMD与贝壳的微型音频装置:从电路设计到嵌入式开发的完整实践
  • 番茄小说下载器:3步构建你的个人离线图书馆
  • 别再手动测模型了!用Simulink Test Manager实现自动化测试(附Excel表格配置详解)
  • 【企业级AI Agent x 数据系统】【02】Function Calling 替代 Text-to-SQL:受控数据接口的工程范式
  • 告别‘not a dynamic executable’:手把手教你配置Kylin系统运行32位老应用
  • 终极歌词同步神器LRCGET:5分钟为你的音乐库添加完美歌词
  • 别再猜了!彻底搞懂Unity中Texture的sRGB选项:勾与不勾,对Alpha混合结果影响有多大?
  • 什么情况下会核销贷款
  • DrissionPage元素定位语法速查与实战避坑:从‘@’到‘sr’,一篇搞定所有查找姿势
  • 基于IRS2092的200W D类功放设计:从PWM原理到保护电路实战