Metodologia podatności w aplikacjach webowych

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 dokument ma służyć jako lista kontrolna, aby potwierdzić, że przeszukałeś wszystkie możliwe miejsca pod kątem podatności.

Proxy

Tip

Obecnie aplikacje webowe zwykle używają pewnego rodzaju pośredniczących proxy, które mogą być (nadużywane) wykorzystane do eksploatacji 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ść aplikacji webowych będzie pozwalać użytkownikom na wprowadzenie danych, które będą przetwarzane później.
W zależności od struktury danych, których oczekuje serwer, niektóre podatności mogą mieć zastosowanie, inne nie.

Wartości odzwierciedlone

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

Niektóre z wymienionych podatności wymagają specjalnych warunków, inne po prostu wymagają odzwierciedlenia treści. Możesz znaleźć kilka interesujących polyglotów do szybkiego testowania podatności w:

Reflecting Techniques - PoCs and Polygloths CheatSheet

Funkcje wyszukiwania

Jeśli funkcja może być użyta do przeszukiwania danych w backendzie, być może możesz ją (nadużyć) wykorzystać do wyszukania dowolnych danych.

Formularze, WebSockets i PostMsgs

Gdy websocket wysyła wiadomość lub formularz pozwalający użytkownikom na wykonywanie akcji, mogą pojawić się podatności.

Nagłówki HTTP

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

Omięcia

Istnieje kilka specyficznych funkcji, gdzie przydatne mogą być obejścia umożliwiające ich ominięcie

Strukturalne obiekty / Specyficzne funkcje

Niektóre funkcje będą wymagać, aby dane były sformatowane w bardzo specyficzny sposób (np. zserializowany obiekt języka lub XML). Dzięki temu łatwiej jest ustalić, czy aplikacja może być podatna, ponieważ musi przetwarzać tego typu dane.
Niektóre specyficzne funkcje mogą być także podatne, jeśli użyty zostanie konkretny format wejścia (np. Email Header Injections).

Pliki

Funkcje pozwalające na przesyłanie plików mogą być podatne na różne problemy.
Funkcje generujące pliki zawierające dane wejściowe od użytkownika mogą wykonać nieoczekiwany kod.
Użytkownicy, którzy otwierają pliki przesłane przez innych użytkowników lub automatycznie generowane z danymi wejściowymi użytkownika, mogą zostać skompromitowani.

Zewnętrzne zarządzanie tożsamością

Inne przydatne podatności

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

Serwery WWW i middleware

Błędne konfiguracje na warstwie edge często odblokowują bardziej poważne błędy w warstwie aplikacji.

Frameworki i stacki aplikacyjne

Specyficzne dla frameworków elementy często ujawniają gadżety, niebezpieczne ustawienia domyślne lub końcówki należące do frameworka.

CMS, SaaS & platformy zarządzane

Produkty o dużej powierzchni ataku często zawierają znane exploity, słabe wtyczki lub uprzywilejowane endpointy administracyjne.

APIs, Buckets & integracje

Pomocniki po stronie serwera i integracje stron trzecich mogą ujawniać słabości w parserach plików lub warstwie przechowywania.

Supply Chain & nadużycia identyfikatorów

Ataki wymierzone w pipeline’y buildów lub przewidywalne identyfikatory mogą stać się początkowym punktem zaczepienia przed wykorzystaniem tradycyjnych błędów.

Web3, rozszerzenia i narzędzia

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

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