2024年数证杯决赛——个人赛WP

2024年数证杯决赛——个人赛

容器链接:https://mp.weixin.qq.com/s/ldaZksyLYT2cgCoXYMLEgQ
(还是放在公众号啦,拜托师傅们点点关注!感恩!为了方便师傅们复盘,纯题目版也在其中哒。)

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

计算机取证

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

仿真后,直接查看最近访问,直接就可以发现BitLocker的密钥文件。

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

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

192.168.50.227

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

曾经挂载的目录,最方便的方式就是直接仿真后,挂载VHD,windows会默认挂载到上次挂载的目录上去。

在计算机中,会发现2个vhd文件。

都挂载后,发现338899.vhd为BitLocker加密,与题目不符。

996600.vhd的盘符为M。

M

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

算一下MD5

0A7152C5AA002A3D65DC5C5C5FAAB868

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

这个容器还是很好找的,没有后缀名,而且名称没有规律。

但是容器密码不知道在哪儿。后面看了一下文件,发现有模拟器,而且还有个备份文件,就肯定有东西,得进去看看。

要打开模拟器,需要开启cpu的虚拟化。

开启模拟器,并将备份导入其中即可打开。

在其中微信聊天记录中发现了VC密码。

对容器进行加载,成功。

1P2P3$$pian5p6p78pian

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

直接对邮件IP进行过滤,可以发现有三个,然后公告里面好像是说的最后一封。

导出计算MD5。

6CF25FFF7D2882DBF5722B3B9E382B5F

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

直接在tor浏览器中可以发现。

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

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

2024-11-09 21:59:48

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

在邮件中找到的

导出查看文件属性。

40.0112N,112.7001E

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

6

手机取证

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

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

FK3XDN2UKPJ5

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

1234qwer

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

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

AB:

C:

DE:

得上图呀,这东西就很抽象。强烈建议火眼加入离线地图。

ACE

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

什么拼音命名法。

com.maicai.freejizhang

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

找一下软件的数据库文件。

礼金红吧支出的ID和UUID都知道了。在支出表中筛选。

然后再寻找支付宝的ID属性。

再次再记录表中筛选。

求和。

然后查看了一下消费,发现海底捞等消费不符合寻常逻辑,应该是对钱的数值进行处理的。大概率是去除了小数点。所以需要将消费除以100才是真正的数值。

170000

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

到处都找遍了,都没有找到,那只能继续看小众软件了。

发现两个笔记软件,都看看吧。

直接在第一个锤子便签中找到了。

201808188

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

高德地图中可以直接找到家庭地址。

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

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

在微信聊天中发现了货物价格的敏感词,怀疑是聊天记录中的。对方发了一个图片,还撤回了一条消息。先研究一下这个图片吧。

是一个PNG图片,搜索一下十六进制文件尾49454E44AE426082

果然有藏东西。分离出来。这是个xls文件,后缀改为xls即可。

发现进行了加密。

不过聊天记录直接给了。

解开即可。

344

服务器取证

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

直接查看端口会发现没有redis服务,但是有docker,大概率在里面。

16379

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

看一下环境,大致可以知道,后台是java的站,nginx可能是前端,也可能是反代,数据库为mysql和redis。

连接密码应该要从后端看,所以看看jdk这个容器。

通过命令运行了jar包外的yml配置文件。

看看文件

找到了jar文件,反编译看看。还要看看配置文件。

确实密码被加密了。这个加密方式要百度一下,或者需要有开发经验的才知道。用的是jasypt,所以在代码中搜索一下。

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

这个类是在自编代码中的,所以大概率是在其中。

进去后就发现,有setPassword的调用,所以密码就知道了。

可以解密试试了。直接调用jar包进行解密操作。记得从jar包里面提取jasypt-1.9.3.jar。

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="ij+NuXpx6CZwYB1oGHA2M2E2na0G8Tux" password="F*DZ-kZMs5qt"

再登录mysql

F*DZ-kZMs5qt

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

在mysql中看了一下,发现好像没有。想起来配置中还有个数据库,连上试试。

还是需要先解密密码。

确实在这个数据库中。

a_member_st

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

在a_log日志中有。

/zwz/role/getAllByPage

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

这个要看后台显示了,所以先登录后台看看。

密码一眼bcrypt,生成一个替换。

可能是我虚拟机的问题,直接登录会报相应超时。

但是看日志是正常相应的,所以应该是相应延迟了。那就把超时时间设置长点吧。

再次登录。

进去了。

刚才数据库中3个0,一个-1,正好这里状态里面也是。

禁用

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

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

内蒙古自治区

程序功能分析

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

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

5

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

发现了邀请码的判断代码,然后这个函数是通过native声明的,说明实现so文件中,需要进一步逆向。

导出后,先看看导出表,是否有对应函数。然后直接看看反汇编代码。

可以发现一个字符串判断的代码,按照顺序进行排列。注意其中B的偏移为2,C的偏移为1,所以应该是ACBDEF

然后需要在程序中验证一下,但是打不开,应该是模拟器版本不支持。就很坑的题,离线比赛,我在哪儿去找个高版本模拟器嘛。最后只能尝试利用frida进行hook。

Java.perform(function () {
    let m = Java.use("com.example.gallery.MainActivity").$new();
    let result = m.isString("ACBDEF");
    if (result){
        console.log("验证码正确");
    }else{
        console.log("验证码错误");
    }
    
})

可以看到确实是这个。(由于采用的-W,需要手动启动软件,报错是软件自身问题,不影响验证)

ACBDEF

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

加密算法的话,这种加密后需要解密,为了保障速度,一般采用对称加密,也就是DES或者AES,看一下是否有对应调用关键词。

AES-GCM

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

查看代码,这个bArr2可以跟踪到上面的stringFromJNI,又是在so库中。

so库这个函数会返回0123456789abcdef0123456789abcdef,然后再看看后面经过了什么变化。

ArrayList arrayList = new ArrayList((length / 2) + (length % 2 == 0 ? 0 : 1));                int i3 = 0;
while (i3 >= 0 && i3 < length) {
    int i4 = i3 + 2;
    CharSequence subSequence = stringFromJNI.subSequence(i3, (i4 < 0 || i4 > length) ? length : i4);
    r1.c.e(subSequence, "it");
    arrayList.add(subSequence.toString());
    i3 = i4;
}

用来拆分返回值为2个一组的列表,然后后面的代码又是将数组转化为16进制,然后生成数组,设置为解密密钥。所以密钥的字符串就是0123456789abcdef0123456789abcdef。

0123456789abcdef0123456789abcdef

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

就这这个类中就可以发现。

https://biwuzhuanyongurl.com/upload

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

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

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

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

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

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

在代码中可以发现调用了前置摄像头。

在上传方法中,可以发现上传文件为图片。

A

网络流量分析

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

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

目录遍历的话,肯定是走的http或者https,筛选一下。

很明显,这段流量包中,从一开始就在进行目录爆破。
感谢评论区大佬指出错误,复盘时没有看时区。
需要在wireshark中点击视图->时间格式显示->日期和时间,这样显示的就是当地时区时间。在复盘时没有注意,选择了下方的UTC时间。

2024-10-24 17:26:12

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

A. 网络钓鱼

B. SQL注入

C. 拒绝服务攻击

D. 恶意软件传播

E. 中间人攻击

在爆破完成后,可以发现有大量的sql语句的包,所以应该是sql注入。

B

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

分析一下payload,这个已经开始注入获取字段名了,所以后面条件一定会涉及到数据库名和表名,也就是table_schema和table_name。

secret

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

时间盲注涉及到的就是sleep这个函数,搜一下就可以找到地方。

把payload进行url解码后会好看一些。理解一下就可以知道,在通过时间来进行猜字符,如果字符是>79的就会延迟3秒返回数据,一般这种3秒就会造成响应超时,就没有返回包。而如果不满足>79,则不会延迟,就会有返回包,图中是猜的第一个字符。

那就把第一个字符一起来分析。

  1. 字符对应ascii码>79
  2. 字符对应ascii码<=103
  3. 字符对应ascii码<=91
  4. 字符对应ascii码<=85
  5. 字符对应ascii码>82
  6. 字符对应ascii码<=84
  7. 字符对应ascii码>83

所以83<第一个字符<=84,就是也就是84,转化为字符就是T

同理,就可以推出所有的字符。

就得出答案了。但是有点坑的就是最后一个字符是空格,用脚本跑的话,就容易忽略掉。

Th!s_1s_5ecret!

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

这个流量一眼冰蝎。

冰蝎

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

获取密钥。

然后对最后的流量包进行解密。

type login.php

数据分析

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

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

导入数据库,写一下sql就可以了。

2945

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

SELECT COUNT(*) FROM member WHERE parentId = 89378

11

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

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

87314

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

SELECT
	userId, SUM(withdrawAmount)
FROM
	withdraw 
WHERE
	FROM_UNIXTIME( creationTime / 1000, '%Y-%m-%d' )>= '2023-05-01' 
	AND FROM_UNIXTIME( creationTime / 1000, '%Y-%m-%d' )<= '2024-05-30' 
GROUP BY
	userId 
HAVING
	SUM( withdrawAmount ) > 1000

11756

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值