Do penetrowania ośrodków webowych używane są różne techniki, które mogą być sklasyfikowane w trzech grupach:
Technika ta wykorzystuje zlecenia HTTP wysyłane do serwera webowego. Zapora ogniowa, przechwytując ruch, zazwyczaj koncentruje się na analizie parametrów komunikacyjnych tego ruchu. Kontroluje port przeznaczenia, adresy IP źródła i przeznaczenia oraz temu podobne atrybuty. Zapory ogniowe najczęściej nie weryfikują jednak tej części pakietu, która zawiera dane (kontrola rodzaju zlecenia). Umożliwia to podsyłanie zleceń wyglądających pozornie na legalne z punktu widzenia zapory ogniowej. Zlecenie takie, dostarczone do serwera webowego, zostanie także normalnie obsłużone. Może ono jednak być szkodliwe, wykorzystujące słabe punkty serwera do uzyskania niepożądanych efektów.
Jednym z celów hakera jest często uruchomienie własnego kodu na serwerze. Jeżeli napastnik ma możliwość uruchomienia swojego kodu z uprzywilejowanymi uprawnieniami dostępu, otwiera mu to drogę do przejęcia kontroli nad maszyną – na przykład: założenie nowego użytkownika z uprawnieniami administratora. Szacuje się, że ok. 15 proc. ataków umożliwia napastnikowi wykonanie własnego kodu na serwerze.
Przykładem jest atak typu IIS Hack. Wykorzystuje on efekt przepełnienia bufora i sposób, w jaki IIS obsługuje zlecenia z rozszerzeniem .HTR. Wysyłany przez hakera URL, zakończony ciągiem znaków „.HTR”, interpretuje IIS jako plik typu HTR i wywołuje ISM.DLL do obsługi tego zlecenia. Ponieważ ISM. DLL nie jest odporny na przepełnienie bufora, odpowiednio skomponowany łańcuch może być wykonany w chronionym kontekście IIS, który jest uprzywilejowany. W ten relatywnie prosty sposób można zawrzeć w takim łańcuchu sekwencję komend otwierających połączenie TCP, sprowadzających następnie przez to połączenie kod wykonywalny i na końcu uruchamiających ten kod.
Duża liczba ataków dotyczy również baz danych usytuowanych poza serwerem webowym. Wykorzystując luki w serwerze IIS można uruchomić komendy SQL, uzyskując dostęp do bazy danych lub nawet uprawnienia uprzywilejowane.
Przykładem jest luka MDAC RDS. MDAC jest pakietem używanym do integracji Weba z usługami baz danych. Zawiera on komponent RDS, zapewniający zdalny dostęp do obiektów bazy danych za pośrednictwem IIS. Wykorzystując lukę w RDS (zakładając, że atakowany ośrodek webowy spełnia kilka niezbędnych warunków), atakujący może wysłać dowolne komendy SQL, zmieniając zawartość bazy danych lub pobierając poufne informacje.
Aplikacje webowe są używane przez szereg ośrodków webowych do generowania stron webowych opartych na wprowadzanych danych i zawartości baz danych. Większość serwerów webowych zapewnia interfejs do komunikacji z aplikacją webową. Interfejs ten tworzy połączenia pomiędzy zleceniem HTTP a aplikacją. Określa on aplikację, która powinna być wywołana, parametry i dane przekazywane do aplikacji oraz mechanizm zapewniający dynamiczne generowanie stron przez serwer webowy. Jednym z takich interfejsów jest szeroko stosowany CGI (Common Gateway Interface).
Ataki na aplikacje webowe przechodzą przez zapory ogniowe, ponieważ porty 80 (HTTP) czy 443 dla SSL (Security Sockets Layer) muszą być otwarte, aby aplikacje te mogły funkcjonować. Ataki na aplikacje webowe obejmują kategorie, takie jak DoS – blokowanie usług, zmiana zawartości stron webowych, przechwytywanie istotnych informacji korporacyjnych lub o użytkownikach, np. numery kart kredytowych.
Źródłem słabych punktów w aplikacjach webowych są najczęściej błędy projektowe. Błędnie zaprojektowane skrypty CGI mogą być wykorzystane do wykonywania szkodliwych akcji. Powszechnym problemem aplikacji webowych jest słaba kontrola wprowadzanych danych.
Tradycyjne aplikacje to programy niezależne, pracujące na konkretnym komputerze – jeżeli taki komputer był dobrze zabezpieczony, to aplikacja także była bezpieczna. Technologia internetowa zmieniła jednak model eksploatacji systemów aplikacyjnych. Aplikacje webowe pracować mogą na czterech różnych maszynach: kliencie, serwerze webowym, serwerze aplikacyjnym i serwerze baz danych. A ponieważ są one na ogół dostępne dla wszystkich, to stają się miejscem szczególnie podatnym na ataki.
Włamanie do takiej sieci staje się łatwiejsze, ponieważ serwery webowe muszą zapewniać szereg różnych sposobów przekazywania zleceń do serwera aplikacji oraz wysyłać, w odpowiedzi na zlecenia, zmodyfikowane lub nowe strony webowe do użytkownika końcowego.
Generalnie ataki na aplikacje webowe różnią się od innych ataków tym, że są trudne do wykrycia i mogą pochodzić od dowolnego użytkownika włączającego się do sieci, nawet tego uwierzytelnionego.
Oprócz popularnego portu 80 (HTTP) istnieje szereg dróg alternatywnych, którymi można dostać się do serwera webowego. Napastnik może zacząć proces włamania, skanując kolejne porty TCP/IP i poszukując serwera internetowego nadsłuchującego w otwartym porcie.
Może to być, na przykład, port 21 (FTP). Niektóre serwery FTP zawierają luki, wykorzystanie których może udostępnić hakerowi poufne dane lub informacje umożliwiające włamanie do maszyny i uzyskanie uprawnienia administratora.
Innym zazwyczaj otwartym portem jest port przypisany DNS (Domain Name Service). Serwer DNS jest używany do dekodowania nazw internetowych, zapewniając odwzorowanie nazw domen w adresy sieciowe IP używane przez procesy trasowania w Internecie. Po włamaniu do serwera DNS haker może tak poprzekształcać tablice trasowania, aby poczta wysyłana pod określone adresy była dostarczana na jego maszynę.
Jeżeli haker zamierza jedynie zawiesić pracę serwera lub spowolnić jego działanie, to może zastosować atak sieciowy niskiego poziomu. Celem takiego ataku jest oprogramowanie sieciowe systemu operacyjnego – wysyłając, na przykład, identyczne, fragmentowane pakiety IP pod określonym adresem z określoną częstotliwością, można skutecznie zablokować pracę tego oprogramowania.