第一届数证杯个人赛-服务器取证

admin 2024年12月6日15:55:03评论10 views字数 3643阅读12分8秒阅读模式
本次比赛服务器部分难度适中,着重考察Spring Boot框架、Docker容器、Jar包逆向、MySql数据库等内容。特别是ENC加密,需要一定的即时检索学习能力。
   本文主要是针对比赛题目进行分析和解题思路分享,只进行知识分享,不具一定的实战能力,后台不解答涉及可能侵害他人权利的问题,切勿用于违法犯罪活动。如果有工作方面的解答需求,请后台联系添加微信私聊。
第一届数证杯个人赛-服务器取证

SpringBoot+ENC加密&密钥存储位置

学习于文章:https://blog.csdn.net/zhuocailing3390/article/details/139908244

pom中需要配置jasypt依赖

<dependencies><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version></dependency></dependencies>

(1)配置文件中记录密钥

jasypt:encryptor:  password: hhX4FzbwcT

(2)写在jar包里

importorg.jasypt.encryption.pbe.StandardPBEStringEncryptor;publicclassJasyptTest {/*** 加密盐值,使用完成后进行删除,或者不能提交到`生产环境`,比如:*/privatefinalstaticStringPASSWORD="hhX4FzbwcT";publicstaticvoidmain(String[]args) {PooledPBEStringEncryptorencryptor=newPooledPBEStringEncryptor();SimpleStringPBEConfigconfig=newSimpleStringPBEConfig();// 用于设置加密密钥。密钥是用于加密和解密字符串的关键信息。config.setPassword(PASSWORD);// 加密算法的名称,jasypt-3.0.5版本后默认的加密方式config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");// 用于设置加密时迭代次数的数量,增加迭代次数可以使攻击者更难进行密码破解。config.setKeyObtentionIterations("1000");// 加密器池的大小。池是一组加密器实例,可确保加密操作的并发性。config.setPoolSize("1");// 用于设置JCE(Java Cryptography Extension)提供程序的名称。config.setProviderName("SunJCE");// 用于设置生成盐的类名称。在此配置中,我们使用了org.jasypt.salt.RandomSaltGenerator,表示使用随机生成的盐。config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");// 用于设置Jasypt使用的初始化向量(IV)生成器的类名。初始化向量是在加密过程中使用的一个固定长度的随机数,用于加密数据块,使每个数据块的加密结果都是唯一的。在此配置中,我们使用了org.jasypt.iv.RandomIvGenerator类,该类是一个随机生成器,用于生成实时随机IV的实例。这样可以确保每次加密的IV都是唯一的,从而增加加密强度。config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");// 指定加密输出类型。在此配置中,我们选择了base64输出类型。config.setStringOutputType("base64");encryptor.setConfig(config);// 明文1Stringname_encrypt="root";// 明文2Stringpassword_encrypt="123456";// 明文加密Stringencrypt1=encryptor.encrypt(name_encrypt);Stringencrypt2=encryptor.encrypt(password_encrypt);System.out.println("明文加密1:"+encrypt1);System.out.println("明文加密2:"+encrypt2);// 密文解密Stringdecrypt1=encryptor.decrypt(encrypt1);Stringdecrypt2=encryptor.decrypt(encrypt2);System.out.println("密文解密1:"+decrypt1);System.out.println("密文解密2:"+decrypt2);  }}

在spring boot项目配置文件中的ENC加密配置:

sys:name:ENC(Yt36hceu3xGXEzrz2jCPjvalaXQ5yIHE04SVT6lIkcktrxqtBZrlivkAkA9/9oZ2)password:ENC(0Ci6irPOko9IG+hBZJAGoguIuE52gF/XiigCV4DwLm6NfkoyvV4Etgc9FzKK3MYl)

ENC(xxxxxxxxxxxxx)形式存储密文

在controller中对密文调用:

@RestControllerpublicclassTestController {@Value("${sys.name}")privateStringname;@Value("${sys.password}")privateStringpassword;@GetMapping("/test")publicvoidtest() {System.out.println("name = "+name);System.out.println("password = "+password);  }}

其他涉及知识点在往期内容中:

MySql数据库部分知识:

电子数据取证每日一练-数据库和网站恢复

Spring Boot框架部分知识:

电子数据取证每日一练-服务器取证4

Docker容器部分知识:

电子数据取证每日一练-服务器取证5-docker容器

题目解析

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

16379

第一届数证杯个人赛-服务器取证

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

F*DZ-kZMs5qt

服务都在docker里,inspect查看jdk:17.0容器的具体信息,找到网站使用的jar包和yml配置文件

第一届数证杯个人赛-服务器取证

在jar包中搜索setPassword

第一届数证杯个人赛-服务器取证

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

a_member_st

在源码中搜“会员”,查询到使用的表名为a_member_st,所以不是blind_date数据库中的a_member,去看blind_date2

第一届数证杯个人赛-服务器取证
第一届数证杯个人赛-服务器取证

使用s048-3.0.0里的jastpy-1.9.3.jar把blind_date2数据库的密码解密出来

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=064l9Wwf9KjXlSz0phcwvg+R5xwzCNl7 password=F*DZ-kZMs5qt algorithm=PBEWithMD5AndDes
第一届数证杯个人赛-服务器取证
kidsk&klf^rv

Navicat连接blind_date2数据库

第一届数证杯个人赛-服务器取证

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

/zwz/role/getAllByPage

blind_date数据库中a_log日志

第一届数证杯个人赛-服务器取证

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

禁用

第一届数证杯个人赛-服务器取证

在源码里parameter目录下commonConstant记录了系统基础常量

第一届数证杯个人赛-服务器取证

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

内蒙古自治区

对blind_date2数据库中a_member_st表进行分析

第一届数证杯个人赛-服务器取证

往期内容推荐

2024第四届全国网络空间取证竞赛(FIC)决赛参考writeup

电子数据取证每日一练往期合集

原文始发于微信公众号(金星路406取证人):第一届数证杯个人赛---服务器取证

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月6日15:55:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   第一届数证杯个人赛-服务器取证https://cn-sec.com/archives/3473079.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息