JAVA反序列化漏洞之环境搭建调试篇

  • A+
所属分类:安全文章

00


前言


   JAVA反序列化漏洞,是近几年来红队的“宠儿”,比如说shiro反序列化、jboss反序列化、weblogic反序列化等等。这类漏洞有些利用条件并不苛刻,但是造成的危害极大。本系列将带领大家从0开始学习JAVA反序列化漏洞,从漏洞环境的搭建,到漏洞代码的调试分析,到漏洞的攻击利用和修复方法。拒绝当脚本小子从我做起。本章以搭建

Apereo Cas 4.X 的反序列化环境为例,学习环境搭建和调试技术。


01


环境准备


编译器:IntelliJ IDEA 2020.1

下载安装教程:

https://www.cnblogs.com/xfyuao/p/12750409.html


WEB服务器:apache-tomcat-9.0.41

下载安装教程:https://www.cnblogs.com/limn/p/9358657.html


JDK环境:jdk1.8.0_141

下载安装教程:https://www.cnblogs.com/harmful-chan/p/12193579.html


Maven:Maven 3.6.3

下载安装教程:https://www.cnblogs.com/zhangzhixing/p/12953187.html


注意:Maven中的bin/settings.xml文件的仓库的地址要配好,如果没有repo文件夹,可以创建一个。避免设在Maven根路径,文件可后续用作联网加载的项目依赖项存储位置。

JAVA反序列化漏洞之环境搭建调试篇

JAVA反序列化漏洞之环境搭建调试篇

项目源码下载:https://github.com/apereo/cas-overlay-template/tree/4.1


02


环境搭建


打开idea导入项目,并将pom.xml中的版本号进行修改。

JAVA反序列化漏洞之环境搭建调试篇File->setting->Build,Excution,Deployment->BuildTools->Maven,设置Maven安装路径、用户配置文件及仓库路径,最后apply->ok。

JAVA反序列化漏洞之环境搭建调试篇

按照提示配置jdk1.8运行环境。

JAVA反序列化漏洞之环境搭建调试篇

在项目列表中,右键“main”->New->Directory 创建一个java文件夹。

JAVA反序列化漏洞之环境搭建调试篇

JAVA反序列化漏洞之环境搭建调试篇

点击右侧栏目“Maven”->刷新,将会为我们下载好4.15版本的war包并解压好。这个过程有点慢,推荐直接到官网下载:https://repo1.maven.org/maven2/org/jasig/cas/cas-server-webapp/4.1.5/cas-server-webapp-4.1.5.war。

JAVA反序列化漏洞之环境搭建调试篇

下完后解压war到项目文件下可以看到如下内容。

JAVA反序列化漏洞之环境搭建调试篇

对于javaweb开发都会在servlet层存在doget或dopost方法接收和响应前端的请求;所以要找到dopost方法所在的java文件并放置到新建的“java”包下。项目基于springmvc开发,所以lib下的“spring-webmvc-4.1.8.RELEASE.jar“包拷贝到新建的java目录中。

JAVA反序列化漏洞之环境搭建调试篇

用jadx对文件进行反编译,找到dpost所在的FrameworkServlet.class。

JAVA反序列化漏洞之环境搭建调试篇

回到刚刚新建的java文件夹下,新建一个包命名为“org.springframework.web.servlet“,在包下再新建一个java文件,命名为FrameworkServlet。把在jadx中FrameworkServlet.class文件的内容复制到idea的FrameworkServlet..java文件下。

JAVA反序列化漏洞之环境搭建调试篇

接着导一下依赖包File->Project Structrue->Libraries->”+”->java->项目。

JAVA反序列化漏洞之环境搭建调试篇

“cas-overlay-template-4.1“->overlays-> org.jasig.cas.cas-server-webapp-4.1.5->WEB-INF->选择lib,点击确定。

JAVA反序列化漏洞之环境搭建调试篇

然后到项目配置中,加载lib。

JAVA反序列化漏洞之环境搭建调试篇

如果还有爆红,找到小灯泡的位置跟着提示进行安装。

JAVA反序列化漏洞之环境搭建调试篇

JAVA反序列化漏洞之环境搭建调试篇

下载完成后不爆红,就说明安装好所需依赖了。

JAVA反序列化漏洞之环境搭建调试篇

Idea关联Tomcat服务器,点击右上方的Add Configuration->“+” 在弹出的列表选择”Tomcat Server”->local配置本地安装好的tomcat路径,端口修改成8888或其他没被占用的端口。

JAVA反序列化漏洞之环境搭建调试篇

点击Deployment->”+”->第一项“Artifact..”->第一项”cas-overlay:war”,ok,点击apply。

JAVA反序列化漏洞之环境搭建调试篇

修改propertyFileConfigurer.xml文件中util标签中location的值为cas.properties文件的真实物理路径,自此调试环境已搭建完成。

JAVA反序列化漏洞之环境搭建调试篇

启动一下环境。

JAVA反序列化漏洞之环境搭建调试篇

启动完成后浏览器会自动打开页面。

JAVA反序列化漏洞之环境搭建调试篇


03

环境调试


来到FrameworkServlet.java,ctrl+f查找dopost方法,下行断点。

JAVA反序列化漏洞之环境搭建调试篇

没接触过的,不会下断点的,看下图,行头空白地方左键单击一下就行,选择java line breakpoint。

JAVA反序列化漏洞之环境搭建调试篇

开始debug模式。

JAVA反序列化漏洞之环境搭建调试篇

浏览器打开登陆页面,随便填点东西,点击登录。

JAVA反序列化漏洞之环境搭建调试篇

点击登陆后,就会跳到我们下断点的地方,说明调试环境没问题了,接下来就可以开始我们的娱乐环节了。

JAVA反序列化漏洞之环境搭建调试篇

上图箭头所指的几个调试功能是常用的,后面调试会用到,提前了解一下。


04


后记


   这是学渣成长之路的第 15 文章,以上用到的环境及工具均已打包。需要的小伙伴到后台获取链接即可。环境搭建、代码调试都是我们学习安全漏洞过程中,必不可少的环节。要学习的知识点越多,就越浮躁不得。不忘初心,脚踏实地。


需要靶机的小伙伴公众号回复“00005”


本文始发于微信公众号(学渣成长之路):JAVA反序列化漏洞之环境搭建调试篇

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: