2024数证杯电子数据取证分析大赛 服务器部分 Writeup
数证杯服务器部分
- [填空题] 对服务器检材进行分析,站点服务器可能是从哪个云服务平台上调证过来的?(填写汉字,答案格式:亿速云) (2分)
阿里云
有阿里云相关进程
- [填空题] 对服务器检材进行分析,站点服务器中数据库的密码是?(按实际值填写) (2分)
Sxy000**
查看/data/cal-0.0.1-SNAPSHOT.jar
配置文件application.yaml
发现激活配置文件是sxj
,因此查看application-sxj.yaml
得到数据库密码
- [填空题] 对服务器检材进行分析,站点服务器用于提供服务发现的工具名是?(答案格式:zookeeper) (4分)
consul
主流的服务发现注册工具包括Consul、Zookeeper、Eureka、Etcd等,查看历史命令,在其中找到了Consul
- [填空题] 对服务器检材进行分析,站点服务器数据库配置文件名是?(答案格式:database.php) (2分)
application-sxj.yaml
同第二题
- [填空题] 对服务器检材进行分析,该网站涉及的APP名称是?(答案格式:微信) (2分)
顺心借
还是看配置文件
- [填空题] 对服务器检材进行分析,该网站用于存储大量身份证照的OSS中的AccessKeyID后八位是?(答案格式:按实际值填写) (2分)
EuZJybzD
还是看配置文件
- [填空题] 对服务器检材进行分析,站点服务器用于消息转发代理工具所使用的端口号是?(填写数字,答案格式:3306) (2分)
5672
RabbitMQ是实现了高级消息队列协议的开源消息代理软件
-
[填空题] 对服务器检材进行分析,站点服务器用于启动定时任务的代码片段存在于?(答案格式:LoginIndex.class) (4分)
MobileStatusTask.class
找
cron
-
[填空题] 对服务器检材进行分析,站点服务器用于验证用户输入的验证码是否匹配的代码片段存在于?(答案格式:LoginIndex.class) (4分)
AdminIndexConller.class
使用
AssertUtil.isTrue
方法判断是否相等String redisCode = (String)this.stringRedisTemplate.opsForValue().get(RedisConstant.ADMIN_PHONE_CODE + dto.getMobile()); AssertUtil.isTrue(dto.getCode().equals(redisCode), ");
-
[填空题] 对服务器检材进行分析,数据库服务器中Docker容器镜像中mysql的镜像ID号前6位是?(答案格式:123asd) (2分)
23b013
首先仿真 data.E01,进去后记得修改ens33 ip
/etc/sysconfig/network-scripts/ifcfg-ens33
。然后启动docker查看就行
[root@localhost ~]# service docker start Redirecting to /bin/systemctl start docker.service [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0.39 23b013c7c67d 3 months ago 572MB
-
[填空题] 对服务器检材进行分析,数据库服务器中DockerCompose的版本号是?(答案格式:1.1.1) (2分)
2.27.1
[root@localhost ~]# find / -name 'docker-compose' /usr/libexec/docker/cli-plugins/docker-compose [root@localhost ~]# cd /usr/libexec/docker/cli-plugins [root@localhost cli-plugins]# chmod +x docker-compose [root@localhost cli-plugins]# ./docker-compose -v Docker Compose version v2.27.1
-
[填空题] 对服务器检材进行分析,数据库服务器中用于存储后台登录账号的数据表名是?(答案格式:login) (2分)
sys_user
将下列内容写进mysql容器的
/etc/my.cnf
中[mysqld] skip-grant-tables
然后重启容器
docker restart f29ed5271c46
登录mysql
docker exec -it f29ed5271c46 mysql -uroot
修改
localhost
和所有主机
的root用户的密码,并刷新MySQL的权限FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ALTER USER 'root'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;
因为在上面jar包中配置文件的用户是
sxy
,为了能让网站连接上数据库,所以创建一个sxy
用户,并允许所有主机登录,其次授予sxj_prod
的权限CREATE USER 'sxy'@'%' IDENTIFIED BY 'Sxy000**'; GRANT ALL PRIVILEGES ON sxj_prod.* TO 'sxy'@'%'; FLUSH PRIVILEGES;
然后把咱们上面的
skip-grant-tables
去掉,并重启容器docker exec -it f29ed5271c46 sed -i "s/skip-grant-tables/ /" /etc/my.cnf docker restart f29ed5271c46
下一步连接上数据库,就得到了我们的答案
其次我们发现配置文件中的数据库地址是阿里云的,所以我们可以写一个
hosts
将阿里云
的地址指向我们的data.E01
机子的ipdata.E01的ip rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com
具体方法是将上面的内容加进
system.E01
的/etc/hosts
,加完之后我们可以ping一下看合适没[root@iZbp1gma2uf9hvsnbu9mdkZ ~]# ping rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com PING rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com (192.168.71.150) 56(84) bytes of data. 64 bytes from rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com (192.168.71.150): icmp_seq=1 ttl=64 time=0.267 ms 64 bytes from rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com (192.168.71.150): icmp_seq=2 ttl=64 time=0.148 ms 64 bytes from rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com (192.168.71.150): icmp_seq=3 ttl=64 time=0.219 ms 64 bytes from rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com (192.168.71.150): icmp_seq=4 ttl=64 time=0.171 ms
查看数据库管理员表,我们可以看到很多
state=1
说明没有启用,因此我们随机选一个启用 -
[填空题] 对服务器检材进行分析,后台管理员“xpt-0”所绑定的手机号码是?(答案格式:13001880188) (2分)
19521510863
数据库就可以看到
-
[填空题] 对服务器检材进行分析,用户首次借款初始额度是?(填写数字,答案格式:1) (2分)
4000
启动服务器之后,可以扫一下端口,看都有哪些服务
排查到
82
可以看到我们的目标顺心借
我们在前台发送验证码,发现使用的ip是
47.96.140.186
,因此需要替换/www/admin
中所有的47.96.140.186
变成我们system.E01
的ipfind /www/admin -type f -name "*.js" -exec sed -i 's/47.96.140.186/system.E01的ip/g' {} +
其次在启动
rabbitmq
的时候发现启动失败,分析/var/lib/rabbitmq/erl_crash.dump
崩溃时间:Wed Nov 20 00:13:09 2024 崩溃原因: Slogan: Kernel pid terminated (application_controller) ({application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{epmd_error,"iZbp1gma2uf9hvsnbu9mdkZ",timeout}}},{rabbit_prelaunch_app,start,[normal,[]]}}表明Erlang节点由于rabbitmq_prelaunch应用程序启动失败而终止。具体错误是epmd(Erlang分布式编程的端口映射守护进程)启动超时。
可以看到解析
iZbp1gma2uf9hvsnbu9mdkZ
超时,查看hosts文件,发现没有解析到127.0.0.1 进而修改127.0.0.1 iZbp1gma2uf9hvsnbu9mdkZ iZbp1gma2uf9hvsnbu9mdkZ
修改后直接启动成功然后启动
/root/consul.sh
和/data/jar.sh
,进入网页发送验证码给咱们启用的用户13238424249
在redis中写入这个用户的验证码
SET ADMIN-PHONE13238424249 1234 EXPIRE ADMIN-PHONE13238424249 600
验证码使用1234,成功登录
-
[填空题] 对服务器检材进行分析,受害者在平台中一共结款了几次?(填写数字,答案格式:1) (2分)
1857
-
[填空题] 对服务器检材进行分析,该平台中所有下单用户成功完成订单总金额是?(填写数字,答案格式:1) (2分)
11066700
-
[填空题] 对服务器检材进行分析,该平台中逾期费率是?(答案格式:1.1) (2分)
0.1
-
[填空题] 对服务器检材进行分析,该平台中累计还款总金额是?(填写数字,答案格式:1) (2分)
10194700
-
[填空题] 对服务器检材进行分析,该平台总共设置了多少种借款额度?(填写数字,答案格式:1) (2分)
18
19种有一个禁用了所以-1
-
[填空题] 对服务器检材进行分析,该平台一共有多少个借款渠道?(填写数字,答案格式:1) (2分)
131
要选择激活的
-
[填空题] 对服务器检材进行分析,该平台对已完成用户收取了总计多少元服务费,结果精确到整数?(填写数字,答案格式:123) (2分)
4051915
g-ghMQYlOO-1732275761628)]
19种有一个禁用了所以-1
-
[填空题] 对服务器检材进行分析,该平台一共有多少个借款渠道?(填写数字,答案格式:1) (2分)
131
要选择激活的
-
[填空题] 对服务器检材进行分析,该平台对已完成用户收取了总计多少元服务费,结果精确到整数?(填写数字,答案格式:123) (2分)
4051915