Váno??ní bezpe??nostní nadílka : podvržení PHP kódu


Bezpe??nostní díra

V ??em je problém? P?i editování wiki stránky se žádným zp?sobem neov??uje, zda je soubor, který pomocí formulá?e nahráváme na server, skute??n? obrázkem. Pak m?že kdokoliv s možností uploadovat obrázky, nahrát místo obrázku jakýkoliv PHP skript a spustit jej p?ímo ze stromové struktury Tikiwiki, p?esn?ji z img/wiki_up/ adresá?e. Abychom ?ekli pravdu, tak tato díra je docela triviální, hloupou a b?žnou chybou. Je docela udivující, že si toho ješt? nikdo nevšiml a neopravil tuto chybu již d?ive.


Jak se toho zbavit ?

Co nejd?íve se pus?te do oprav !

Zkontrolujte stav Vašeho Tikiwiki


Hledejte soubory s p?iponami .php, .php3, .php4 nebo .phtml ve Vašem img/wiki_up (nebo img/wiki_up/$tikidomain/ v p?ípad? MultiTiki) adresá?i. M?žete použít následující jedno?ádkové p?íkazy pro jejich odhalení (funguje i s MultTiki)

Copy to clipboard
find img/wiki_up -type f -name "*.php" find img/wiki_up -type f -name "*.php3" find img/wiki_up -type f -name "*.php4" find img/wiki_up -type f -name "*.phtml"

Zkontrolujte logovací soubory Vašeho Apache (serveru)


Abyste si ov??ili, jestli n?kdo už nezneužil této chyby k propašování nežádoucího PHP souboru na server, m?žete "grepnout" Vaše logy (pokud m?žete použít p?íkaz grep).

Copy to clipboard
grep 'img/wiki_up/[^"]*.ph\(p\(3\|4\)\?\|tml\) ' var/log/apache/yourtiki.access.log

p?ípadn? pokud jsou Vaše logy tzv. "rotated" a m?žete použít p?íkaz zgrep

Copy to clipboard
zgrep 'img/wiki_up/[^"]*.ph\(p\(3\|4\)\?\|tml\) ' var/log/apache/yourtiki.access.log*

Aplikujte opravu


Nejrychlejší první pomocí je zakázat možnost p?idávat k wiki stránkám obrázky - jde o zaškrtávací pole "Obrázky" v panelu pro správu Wiki (/tiki-admin.php?page=wiki).

Alternativn? lze omezit nahrávání obrázk? pro wiki stránky na skupinu lidí, které d?v??ujete, nastavením tiki_p_upload_picture práv na stránce Admin -> Skupiny.

Avšak pro skute??nou nápravu je pot?eba upgrade nebo patch/editace souboru tiki-editpage.php :

  • CVS uživatelé :
    Pouze sta??í updatovat Vaši sou??asnou verzi; oprava je již k dispozici ve všech v?tvích od 1.7.x do 1.10
    Copy to clipboard
    cvs -q update -dP

  • Ostatní :
    P?idejte následující ?ádek do souboru tiki-editpage.php
    Copy to clipboard
    if (preg_match('/\.(gif|png|jpe?g)$/i',$picname))

    p?esn? o ?ádek výše, než ?ádek obsahující
    Copy to clipboard
    move_uploaded_file( ...
    • ve verzi 1.7.x na ?ádku 106
    • ve verzi 1.8.x na ?ádku 138
    • ve verzi 1.9rcx na ?ádku 173 a 181
    • ve verzi 1.10 na ?ádku 172

Cesta systémového administrátora

Další alternativou (nebo návdavkem) k upgrade/patchi tohoto souboru je možnost zm?nit chování serveru p?i parsování PHP soubor? v img/ adresá?i.

  • Pokud používáte jako server Apache, avšak nemáte p?ístup ke globálnímu konfigura??nímu souboru, vytvo?te .htaccess soubor v img/wiki_up obsahující
    Copy to clipboard
    <FilesMatch "\.ph(p(3|4)?|tml)$"> order deny,allow deny from all </FilesMatch>

    pokud to nepom?že, požádejte Vašeho správce serveru o aktivaci všemocných .htaccess soubor? s pomocí
    Copy to clipboard
    AllowOverride Limit

    v Directory direktiv? pro Váš Tikiwiki strom adresá??. Pozn.: Pokud používáte multi-tiki instalaci, bude pot?eba p?idat .htaccess do každého img/wiki_up/$tikidomain podadresá?e.

  • pokud máte možnost zm?nit Váš Apache conf jelikož jej spravujete, p?idejte
    Copy to clipboard
    <Directory /var/www/tiki/img> <FilesMatch "\.ph(p(3|4)?|tml)$"> order deny,allow deny from all </FilesMatch> </Directory>

    kde je pot?eba upravit cestu pro adresá?, kde je umíst?n Váš img/ dir.

    Ob? výše uvedené metody pouze blokují p?ístup k php soubor?m v img/dir, ale m?li byste také pamatovat na .pl, .vb a jiné koncovky, pokud Vaše globální nastavení serveru povoluje spoušt?ní t?chto skript?/rozší?ení pro jiné preprocesory.


Nová vydání Tikiwiki jsou v p?íprav?


V každé z v?tví (u vydávaných verzí) bude k dispozici nová verze b?hem n?kolika málo následujících dní, jmenovit? 1.7.9, 1.8.5 and 1.9dr4. Pokud jste nezkusili n?kterou z uvedených možností

m?li byste upgradovat tak brzy, jak jen to bude možné !

P?ipomínáme, že vždy m?žete upozornit team Tikiwiki vývojá?? zabývajících se bezpe??ností Tikiwiki na e-mailové adrese securityzaviná??tikiwiki.org


za bezpe??nostní partu lidí kolem Tikiwiki, mose