JAVA反序列化漏洞之調試環境搭建(含ysoserial項目)


前言

       本章以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安全團隊“

文章都是第一時間發布至公眾號,讓我們共同學習相互進步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM