Table of contents
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)
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).
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
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 clipboardcvs -q update -dP
- Ostatní :
P?idejte následující ?ádek do souboru tiki-editpage.php
Copy to clipboardif (preg_match('/\.(gif|png|jpe?g)$/i',$picname))
p?esn? o ?ádek výše, než ?ádek obsahující
Copy to clipboardmove_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 clipboardAllowOverride 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.
- ?t?te více na http://httpd.apache.org/docs-project/
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