前言
本章以Apereo Cas4.x项目进行调试环境搭建。
主要两个任务:
一是apereo cas项目调试运行搭建
二是ysoserial反序列化工具运行配置
至于漏洞环境搭建,window下只需将项目war包部署在tomcat下即可
工具
(1)调试工具
IntelliJ IDEA 2020.1
(2)运行环境
jdk1.8.0_141
Maven3.6.3(https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip)
apache-tomcat-9.0.41
(3) 漏洞环境
Window虚拟机中安装apache-tomcat-9.0.41
或启动vulhub-docker
站点源码:
cas-overlay-template-4.1(https://github.com/apereo/cas-overlay-template/tree/4.1)
cas-overlay-template-4.2.7(https://codeload.github.com/hjzgg/cas-overlay-template-4.2.7/zip/master)
cas-server-webapp-4.1.5.war和cas-server-webapp-4.2.7.war(会打包,这两个其实就不用下了)
https://mvnrepository.com/artifact/org.jasig.cas/cas-server-webapp
将上面提到的工具先安装好,相应的环境变量自个配好,不懂的就*度找教程,这里就不复述了。
注意:Maven中的bin/settings.xml文件,仓库的地址要配好,没有repo文件夹就自定义一个,命名随意。
一、Apereo Cas项目调试运行搭建
项目调试以4.1.5的源码为例,后面4.2.7的搭建过程也一样。
1、 先修改cas-overlay-template-4.1中pom.xm文件里cas指定的版本为4.1.5
2、 编译器安装成功后,导入项目
File->open->本地找到cas-overlay-template-4.1项目打开
3、 项目关联maven
File->setting->Build,Excution,Deployment->Build Tools->Maven,设置你的Maven安装路径、用户配置文件及仓库路径,最后apply->ok
如果没有repo,可以自定义一个文件夹,避免设在Maven根路径,文件可后续用作联网加载的项目依赖项存储位置。
点击右侧栏目“Maven”->刷新,等待加载完成。
4、 Idea配置运行的java环境
File->Project Structure->Projects->”Project SDK”->点击new->JDK->最后找到自己安装的java的jdk路径,点击确定
5、 右键“main”->New->Directory->命名java文件夹(命名自定义)
右键选择自定义新建的“java”文件夹->Mark Directory as->Sources Root(文件夹变蓝色)
6、 对于javaweb开发都会在servlet层存在doget或dopost方法接收和响应前端的请求;抓包查看可知登录时,采用post方式,所以要找到dopost方法所在的java文件并放置到新建的“java”包下。
项目基于springmvc开发,所以将项目(cas-server-webapp-4.1.5.war修改后缀为.zip)解压,文件夹lib下找到“spring-webmvc-4.1.8.RELEASE.jar“包
Jd-gui对这个jar包进行反编译,FrameworkServlet.java就是我们要的文件(为什么?Search查找”dopost”,勾选方法就找到了)
然后接着在java包下,新建Package,命名为“org.springframework.web.servlet“(一定要这个命名,不能改),再把FrameworkServlet.java文件放到该新建的包下
之所以爆红是少了依赖包,我们导一下就好了
File->Project Structrue->Libraries->”+”->java->项目“cas-overlay-template-4.1“->overlays-> org.jasig.cas.cas-server-webapp-4.1.5->WEB-INF->选择lib,点击确定
弹出窗口点击OK
在modules就可以看到添加的lib,勾选,点击apply,最后ok
但还是爆红,说明还少了包,聚焦到这里,点击小灯泡,选择第一项“Add java EE6 JARS …”
确定下载。
没报错,说明包已经导好了。
7、 Idea关联Apache服务器
点击Add Configuration->“+”
在弹出的列表选择”Tomcat Server”->local
配置本地安装好的tomcat路径
端口随意,不冲突就行
点击Deployment->”+”->第一项“Artifact..”->第一项”cas-overlay:war”,ok,点击apply,欧克了
8、 修改propertyFileConfigurer.xml文件中util标签中location的值为:file:项目的绝对路径 etccas.properties,自此调试环境已搭建完成
9、 测试环境效果
来到FrameworkServlet.java,ctrl+f查找dopost方法,下行断点
没接触过的,不会下断点的,看下图,行头空白地方左键单击一下就行,选择java line breakpoint
开始debug模式
就会在浏览器打开登陆页面,随便填点东西,点击登录
点击登陆后,就会跳到我们下断点的地方,说明调试环境没问题了,后面可以开始我们的娱乐环节了
补充:上图箭头所指的几个调试功能是常用的,后面调试会用到,提前了解一下。
二、ysoserial反序列化工具运行配置
1、Idea中打开ysoserial项目
2、配置Maven环境
File->Settings->Build,Exection,Deployment->Build Tools->Maven
修改这三项的路径为本地你的Maven安装的路径、配置文件(settings.xml)以及仓库路径(repo为本地我自建的文件夹,用于放置联网下载的依赖项)
注意:须在settings.xml文件中指定仓库位置,即自建的repo文件夹绝对路径
在右侧栏目点击Maven->选中ysoserial->点击刷新
3、配置java环境
File->Project Structure->project->选择本地安装的jdk
4、选中GeneratePayload文件(入口文件,我们可以随便自定义新的入口文件),debug运行,发现报错,查看哪个文件报错
我这里是FileUpload1和Jython1报错
聚焦到报错所在代码行->右键,选择Show Context Actions->优先选择Import Class,如果没有就Find Jar On Web
这里注释或者删掉
找遍了FileUtils文件的方法,也没看到readFileToString方法,所以删掉Jython1文件先,后面如果用到了再研究。
可以看到,运行成功了。
如有不对的地方,望各位大佬指正。
欢迎各位大佬关注公众号”Fighter安全团队“
文章都是第一时间发布至公众号,让我们共同学习相互进步