前置准备
连接Finalshell这一步存在两个问题
第一个就是防火墙
记得关掉
第二个就是SSH的端口
netstat -natp
真欠啊
1.重建完整的系统后,redis对外暴露的端口号是多少?(答案格式:数字) (3分)【16379】
梭一梭
嗨嗨嗨,错了吧
注意题目是对外暴露端口
看docker的配置
2. 请找出加密mysql数据库连接密码所用的加密密钥(盐值)?(答案格式:注意大小写) (3.0分)【F*DZ-kZMs5qt】
连接数据库的盐值肯定会在源码里面存,不然你网站怎么连接数据库是吧
进到JDK
容器里面,要了解一个系统(容器)干过什么,先看历史命令
可以看到命令是指向/home/date/s048
这个目录
进去之后发现一个yml配置文件和一个jar包
先看看这个配置文件
mysql的配置项上,密码被加密了
再给这个jar包挪出来
docker cp 79d2dfa52a5e:/home/date/s048/s048-3.0.0.jar /
再用jadx-jui
打开一下
在资源文件里面发现zwz
依照这个目录我们去源代码里面找到zwz
往下找到data
,在找到utils
3. 请分析得出相亲网站的后台数据库中哪张表存放了会员相关信息,写出表名? (6.0分)
全局搜会员,出来的结果第一个就是
4. 已知用户在系统中的所有操作都会被记录,请找出用户在“查询角色”时,其请求的后端路径地址为?(格式:/api/query/…) (3.0分)【/zwz/role/getAllByPage】
和初赛一样的数据库操作
docker cp 2275ccba46c7:/etc/my.cnf /
先给my.cnf挪出来
改成免密登录再放回去
docker cp 2275ccba46c7:/etc/my.cnf / #挪出来docker cp /my.cnf 2275ccba46c7:/etc/my.cnf #放回去
免密
skip-grant-tables
重启容器以刷新配置
题外话
在第一次重启容器的时候可能会出现这样的报错
问题不大,重启一下docker容器即可
systemctl restart docker
docker
数据库连接
前面新建用户的操作都是一样的
新增一个我们用来登录的用户
再次进入容器后,尝试登陆MySQL
mysql
先看一下都有什么用户(别忘了加分号)
select user,host from mysql.user;
先刷新一下用户权限
flush privileges;
然后创建一个可以在外网登录的用户
create user 'lu'@'%' identified by '123456';
各参数含义
-
lu:账户 -
%:允许内部和外部登录的权限 -
123456:密码
然后进行授权
注意:在 MySQL 8.0 版本及以后的版本中,GRANT 语句的语法与早期版本有所不同,IDENTIFIED BY 不再用于 GRANT 语句中,而是应该使用 ALTER USER 来设置密码。因此,正确的做法是将 GRANT 语句与 ALTER USER 配合使用。
GRANT ALL PRIVILEGES ON *.* TO 'lu'@'%';
再刷新权限
flush privileges;
再次查看用户
然后我们回到宿主机,恢复原来的配置文件,然后再重复上面修改配置文件的步骤
在连接的时候一定要注意一个问题,由于是docker镜像的Mysql
所以在连接的时候需要用到SSH隧道
SSH的连接是用的宿主机的IP,常规设置上使用的镜像IP
查看镜像IP
docker inspect 2275ccba46c7 | grep -i network #查看Mysql镜像的网络模式,发现是自定义的网络模式 docker network inspect root_service-network #查看该自定义网络模式
连接数据库的配置
连接成功
答案
5. 请分析得出数据库用户表中status为-1状态值的含义为?(格式:学生) (1.0分)【禁用】
status这中状态值肯定要在源码里面给出定义,在Java源码里面肯定会有一个publc static final
来进行定义
全局搜status
6. 请统计平均月均收入第二高的省份(省份包含三大类:省、直辖市、自治区)(答案格式:请写出完整的省份名(或直辖市名、自治区名),如江西省、天津市、西藏自治区) (3.0分)【内蒙古】
从前面的配置文件我们可以看见这个网站其实有两套数据库
第二套数据库的镜像IP是172.19.0.4
在前面查看docker网络模式的时候可以找到这个镜像
根据NAME
找到了这个镜像
按照上述办法连接数据库已经不成功了,因为一直都没有办法创建mysql.sock,所以没办法本地连接
跳过密码检验也就不成功了,只能根据之前的信息去解密数据库了
盐值已知
追踪算法StandardPBEByteEncryptor.DEFAULT_ALGORITHM
发现使用了PBEWithMD5AndDES
算法
源代码里面使用了jasypt-1.9.3.jar进行加密,我们再使用他进行解密
操作参考https://blog.csdn.net/xyy1028/article/details/126766959
得到密码kidsk&klf^rv
然后连接数据库
进行计算
SELECTLEFT(address, 3) AS address_prefix, AVG(income) AS avg_incomeFROM a_member_stGROUPBY address_prefix;
原文始发于微信公众号(网络安全与取证研究):【电子取证】2024数证杯决赛个人赛——服务器取证
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论