前言
本章以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:項目的絕對路徑\ etc\cas.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安全團隊“
文章都是第一時間發布至公眾號,讓我們共同學習相互進步