Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia Tuesday TopDrive KupDnes Navrcholu Bomba NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Vlákno názorů k článku
Nebezpečné webhostingy III

Jakub Vrána aura:77
2. 9. 2008 16:48 Nový

Tři chyby

  1. To, že zkopírování souboru funkcí copy změní vlastníka souboru, nijak neovlivňuje funkčnost direktivy open_basedir.
  2. To, že funkce tempnam přidává k prefixu souboru náhodné znaky, není motivováno změnou koncovky, ale zajištěním unikátnosti názvu souboru.
  3. Těžko říct, co autor myslí obratem "PHP považuje za obrázek". Funkce getimagesize, kterou má možná na mysli, každopádně s koncovkou souboru vůbec nepracuje a rozhoduje se výhradně na základě obsahu souboru.

Dne 21.10.2008 pořádám školení Bezpečnost PHP aplikací, kde se takových chyb nedopouštím. Tímto na něj autora srdečně zvu.

P.S. Tu zmínku o nebezpečnosti tečky jsem do PHP manuálu před čtyřmi lety napsal já.

uživatel si přál zůstat v anonymitě
2. 9. 2008 17:36 Nový

Re: Tři chyby

Až když se ozval tento autor, tak se mit celé vysvětlilo.
Vrána, Kosek i autor článku umějí hlavně všechno opisat ze zahraničních serverů.
Proto takové výtky, že tomu autor nerozumí, nemá zkušenosti a píše.
Vrána by měl místo reklam na své školení začít jedna férově a plnit to, co slíbí a nešvindolvat datz dopisů.
A Kosek - ten by především měl ze svého serveru smazat opsané První kroky.
Ale proč by takoto nejednali další další, když těmto dvěma to leta prochází.
2. 9. 2008 17:44 Nový

Re: Tři chyby

ad 1: Tak to asi umim carovat :) Ovlivnuje direktivu safe_mode, nenapsal jsem open_basedir. U direktivy open_basedir jsem uvedl, ze je jedno, co obsahuje, nikoliv, ze ji tato zmena ovlivnuje.

ad 2: Motivace byla tedy jina, bezpecnosti riziko zustalo.

ad 3: Na zaklade obsahu souboru se zminovana funkce nerozhoduje, jedinym ukazatelem pro ni je mime typ. Ten vsak neni pro utocnika problem zfalsovat a podstrcit dynamicky skript s falsenym typem a pokud je konrola zalozena i na whitelistingu, pak jednoduse pripojit suffix .jfif. Nasledek je jasny snad vsem. Tohle ve Vasi prednasce nemate?

Diky za pozvani, ale tento serial se nezabyval bezpecnosti webovych aplikaci, nybrz serveru.

PS: Gratuluji
Jakub Vrána aura:77
2. 9. 2008 18:08 Nový

Re: Tři chyby

1. Já to tam tedy zřetelně vidím: "některé PHP funkce lze donutit k tomu, aby pracovaly v prostoru jiného uživatele, a to i přesto ... že to direktiva open_basedir výslovně zakazuje".

2. Můžete tedy to bezpečnostní riziko rozvést? Funkce tempnam() dovoluje vytvořit soubor s názvem obsahujícím .php. Ale co z toho, když např. pomocí fopen() lze vytvořit soubor s libovolným názvem?

3. Funkce getimagesize() se rozhoduje podle obsahu souboru a ne podle jeho názvu. Před tím, než něco napíšete, byste si měl ověřit fakta - buď pohledem do zdrojových kódů PHP nebo alespoň pouhým vyzkoušením <?php getimagesize("obrazek"); ?>, které pochopitelně vrátí hodnoty na základě obsahu souboru.

Nesnažte se nedostatek znalostí dohánět arogancí.
2. 9. 2008 18:25 Nový

Re: Tři chyby

1. Kde v te vete vidite napsano, ze tato zmena ovlivnuje direktivu open_basedir? Ja tam ctu, ze libovolny obsah direktivy open_basedir utoku nezabrani. O nejakem ovlivnovani tam zminku hledam marne.

2. Funkce fopen() netrpi na open_basedir bypass, coz se o tempnam() bohuzel rici neda.

3. Napsal jsem podle MIME typu, nikoliv podle nazvu a uz vubec ne podle obsahu, jak pisete Vy. Prectete si moji reakci prosim jeste jednou a poradne.

Nesnazte se argumentovat necim, co jsem nerekl.
uživatel si přál zůstat v anonymitě
2. 9. 2008 20:17 Nový

Re: Tři chyby

Blablabla bleble plk; pubertalni penetracni tester, ktery momentalne nema do ceho adekvatniho pichnout (rozumej do mentalne srozumene 17lete pubertacky, kterou ohromuje tim, ze studuje informatiku a umi se prihlasit pres PuTTY), pise "serialy" na odborne servery a po zbeznem precteni PHP manualu, z nehoz polovinu veci nepochopil, se dohaduje s mnohaletym PHP vyvojarem. Opravdu se bavim.

Odborny a informacni prinos clanku nula, autor si misto toho masturbuje sve ego v diskusi.

Quo vadis, Lupo?! :=((
Jakub Vrána aura:77
2. 9. 2008 21:54 Nový

Re: Tři chyby

  1. Popis naznačuje, že celý problém spočívá v tom, že vlastníkem zkopírovaného souboru se stane uživatel, pod kterým běží webový server. Pokud jste měl na mysli nějaký jiný útok, tak to není patrné a popis je zavádějící.
  2. Myslíte chybu opravenou před dvěma roky (PHP bug #38963)? Stále mi zůstává záhadou, proč jste si vybral zrovna tuto funkci, když funkcí náchylných k obejití open_basedir byla celá řada.
  3. Napsal jste, že "PHP považuje za obrázek i soubor s příponou .jfif" (to je omyl). Když jsem oponoval, že funkce getimagesize() s názvem souboru vůbec nepracuje, opáčil jste, že pracuje s MIME typem (to je druhý omyl). Kde ten MIME typ podle vás vezme? Nechcete se raději podívat do toho zdrojáku?
Jakub Vrána aura:77
2. 9. 2008 22:12 Nový

Re: Tři chyby

Ještě k té bezpečnosti webových aplikací VS serverů:

  • Přinejmenším část "PHP považuje za obrázek i soubor s příponou .jfif" se týká hlavně bezpečnosti webové aplikace.
  • Na svém novém webu pentester.cz se pokud vím chcete věnovat i auditu PHP kódu.
  • Troufám si tvrdit, že na zmiňovaném školení se bezpečnost serveru probírá víc do hloubky než v tomto třídílném seriálu (v rámci v podstatě okrajového tématu "není bezpečné aplikace na nebezpečném serveru").

Přišlo mi, že v této oblasti máte jisté rezervy, proto jsem si vás dovolil na školení pozvat. Pokud by někdo takhle pozval mě, s radostí bych pozvání přijal. Stejně tak se těším na spuštění vašeho serveru.

2. 9. 2008 22:47 Nový

Re: Tři chyby

1. Ano, tento utok je popisovan. Nikde ale neni zminka o tom, ze by ovlivnoval direktivu open_basedir, coz jste zpochybnoval.

2. Sam jste uvedl, ze funkci obchazejicich restrikce direktivy open_basedir je cela rada, proc bych si tedy nemohl vybrat prave tuto? Bylo na ni mozne demonstrovat praci serveru Apache s priponami, tak proto, osobne mi to tedy jako zahada neprijde.

3. Ano, takto definovana veta omyl je, to uznavam. Co se tyce klamani funkce getimagesize(), neurazte se, ale co kdybyste si to namisto mavani zdrojovym kodem vyzkousel? Podle obsahu zminovana fce typ souboru rozhodne nerozlisuje, pokud zfalsuji hlavicku (konkretne MIME typ), pak pres tuto kontrolu prejde i skript s obsahem "Hello World!" a PHP jej bude slepe povazovat za obrazek.

Verte mi (dokonce bych se s Vami i vsadil), ze z oblasti bezpecnosti webovych aplikaci byste mi nemel co nabidnout, natoz na verejne pristupne prednasce, i kdyz Vase kvality nezpochybnuji.
Na spusteni noveho serveru se rovnez tesim.
uživatel si přál zůstat v anonymitě
2. 9. 2008 22:56 Nový

Re: Tři chyby

A vite, ze ta sazka by mne jako pozorovatele docela zajimala? Predevsim by mne zajimalo, jak by se to vyhodnocovalo. Muzete to prosim okomentovat?
2. 9. 2008 23:01 Nový

Re: Tři chyby

Nejsem pokrytec, pokud bych se na zminovane prednasce dozvedel neco noveho, co momentalne neznam, nestydel bych se to priznat. Kazdopadne s novymi informacemi na toto tema z verejne prednasky bych moc nepocital.
uživatel si přál zůstat v anonymitě
2. 9. 2008 23:08 Nový

Re: Tři chyby

To jo, ale pozvani jste odmitl;)
2. 9. 2008 23:14 Nový

Re: Tři chyby

Nebot tato prednaska stoji tri a pul tisice a dle naplne mi nema co noveho nabidnout, o cemz jsem presvedcen.
uživatel si přál zůstat v anonymitě
2. 9. 2008 23:18 Nový

Re: Tři chyby

Cimz se dostavame ke krasnemu paradoxu, ze byste se klidne vsadil a ty cestne byste rad priznal na teto prednasce, ze jste neco neznal... ale te prednasky se vubec neplanujete zucastnit. Nadhera.

V principu to vlastne pripomina vetsinu vasi argumentace. ;)

2. 9. 2008 23:27 Nový

Re: Tři chyby

A Vam prijde logicke, abych platil za neco, co mi s nejvetsi pravdepodobnosti naprosto nic noveho neprinese? Ten podminovaci zpusob v citovanych komentarich ma svuj smysl.
a
a (neregistrovaný) ---.klfree.cz
6. 8. 2009 14:04 Nový

Re: Tři chyby

neříkal jste předtím, že o tom, že vám ta přednáška nic nedá, jste přesvědčen? :-)
Jirka Vejrazka
Jirka Vejrazka (neregistrovaný)
3. 9. 2008 11:34 Nový

Re: Tři chyby

"Co se tyce klamani funkce getimagesize(), neurazte se, ale co kdybyste si to namisto mavani zdrojovym kodem vyzkousel?"

Tohle by se melo tesat do kamene! Proc cist zdrojaky, kdyz se to da vyzkouset. Ja trouba to cela leta delam spatne....
Jakub Vrána aura:77
3. 9. 2008 12:22 Nový

Re: Tři chyby

1. Jak jinak si mám vysvětlit obrat "přesto, že to direktiva open_basedir výslovně zakazuje"? Pokud jste měl na mysli skutečně ten tradiční scénář, kdy soubor vytvořený webovým serverem může v safe_mode pracovat s takto vytvořenými soubory jiných uživatelů, tak před tím open_basedit naopak ochraňuje.

3. Samozřejmě jsem to i zkoušel a výsledek zkoušky prezentoval v této diskusi. Kde PHP podle vás v kódu <?php getimagesize("obrazek"); ?> vezme MIME typ? Funkce getimagesize() se rozhoduje podle obsahu souboru, dokazují to zdrojové kódy i praktické zkoušky a vaše zarputilé přesvědčení na tom nic nezmění.

3b. Ještě mě napadá, že možná celou dobu mluvíte o hodnotě $_FILES['userfile']['type'] a máte možná pocit, že s funkcí getimagesize() nějak souvisí. Tuto hodnotu nicméně nastavuje prohlížeč a PHP ji jen posílá dál, takže obrat "PHP považuje za obrázek i soubor s příponou .jfif" je opět nesmyslný.

Sázku přijímám. Pokud se na školení nic nového nedozvíte, budete ho mít zdarma. Pokud naopak ano, tak mi zdarma provedete audit nějakého PHP kódu. (Možná by se hodilo, abyste před školením alespoň v bodech sepsal své současné znalosti, abychom to po školení mohli porovnat.)
uživatel si přál zůstat v anonymitě
14. 9. 2008 10:13 Nový

Re: Tři chyby

Jake prekvapeni, autor nereaguje;)
Jakub Vrána aura:77
15. 9. 2008 9:35 Nový

Re: Tři chyby

Autor podle svých slov tuto diskusi přestal sledovat, ale odpověděl mi alespoň e-mailem. Pravda je nicméně taková, že potom už neodpověděl ani na mail.
a
a (neregistrovaný) ---.klfree.cz
10. 8. 2009 2:07 Nový

Re: Tři chyby

Dovolil bych si přidat dva zajímavé odkazy, které se přímo vztahují k tomuto diskuznímu vláknu:

* http://php.vrana.cz/kontrola-bezpecnosti-serveru-na-volne-noze.php?new=8927#d-8842
* http://phpfashion.com/jak-penetruji-mladi-chlapci

Opravdu stojí za trpělivost si je přečíst ;-)
Zasílat nově přidané příspěvky e-mailem