Perfection or Vanity

Project: Terminated

Blog nie jest już dalej prowadzony ani aktualizowany. Mimo tego, wpisy i komentarze są dalej dostępne. Możesz przeczytać pożegnalny wpis albo przejść do archiwum.

...została wykryta przez studenta z Antwerpii. Exploit jest możliwy do zastosowania w wersji 6.0 z SP2 a także w poprzednich wersjach NUP.

Wszystko przez wstawienie bloku kodu JavaScript, gdziekolwiek do strony. Ma on postać:

<script type="text/jscript">
function init() {
document.write("The time is: " + Date() );

}
window.onload = init;
</script>

Zwyczajnie strona ma postać trzech żółtych kolumn wypełnionych przykładowym tekstem. Poniżej przedstawiony jest zrzut ekranowy strony widocznej w Internet Explorerze:

Wyświetla on datę i czas, lecz ukrywa wszystko inne na stronie - nie ważne czy występowało przed czy po tym kodzie. Odświeżanie strony nie pomaga na przywrócenie zawartości - co więcej! Nie aktualizowana jest godzina. Próba pokazania kodu źródłowego strony kończy się wyświetleniem dokumentu o następującej postaci:

The time is: Tue Jun 14 09:24:43 2005

Czyli nawet sama funkcja została ukryta. Pomimo, że błąd tylko wygląda na niemożność obejrzenia strony, to przypuszcza się całkiem realnie, że będzie możliwe wykonanie dowolnego kodu JavaScript. Wszelkie programy służące do wykrywania niebiezpieczeństw na stronach, typu Norton, McAfee, nie będą działać, ponieważ niebezpieczny kod może zostać, w ten sposób, ukryty przed użytkownikiem. Więcej na ten temat można przeczytać tutaj.

Błąd występuje także w Operze 7.54, a w Operze 8.01 po naciśnięciu przycisku Stop, który jakimś cudem nie jest nieaktywny. :> W obu przypadkach nie da się podejrzeć kodu strony. Lecz odkrywca błędu twierdzi, że w Operze nie da się uruchomić innego kodu, który mógłby zagrozić systemowi użytkownika.

Informacje i hiperłącza

Blog o projektowaniu zgodnych ze standardami stron internetowych.

Praktyczne przykłady, sztuczki CSS, sposoby obchodzenia błędów przeglądarek, lekki i nieinwazyjny JavaScript, użyteczny design, dostępność i skrypty użytkownika.

RSS

Informacje o wpisie

Napisał riddle 14 czerwca 2005 o 09:44

Kategorie: Internet Explorer, JavaScript & DOM, Przeglądarki

Dodaj do:

Wpisy archiwalne

Archiwum miesięczne

Dzięki!

Dodaj bloga do Technorati Favorites Dodaj bloga do Del.icio.us Blog należy do sieci 10przykazań.com

  1. zgoda (jarek) 1 14 czerwca 2005, 09:58

    Z czego wnosisz, że jest Niemcem (Antwerpia od bardzo dawna nie jest niemieckim miastem...)?

  2. Zaraz.. Dziura a Exploit to trochę co innego. Niby jak chcesz to wykorzystać i jak to się różni od normalnego wstawienia tego samego JavaScriptu na zwykłą stronę?

  3. jarek: poprawione, dzięki...
    adam: bo możesz wstawić co chcesz, wykonać co chcesz (skorzystać z innych dziur IE) i nikt Ci w tym nie przeszkodzi, bo nie widać kodu, mimo że on się wykonuje. Tak prznajmniej zrozumiałem z oficjalnego artykułu i tak jest tam napisane.

  4. IE "widzi" kod jak go wykonuje i swoje "zabezpieczenia" uruchamia - wciąż twierdzę, że możesz w ten sposób wykonać *dokładnie taki sam* JS jak mógłbyś wykonać umieszczając go jawnie w stronie (tyle, że nie zobaczysz jego źródła). Skanery antywirusowe o ile mi wiadomo nie *renderują* stron ani nie *uruchamiają* JavaScriptu, tylko patrzą w kod...
    Trochę announcement tego dzieciaka jest przesadzony, IMVHO.

  5. To nie bug to feature: http://news.com.com/2061-10789_3-5739734.html

  6. No fakt, przeczytałem więcej i rzeczywiście. Lecz czemu Firefox pokazuje najnormalniej na świecie stronę? A w innych trzeba się namęczyć?

  7. E.. przecież to stare :) Odkrycie na miarę tego, że <div> to "sekcja" ;)

    Co do FF to zastanawia mnie czy jest to zrobione z premedytacją (gdyż jest to stary "problem" i dotyczył nawet najwcześniejszych przeglądarek - może denerwować) czy nie do końca zaimplementowane document.write.

  8. W Konquerorze jest tak samo :?

Dodaj komentarz

Do formatowania komentarzy używaj Textile (HTML nie działa). Szczególnie jeśli wklejasz większe fragmenty kodu. W razie niepewności użyj podglądu komentarza.

Wypowiedzi obraźliwe, infantylne oraz nie na temat będą moderowane – pisząc postaraj się zwiększyć wartość dyskusji.

Komentarze nie służą do wysyłania wiadomości albo informowania o błędach, itd. Chcesz coś mi napisać – skontaktuj się.