Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] code injection w obrazku JPEG
matijas6113
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.08.2011

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


Witam,
Jest to mój pierwszy post i temat na tym forum. Otóż posiadam mała stronke na serwerze kolegi, która służy mi i znajomym do uploadowania małych plików na serwer tak aby każdy miał do nich dostęp (szkolne dokumenty, zdj itp). Uczę się php jednak nie wiem dokładnie jak zabezpieczyc strone. Upload wygląda tak ze ktoś uploaduje plik przez <form> i pole <input type="file">. Następnie skrypt php zapisuje go na serwerze w katalogu o nazwie (losowe ID z 9 znaków) a w folderze plik którego nazwa zostaje takze zmieniona na nazwe ID + . + rozszerzenie pierwotne pliku. Nazwa pierwotna zostaje zapisana jako tytuł pliku i zostaje dodatkwowo "konwetowana" htmlspecialchars(). Dodatkowo mozna jedynie wrzucac pliki o rozszerzeniach jpg, png, rar, txt innych nie przyjmuje. To taki krótki opis strony.

Teraz problem:
Ktoś wrzucił plik o nazwie *.php.jpg i jest to plik php zapisany pod rozszerzeniem jpg więc trafił na moją strone, kiedy klikne aby otworzyc ten plik na stronie otwiera sie jednak nic nie ma (wiadomo bo to nie zdj).

kod php tego pliku:

"mój temat jest za długi więc kod podaje w linku"
http://www22.zippyshare.com/v/77200708/file.html

I teraz moje pytanie ponieważ nie umiem zaczaić: jakie ten kod ma zadanie? czy ten kod był w stanie zadziałać jeśli był otwarty jako plik jpg na stronie?

z góry dziękuje za pomoc i przepraszam za ewentualne błedy.
Powód edycji: [Daiquiri]: Temat & Otwieram
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
matijas6113
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.08.2011

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


A więc powrót do tematu. Znalazłem bardzo ciekawy artykuł, który pomaga zrozumieć taki atak. Mam nadzieje, że moge posłużyć się zewnętrzymi materiałami:
http://php.webtutor.pl/pl/2011/04/11/code-...w-obrazku-jpeg/
Według tego artykułu taki kod mógłby być użyty gdyby galeria bądź inna strona wczytywała obrazek za pomocą include() bądź require(). Moja strona wyświetla taki zuploadowany obraz jak czysty obrazek czyli obraz nie jest wyświetlony jako zawratość strony lecz jest otwierany jako plik - otwiera sie w naszym oknie przeglądarki SAM obraz. Tak więc wnioskuję, że kod php nie mógł się w żaden sposób wykonać na mojej stronie, mam racje? jeśli natomiast obraz wyświetlany byłby na stronie lecz za pomocą html i znacznika <img> dajmy na to <img src="szskodliwyobrazek.jpg" /> to kod php w nim zawarty ma możliwość wykonania się?

Dodatkowo jak można trafnie sprawdzić typ pliku? MIME z tego co na szybko wyczytałem można sprawdzic za pomocą mime_content_type jednak to działa tylko na unixach i nie zawsze moze zadziałać dla pliku bo pliki mogą być spreparowane tak?

Z góry dziękuje za zaangażowanie i odpowiedzi. Postaram się sam rozwiązać chociaż część z tych zagadek i rozwiązania będę umieszczał w pierwszym poście jako EDIT.
Dziękuje drozdii07 za włączenie się do tematu i za pomoc:) Mam nadzieję, że znajdą się osoby, które będą w stanie odpowiedzieć na część pytań(IMG:style_emoticons/default/smile.gif)
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: 30.12.2025 - 03:39