![]() |
![]() |
![]()
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 ![]() dokładniej wygląda to tak - jest to doklejone na końcu obrazka 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 ![]() ![]() |
|
|
![]() |
![]()
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
![]() -------------------- 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
|
|
|
![]()
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ąć ![]() |
|
|
![]()
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 |
|
|
![]()
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ć |
|
|
![]()
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 | ...
|
|
|
![]()
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
|
|
|
![]()
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 (
![]() ![]() |
|
|
![]()
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.
|
|
|
![]()
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 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() 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 | ...
|
|
|
![]()
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 |
|
|
![]()
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" ![]() Ten post edytował ano 15.02.2013, 00:22:08 -------------------- Linkedin | ...
|
|
|
![]()
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 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() 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. 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
|
|
|
![]()
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
![]() 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 |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
1) A mi się zdarzało i dośc czesto ![]() 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 ![]() -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
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
![]() ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod js się nie wykonywał, bo wówczas miałem normalne obrazki ![]() ![]() Życzysz sobie, żebym obalił również i 2 punkt ![]() -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dawaj. Chętnie zobaczę jak to zrobisz
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:59 |