Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zawirusowane zdjęcia
Paladyn
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 18.11.2009

Ostrzeżenie: (0%)
-----


Ostatnio zapytano mnie co zrobić w wypadku, gdy użytkownik będzie próbował uploadować zawirusowane zdjęcie na serwer (poprzez funkcję move_uploaded_file() lub copy() ). Szczerze mówiąc nigdy wcześniej nie przyszła mi taka ewentualność do głowy.
Czy rzeczywiście jest to realne zagrożenie? A jeśli tak jakie są możliwości zabezpieczenie strony/serwera przed taką sytuacją?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~MWL, papier to nie wyznacznik. (IMG:style_emoticons/default/tongue.gif)

A wracając do tematu - kiedyś robiłem ciut głębsze badanie na temat tej przypadłości. getimagesize nie sprawdza, czy są doklejone do pliku jakieś dane. Wynika to z tego, że w GIF/PNG wymiary są zapisane bodajże w nagłówku i po prostu dalsza część pliku nie jest potrzebna. Jeśli chodzi o JPG, jest to związane z konkretnymi blokami i dalej plik nie jest już czytany. W zasadzie wystarczy pierwsze pół kilobajta pliku (nawet uciętego), aby getimagesize nie zwróciło błędu.

Jeśli chodzi o możliwość wykorzystania tego kodu - była swego czasu luka w SMF, która zamieniała serwery w istne armaty do spamowania (tak nawiasem, pliki maskowały się w katalogach TinyMCE (IMG:style_emoticons/default/winksmiley.jpg) ). O ile w sytuacji, gdy obrazki są tylko dla nas, to nie ma ryzyka (zakładam, że nie będzie wykorzystywane PHP do ich wyświetlania), to w przypadku, gdy coś z nimi robimy (wyświetlanie przez readfile i pochodne) już stwarzało problemy.

Nie mam 100% pewności, ale na atak narażone są konfiguracje, w których PHP działa jako aplikacja (Fast)CGI.

Cytat
standardowo żaden kod (poza plikami .php) nie jest wykonywany.

No i tu jest pies pogrzebany - niestety nie masz racji. Serwer nie sprawdza (to jest jedna z głównych przypadłości bezpieczeństwa wykonania skryptów interpretera PHP), jakie rozszerzenie jest wykonywane. Wystarczy nadpisać tablicę MIME i nawet ten spreparowany obrazek się wykona jako skrypt.

Cytat
Ale tak przy okazji, jeśli erix mówisz o funkcji usuwania meta tagów to jaka to funkcja co? powiedz

ImageMagick, dowolne polecenie, parametr -strip: http://www.imagemagick.org/script/command-...tions.php#strip
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 16:07