Metodologia Web Vulnerabilities

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

W każdym Web Pentest istnieje kilka ukrytych i oczywistych miejsc, które mogą być podatne. Ten wpis ma służyć jako lista kontrolna, aby potwierdzić, że przeszukałeś wszystkie możliwe miejsca pod kątem podatności.

Proxies

Tip

Obecnie web applications zwykle używają jakiegoś rodzaju pośrednich proxies, które mogą być (ab)użyte do wykorzystania podatności. Te podatności wymagają istnienia podatnego proxy, ale zazwyczaj potrzebują też dodatkowej podatności w backendzie.

Wejście użytkownika

Tip

Większość web applications pozwoli użytkownikom wprowadzić dane, które będą przetworzone później.
W zależności od struktury danych, której oczekuje serwer, niektóre podatności mogą mieć zastosowanie, a inne nie.

Wartości odzwierciedlane

Jeśli wprowadzone dane mogą w jakiś sposób zostać odzwierciedlone w odpowiedzi, strona może być podatna na różne problemy.

Niektóre z wymienionych podatności wymagają specjalnych warunków, inne jedynie odzwierciedlenia treści. Możesz znaleźć kilka ciekawych polygloths do szybkiego testowania podatności w:

Reflecting Techniques - PoCs and Polygloths CheatSheet

Funkcje wyszukiwania

Jeśli funkcjonalność służy do wyszukiwania danych w backendzie, być może można ją (ab)użyć do wyszukiwania dowolnych danych.

Formularze, WebSockets i PostMsgs

Gdy websocket wysyła wiadomość lub formularz pozwala użytkownikom wykonywać akcje, mogą pojawić się podatności.

Cross-site WebSocket hijacking & localhost abuse

WebSocket upgrades automatycznie przekazują cookies i nie blokują ws://127.0.0.1, więc każdy origin web może sterować desktopowymi endpointami IPC, które pomijają walidację Origin. Kiedy zauważysz launcher wystawiający API podobne do JSON-RPC przez lokalnego agenta:

  • Obserwuj wysyłane ramki, aby sklonować krotki type/name/args wymagane przez każdą metodę.
  • Bruteforce’uj port nasłuchu bezpośrednio z przeglądarki (Chromium poradzi sobie z około ~16k nieudanych upgrade’ów) aż gniazdo loopback odpowie banerem protokołu — Firefox zwykle szybko się zawiesi przy takim obciążeniu.
  • Złącz parę create → privileged action: np. wywołaj metodę create*, która zwróci GUID, a następnie natychmiast wywołaj odpowiadającą metodę *Launch* z payloadami kontrolowanymi przez atakującego.

Jeśli możesz przekazać dowolne flagi JVM (np. AdditionalJavaArguments), wymuś błąd z -XX:MaxMetaspaceSize=<tiny> i dołącz -XX:OnOutOfMemoryError="<cmd>", aby uruchomić polecenia systemowe bez ingerowania w logikę aplikacji. Zobacz WebSocket attacks dla przewodnika krok po kroku.

Nagłówki HTTP

W zależności od nagłówków HTTP zwracanych przez serwer web mogą występować różne podatności.

Omijania

Istnieje kilka specyficznych funkcjonalności, gdzie przydatne mogą być różne obejścia.

Sformatowane obiekty / Specyficzne funkcjonalności

Niektóre funkcjonalności będą wymagać, aby dane były sformatowane w bardzo specyficzny sposób (np. zserializowany obiekt języka lub XML). Łatwiej więc zidentyfikować podatność, gdy aplikacja przetwarza tego rodzaju dane.
Niektóre specyficzne funkcjonalności mogą być również podatne, jeśli użyty zostanie konkretny format wejścia (np. Email Header Injections).

Pliki

Funkcjonalności pozwalające na upload plików mogą być podatne na różne problemy.
Funkcjonalności generujące pliki zawierające dane użytkownika mogą uruchomić nieoczekiwany kod.
Użytkownicy otwierający pliki przesłane przez innych użytkowników lub automatycznie generowane z zawartością użytkownika mogą zostać skompromitowani.

External Identity Management

Inne przydatne podatności

Te podatności mogą pomóc w eksploatacji innych podatności.

Serwery Web & Middleware

Błędne konfiguracje na warstwie edge często odsłaniają bardziej wpływowe błędy w warstwie aplikacji.

Frameworki aplikacyjne & Stosy

Elementy specyficzne dla frameworków często odsłaniają gadgety, niebezpieczne domyślne ustawienia lub endpointy należące do frameworka.

CMS, SaaS & Platformy zarządzane

Produkty o szerokiej powierzchni często zawierają znane exploity, słabe wtyczki lub uprzywilejowane endpointy administratora.

APIs, Buckets & Integrations

Pomocnicy po stronie serwera i integracje z zewnętrznymi usługami mogą ujawnić słabości parsowania plików lub warstwy magazynowania.

Łańcuch dostaw & Nadużycie identyfikatorów

Ataki wymierzone w pipeline’y budowania lub przewidywalne identyfikatory mogą dać punkt zaczepienia przed wykorzystaniem tradycyjnych błędów.

Web3, Extensions & Tooling

Nowoczesne aplikacje rozszerzają się na przeglądarki, portfele i pipeline’y automatyzacji — miej te wektory w zakresie testów.

Bibliografia

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks