Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
drozdii07
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Jak sam zauważyłeś sprawdzanie tylko rozszerzenia jest mało warte (IMG:style_emoticons/default/wink.gif) Dodaj do tego sprawdzanie typu MIME i powinno obejść się bez takich plików (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
matijas6113
post
Post #3





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

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


ok zaraz obczaje co to jest MIME a jeszcze jak mozesz powiedzieć co ten kod miał za zadanie i czy mógł ten kod zostać wykonany.
Go to the top of the page
+Quote Post
drozdii07
post
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Jak mi się uda to zaraz ci napisze kod z tego pliku (IMG:style_emoticons/default/wink.gif)

http://www.tareeinternet.com/scripts/decrypt.php

Mi pokazuje alerta, ale trochę kodu widać (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował drozdii07 6.08.2011, 16:33:04
Go to the top of the page
+Quote Post
matijas6113
post
Post #5





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

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


Cos tam widac ale nie duzo;p nie jestem w stanie ogarnąc co mógł ten kod robic narazie wygląda mi to na zbieranie informacji a nie jako jakiś konkretny "atak" że tak powiem. ALe moze sie mylę.
Go to the top of the page
+Quote Post
drozdii07
post
Post #6





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Początek wygląd jak sprawdzanie czy został przesłany plik ;D
Go to the top of the page
+Quote Post
matijas6113
post
Post #7





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

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


szkoda, że więcej nie da rady zobaczyć... szukam przykładów z mime, żeby obczaić to jak to sprawdzać(IMG:style_emoticons/default/smile.gif) ale nie wiem czy w kazdym przypadku plik ma typ MIME...
Go to the top of the page
+Quote Post
Daiquiri
post
Post #8





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Proszę o propozycję sensownego* tytułu wątku na PW. Jak ją otrzymam - temat zostanie otwarty.

*oddającego charakter zagadnienia. "Pytanie" lub "problem" ma tutaj większość piszących.
Go to the top of the page
+Quote Post
matijas6113
post
Post #9





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

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: 20.12.2025 - 17:45