2024数证杯决赛个人

请根据计算机检材,回答以下问题: (10道题,共19.0分)

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

应该是这个?从注册表应该是能看到挂载痕迹

结果为700755

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

事件文件Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx

结果为192.168.50.227

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

仿真挂载,得到是M盘

那么之前注册表看到的G盘就大概率是带加密的那个

结果为M

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

结果为0A7152C5AA002A3D65DC5C5C5FAAB868

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

夜神模拟器里有微信

聊天记录中发送了许多图片,其中就有包含了密码的图片

容器的话就是这个3TG543gdf54gdR3DFH46

解密后里面似乎也不是啥有用的东西,应该就是考嵌套证据

结果为1P2P3$$pian5p6p78pian

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

根据邮件日期和IP判断

结果为6CF25FFF7D2882DBF5722B3B9E382B5F

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

桌面有洋葱浏览器,看一下数据库\Users\admin\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default\places.sqlite

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

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

最后一个分区中,看$I开头对应的文件的创建时间即可

结果为2024-11-09 21:59:48

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

邮件附件

但是这里xways好像有问题,附件没解析完全,手动导出里面的base64转文件

exif信息里的是度分秒的形式,要转换一下

结果为40.0112N,112.7001E

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

最后一次登录成功是2024-11-09 22:18:20

倒数第二次是22:11:56,找中间的4625即可

最后一条是admin的,其他都是李四

结果为6

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

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

manifest里

结果为FK3XDN2UKPJ5

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

结果为1234qwer

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

A: 南宁市青秀区

B: 南宁市江南区

C: 济南市历城区

D: 上海市松江区

E: 上海市宝山区

这种综合的直接上火眼

导出来查地址

结果为ABCE

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

结果为com.maicai.freejizhang

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

数据库文件App\com.maicai.freejizhang\Documents\DB206993152\wacai365.db

select sum(money) from TBL_TRADE where typeuuid in ( select uuid from TBL_OUTGOCATEGORYINFO where name = '礼金红包' ) and accountuuid='7EB78B8F64E24EB6956DC9DB44720794'

单位是分

  结果为170000元

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

笔记软件数据库App\com.smartisan.notes\Documents\stdb.sqlite

结果为201808188

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

解密一下高德的数据库

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

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

微信聊天记录,中间发了一张图片

图片分辨率很低,但是有100多k,查看一下发现夹杂了一个文档

密码就是聊天记录里提到的mm20241105

结果为344元/克

请根据服务器检材,回答以下问题: (6道题,共19.0分)

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

结果为16379

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

拿一下项目,先看配置文件,确实能发现密码被加密

查看代码可以看到有配置注解, 就是这里处理加密,对于PBE来说,输入的就是盐

再跟一下可以得到算法

从而解密

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));
    }
}

结果为F*DZ-kZMs5qt

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

用直接解密好的配置去通过SSH隧道连接,在从数据库中

看代码也可以确定

结果为a_member_st

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

a_log表中

结果为/zwz/role/getAllByPage

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

看entity

结果为禁用

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

结果为内蒙古自治区

请根据APK检材,回答以下问题: (6道题,共14.0分)

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

sdk版本过高,常规的模拟器是无法运行这个app的,可以用as或者真机

需要注意是系统权限,后面的是这个应用自定义的权限

结果为4

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

可以看到是通过so去进行的判断

看一眼so,就是一个个字符处理后去判断,原本是数字,按r即可,处理完是ABCDEF,可以看到前面值有变化(ptr+X这种),所以得到处理前应该是ACBDEF

结果为ACBDEF

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

动态申请相机权限

申请权限成功后调用t

然后通过f.a执行一个任务,执行的就是B.k

这里实现了run方法

调用前置摄像头

从so里拿密钥,然后进行AES/GCM加密,还有一个参数是随机生成的,但是后面发请求时会发送过去

结果为AES-GCM

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

可以使用hook的方式,直接hook密钥初始化参数

或者分析,可以看到直接就有了(java的代码钟有一段就是把这个字符串转成对应的byte数组)

结果为0123456789abcdef0123456789abcdef

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

结果为https://biwuzhuanyongurl.com/upload

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

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

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

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

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

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

结果为A

请根据网络流量包检材,回答以下问题: (6道题,共19.0分)

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

结果为2024-10-24 17:26:12

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

A: 网络钓鱼

B: SQL注入

C: 拒绝服务攻击

D: 恶意软件传播

E: 中间人攻击

一眼注入

结果为B

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

这里利用的是ascii注入,得到数据库名,不过通过后面一堆的注入也可以知道一直在查询secret的数据

在ascii注入中,返回长度是1227的就是正确的,拉下来就能知道了

结果为secret

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

CTF-NetA可以直接秒

接下来是分析,拿到库名只会又开始拿表名、字段名,都是secret,所以只看最后一批注入

可以看出来是时间盲注,大于指定的ascii就休眠3秒

查看了几个注入发现,当进行了sleep时,请求会由于超时被服务器丢弃,也就是没有返回包,通过这个把没有返回包的过滤出来,wireshark里可以先过滤出待分析的部分,然后写脚本跑一下

import pyshark
import re

# 设置 pcapng 文件路径
cap_file = r"G:\tmp\2024数证杯个人\时间盲注.pcapng"

# 打开 pcapng 文件并解析 HTTP 包
cap = pyshark.FileCapture(cap_file, display_filter="http")
# 创建一个字典来保存请求和响应的关系
requests = {}
pattern = r'200,1\),(\d{1,2}),1\)\)\)%3E(\d+),sleep'
sqls = {}
# 遍历所有 HTTP 包
for packet in cap:
    tcp_stream = packet.tcp.stream
    dic = {
        'request_uri':'',
        'response_code':''
    }
    if 'HTTP' in packet:
        if hasattr(packet.http, 'request_method'):
            if tcp_stream not in sqls:
                dic['request_uri'] = packet.http.request_uri
                sqls[tcp_stream] = dic
            else:
                dic = sqls[tcp_stream]
                dic.update({'request_uri':packet.http.request_uri})
                sqls[tcp_stream] = dic
        if hasattr(packet.http, 'response_code'):
            if tcp_stream not in sqls:
                dic['response_code'] = packet.http.response_code
                sqls[tcp_stream] = dic
            else:
                dic = sqls[tcp_stream]
                dic.update({'response_code':packet.http.response_code})
                sqls[tcp_stream] = dic

words = {}
for i in range(1,100):
    words[str(i)] = {
    '_min':0,
    '_max':9999
}
for key,value in sqls.items():
    uri = value['request_uri']
    response_code = value['response_code']
    matches = re.findall(pattern, uri)
    if matches:
        pos = matches[0][0]
        asc = int(matches[0][1])
        _min = words[pos]['_min']
        _max = words[pos]['_max']
        if response_code == '200':
            if asc < _max:
                words[pos]['_max']=asc
        else:
            if asc > _min:
                words[pos]['_min']=asc

for key,value in words.items():
    if value['_max'] == value['_min']+1:
        print(chr(value['_max']),end='')
# 关闭文件捕获
cap.close()
#Th!s_1s_5ecret!

结果为Th!s_1s_5ecret!

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

请求了两次密钥,第二次的是正确的

Accept是一个特征,看他的内容

结果为冰蝎

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

流量直接aes解密即可,密钥见5

解密后再解一个base64

结果为type login.php

请根据数据分析检材,回答以下问题: (4道题,共10.0分)

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

结果为2945

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

结果为11

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

结果为87314

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

结果为11756

posted @ 2024-12-04 17:26  WXjzc  阅读(1012)  评论(1编辑  收藏  举报