Bezpečnostní díra v Drupalu

Redakční systém Drupal jistě představovat nemusím. Je to velmi oblíbený a rozšířený program na správu obsahu webových stránek (WCMS). Při čtení jednoho článku na Latríně mne zaujala možnost převést parsování URL z .htaccess souboru přímo do PHP (Např. z /.../.../ udelat rubrika=...&clanek=...), což je i v Drupalu. Stáhl jsem si tedy poslední verzi a mrknul do ní.

Pak jsem otevřel pusu, vytřeštil oči...a..málem mi to zůstalo. Ve složce /includes/ totiž Drupal má soubory s koncovkou .inc a jak každý ví, Apache běžně soubory končící na něco jiného než php, php3, php4, atd. neposílá žádnému CGI ke zpracování, ale přímo je odešle klientovi. Takže klient si pak v klidu může prohlížet zdrojové php skripty. Drupal se sice snaží tomuto zabránit nastavením Apache v .htaccess souboru, jenže co když hosting .htaccess nepodporuje?? Co když si uživatel řádek s konfigurací smaže?

<FilesMatch ".(engine|inc|info|install|module|profile|po|schema|sh|.*sql|theme|tpl(.php)?|xtmpl)$|^(code-style.pl|Entries.*|Repository|Root|Tag|Template)$">
  Order allow,deny
</FilesMatch;>

Osobně to považuji za velký bezpečnostní nedostatek, který jsem naposledy viděl u webu z roku 2001 (kde ale byla čitelná i ta hesla).

Řešení

Co by to programátorům udělalo, kdyby soubory přejmenovali na *.inc.php? A byl by pokoj... Jediné štestí je, že soubory obsahující hesla jsou v jiném adresáři a mají normalní koncovku .php.

evaluation

Komentáre

2007-10-07 21:04:38

a je velky problem ked si utocnik stiahne skript, ktory je bezne dostupny?

[2] Dundee
2007-10-08 00:36:06

Za beznych podminek to velky problem neni. Ve chvili, kdy si ale uzivatel Drupal upravi, tak to problem byt muze. Mimoto je volne zobrazitelny napr. i soubor profilu.

Libilo by se ti, kdyby se ti nekdo hrabal ve zdrojacich a bez svoleni cetl tvoje nastaveni a upravy?


Nerikam, ze tato chyba umoznuje Drupal napadnout. Pouze upozornuji na to, ze v Drupalu je pouzita technika, ktera uz se peknych par let nepouziva, protoze je brana za nebezpecnou. Fakt, ze z ni primo nevyplyvaji rizika (protoze hesla jsou jinde), jeste neznamena, ze je to v poradku. I potencionalni riziko je riziko. A je zbytecne tam to riziko ponechavat, kdyz naprava je velmi jednoducha.

2007-10-08 15:22:02

no, ja som z toho profile suboru moc nevycital. prinajhorsom ho mozem premenovat na .php a v .profile includovat .php.. pozeram ze drupal 6 beta 1 je na tom rovnako..

[4] Dundee
2007-10-10 01:08:50

Nejde o to, ze tam zrovna nic clovek nevycte. Je to proste spatne koncepcne. Zdrojaky by proste nemely byt zobrazitelne, neni k tomu zadny duvod. Naopak duvodu, proc je nezobrazovat, je spoustu. Divim se, ze vec, ktera se bezne uz nekolik let nedela, se muze objevit v takovemto RS.

[5] trta
2007-10-25 12:23:08

na soubory ve slozce include by uzivatel potazmo vyvojar modulu nemel vubec sahat. drupal poskytuje hodne velky moznosti, co se rozsirovani tyka a menit neco v jadru je samo o sobe vec dost nekoncepcni... pokud nekdo chce videt zdrojaky jadra drupalu, muze si je prece stahnout a prostudovat do libosti. navic mi prijde, ze uzivatel, ktery se hrabe v .htaccess (Co když si uživatel řádek s konfigurací smaže?) by mel mit dost znalosti na to, aby vedel, jaka rizika to muze mit. hranice sebebebzpecnejsiho systemu koncej tam, kde si uzivatel necha heslo k nemu v praci u pocitace na papirku...

Na tento komentár odpovedal [6] Dundee
[6] Dundee
2007-10-26 15:42:10

#5 trta: Tvoje argumenty chapu a uznavam, ze jsou opodstatnene.

Osobne mi ale prijde, ze kazdy system by mel mit zdrojaky pred uzivateli skryte. Proc zbytecne vytvaret potencionalni bezpecnostni nedostatek, kdyz jeho odstraneni nic nestoji? Nechavat pripony jako .inc mi prijde jako uplne zbytecny krok/riziko. Myslim si, ze nahrazovat je priponou .inc.php je proste otazka dobrych mravu :)

Na tento komentár odpovedal [7] Havran
[7] Havran
2007-11-07 08:16:18

#6 Dundee: *joke* Tak to potom navrhujem zrusit OpenSource ;) Ale seriozne - natom probleme nieco jepokial si naprogramujem vlastny modul... Zaujemca o jeho zdrojaky by vsak musel vediet jeho meno a meno suboru...

Na druhu stranu kto to mysli z webom na Drupale seriozne snazi sa mat taky hosting co mu v pouzivani .htaccess vyjde v ustrety. No a obycajny pouzivatelia typu 'jeej vsetci pisu aky je ten drupal skvely tak si ho aj ja dam na wz.cz) neprogramuju vlastne moduly.

comments closed