Java与SpringBoot网站的重构

Java简介

Java特点:

 Java的运行原理:

Jar包(以jadx软件中的jar包结构为例)

整体的jar包分为源代码和资源文件两部分

资源文件中的重要文件

application.properties记录了各种服务,特别是数据库配置文件,服务名称,服务端口号等

 MANIFEST.MF整体清单,类似于APK文件中的Manifest文件

 源代码是后台的业务逻辑,负责处理服务器和数据库之间的连接关系

SpringBoot+Vue框架网站的重构

有源码的情况

后台重构(mysql+maven+jdk+网站源码)

将网站源码放入idea软件中查看

重要配置文件:pom.xml和application.properties

pom.xml有网站的jdk版本和打包软件

而application.properites文件中有着数据库的配置信息

重构数据库

重构数据库时第一步就是需要确定原数据库的版本号,这里可以参考application文件中的spring.datasource.driveClassName的值,可以确定数据库支持的版本

先下载相对应的数据库版本

下载后发现数据库文件中没有data目录和my.ini的数据库配置文件,需要我们手动添加!

my.ini文件需要修改basedir的值和datadir的值

添加玩配置文件后,需要我们设置mysql的环境变量,方便系统在任意目录下能够找到我们的mysqld程序

按下图的步骤即可配置完一个数据库

最后我们使用navicat软件连接,使数据库可视化!

数据库权限更新

注意,使用navicat连接时出现1130报错,问题在于数据库不支持远程连接,只支持localhost连接,需要我们修改字段

进入mysql数据库,找到user表,在root用户下的host字段修改为%,表示任意,即可成功连接

命令为:

use mysql;

select host from user where user = 'root';

update user set host = ' %' where user = 'root' and host = 'localhost';

flush privileges;即可完成更新!

生成jar包

运行springboot的网站,即运行前后端的jar包文件

我们需要对网站源码进行打包来获取网站的jar包

打包步骤:idea:文件—》项目结构—》SDK(需要选择网站源码中pom.xml配置文件中的Jdk版本)

调试maven工具

idea—》设置—》构建工具—》maven

settings.xml文件中主要更改了镜像源,使用了阿里云国内的镜像源,方便编译工作!

环境搭建完成后,使用maven工具对网站源码进行打包

先运行clean,删除原有的环境,之后运行package,对网站进行打包

完成后,会在原有的基础上新增target文件,里面有jar文件

配置Java虚拟机的运行环境,使后台网站运行起来

前端代码还原

拿到前端源代码

查看配置文件package.json文件,发现是vue的前端框架,我们需要node.js对前端源代码进行打包,生成可部署的前端代码

node.js环境的配置

需要现将node.js路径配置成环境变量

之后在需要打包的前端代码的目录下运行node.js程序,生成dist文件夹

有关Node.js打包vue框架源码可以参考

https://blog.csdn.net/web2022050901/article/details/125165316

nginx服务器转发(需要配置web服务器,使浏览器能够顺利访问前端代码)

配置web服务器,端口是80,域名是localhost

使web服务器指向dist文件夹

这边我们可以试着去访问下,发现前端连接的后台程序并不是自己的后台程序

使用notepad++批量替换前端代码中的后台服务器地址,指向本地后台服务器

再次验证,发现前端代码已经指向自己重构的后台服务器

SpringBoot网站的重构完成,还需要对网站进行逆行登录

更改数据库中的admin密码数据为123的md5值

成功绕过登录

总结

在前后端有源码的情况下,网站重构的工作主要是对网站源码的处理,分为前端、后端两部分

前端使用Vue框架,可以使用node.js对该框架进行提取,形成可部署的前端代码,再结合nginx服务器转发web页面,即可实现对前端页面的访问

后端使用springboot的网站框架,拿到源码后需要对其jar包化,需要注意网站使用的jdk版本以及打包软件maven,配置完成后对后端网站源码进行打包,生成jar包

最后在Java虚拟机中运行jar包程序,启动后台程序

实现前端和后端的联动,需要在前端页面中添加后端程序所在的服务器ip和端口号

网站重构完成,如果需要绕过后台登录,则需查看登录页面的后台业务逻辑!

无源码的情况

在无源码的情况下,一般存在前端代码文件dist、后端程序jar包以及数据库文件!

还原数据库

新建的数据库名称需要与网站配置文件中的数据库名保持一致

新建数据库后导入数据库sql文件中的数据即可完成数据库的还原

启动后台程序

启动jar包

配置nginx服务,访问前台

至此,springboot+vue框架的重构全部完成

网站登录的逆向

网站后台密码的饶过其实对于很多网站来说,逻辑都是大同小异的,无非就是细节上的不同

首先,需要确定用户登录后台逻辑所在的函数方法位置

可以根据网络流量包的特征,缩小范围,直接在源码中定位!

最后定位到具体的登录代码,一般发现加密方式即可

通常简单的加密方式可以直接破解后修改数据库或者利用历史密码解密后登录

但复杂的加密方式则需要采用打印加密字符串的方式

因为是Java的代码,在jar中修改需要借助特殊的工具进行逆向,具体的就是在base64.decodeStr这段代码之后加上打印的代码,具体的逆向修改过程太过于复杂,加之本人未学习过逆向工程,这里不细说

主要使用的工具是jbytemod

SpringBoot、ThinkPHP

1、两大主流网站框架,相对来说,thinkphp是更为综合性的网站框架,其包含前端、后端代码程序,而springboot单单只是后端程序框架,前端则采用vue等网站框架,就本人认为,取证难度上springboot更大

2、因为PHP和Java编译的过程不同,导致网站源代码的更改方式不同,如果我们在网站逆向的过程中需要修改代码程序,PHP网站直接可以使用编辑器进行更改,而Java则需要使用特定的逆向工具对源码进行修改

3、两个框架在前台访问上存在不同,thinkphp一般还会采用宝塔等网站管理工具,而springboot网站采用nginx转发,配置好nginx服务器,即可成功访问前端资源!

4、thinkphp框架的后台登录页面一般需要自己去寻找,通过扫描等方式,或者凭借一定的取证经验,而springboot的后台在还原后即可看见,只需进行网站后台密码绕过的工作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值