![]() |
![]() |
![]()
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 (IMG:style_emoticons/default/smile.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 (IMG:style_emoticons/default/questionmark.gif) czy daje się on w ogóle uruchomić (IMG:style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 25.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Co po niektórych z tego wątku nie spodziewałbym się braku umiejętności korzystania z google ani braku ciekakowści (IMG:style_emoticons/default/smile.gif) Chyba panowie zbyt zramoraliście i spoczęliście na laurach (IMG:style_emoticons/default/wink.gif)
Przykładowy atak - jeden z wielu jakie możecie znaleźć z wykorzystaniem tej techniki: 1) wykorzystujemy dziurę w uploadzie plików graficznych i dodajemy javascriptowy comment payload do gifa test.gif 2) wykorzystujemy inny błąd (np. przy komentarzach, sql injection) i wstawiamy na stronę małe cuś: <script src="...../test.gif"></script> Dzięki temu omijamy sprawdzanie origin i możemy dorwać się do ciasteczka. Jedynie pod IE jest to trochę utrudnione (ale nie niemożliwe). W takim gifie można upakować więcej fajnych rzeczy. Jest także dostępna gifowa mixtura, która potrafi zrobić niezły bajzel (IMG:style_emoticons/default/smile.gif) Ale więcej nie będę pisał by wannabe hakier nie kierować zwłaszcza, że niektórzy tworzą serwisy mówiąc że taka sytuacja nie jest możliwa więc nie zabezpieczamy się przed nią.... @pyro: akurat zmartwię Cię - nie musisz być naćpany ani pijany by zostawić dziurę w serwisie. Żaden test nie zapewni o bezbłędności ani nie wykryje wszystkich błędów. Istnieje kilka technik obrony przed spreparowanymi danymi uploadowanymi, ale to pozostawię Tobie jako pracę domową byś poszukał, poczytał, znalazł. A potem przyszedł i powiedział jak bardzo myliłeś się. Pozdrawiam, Łukasz |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Widzę panowie, że zaczynacie się lekko "spinać". Pozwólcie więc, że wtrącę moje "8 groszy".
... 1) wykorzystujemy dziurę w uploadzie plików graficznych i dodajemy javascriptowy comment payload do gifa test.gif Rozwijając słowa Łukasza "comment payload", to wcale nie trzeba doklejać złośliwego kodu "na koniec" pliku, ale np. w przypadku formatu GIF można dodać do pliku komentarz (wszystko zgodnie ze specyfikacją). Tak samo w przypadku JPEGów można spreparować dane EXIF, itd. (Gdyby ktoś był ciekawy gdzie fizycznie w pliku ląduje taki komentarz oto *hexdump* z gifa 1x1 i komentarzem w postaci skryptu js). Trzeba tutaj zaznaczyć, że o ile doklejenie "byle czego" na koniec pliku może powodować gubienie tych danych w przypadku obrabiania obrazków (lub nawet "błędy formatu" czy walidacji), to format takiego gifa z komentarzem jest w 100% poprawny. Dlatego też, nawiązując do samego wątku doklejanie czegokolwiek na koniec pliku jest dla mnie trochę dziwne i wygląda to właśnie na jakiś automat co infekuje wszystko co może bez analizy - czyli "dawaj na koniec". (drobna dygresja: większość binarnych formatów plików z którymi miałem coś więcej do czynienia, była/jest w formie "fixed-length", więc żadne dane nadmiarowe na końcu nie powinny ich zepsuć). 2) wykorzystujemy inny błąd (np. przy komentarzach, sql injection) i wstawiamy na stronę małe cuś: <script src="...../test.gif"></script> Takie coś zadziała tylko pod warunkiem, że jak już napisał @nospor plik test.gif będzie tak naprawdę skryptem javascript o zmienionym rozszerzeniu na gif. Wątek natomiast tyczy się kodu javascript wplecionego w obrazek (pal licho czy "na końcu", czy "w środku" wykorzystując właściwości formatu pliku) i biorąc to pod uwagę to wykonanie tego kodu graniczy z cudem, bo przeglądarka (pomijając IE6 i inne eksponaty z muzeum) próbując sparsować taki plik zwyczajnie napotka "syntax error" i przestanie parsować ten skrypt (Chrome:"Unexpected token ILLEGAL", Firefox:"SyntaxError: illegal character", IE: "SCRIPT1014: Nieprawidłowy znak"). Zresztą gdyby to zadziałało, to każdy serwis przyjmujący obrazki od użytkowników i nie usuwający z automatu takich rzeczy z przesyłanych plików, mógłby "hostować" jakieś dziwne kody javascript. ... To śmiało możesz doprecyzować bo wydawało mi się że same origin policy czy CORS nie dotyczy tagu <script>? [(IMG:style_emoticons/default/smile.gif) ]
Dzięki temu omijamy sprawdzanie origin i możemy dorwać się do ciasteczka. Jedynie pod IE jest to trochę utrudnione (ale nie niemożliwe). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 02:45 |