Wykorzystanie podatności w WebView w aplikacjach Androida (XSS, lokalne obejście zabezpieczeń)
🌐 Wykorzystanie podatności w WebView w aplikacjach Androida (XSS, lokalne obejście zabezpieczeń)
W świecie hacking, podatności związane z komponentem WebView w aplikacjach Androida są jednymi z najczęściej wykorzystywanych wektorów ataków. Pozwalają one na przeprowadzanie ataków typu XSS (Cross-Site Scripting) oraz lokalne obejście zabezpieczeń aplikacji, co może prowadzić do poważnych naruszeń bezpieczeństwa danych użytkownika.
📲 Czym jest WebView w Androidzie?
WebView to komponent Androida, który pozwala aplikacjom na wyświetlanie treści internetowych bezpośrednio wewnątrz aplikacji, bez konieczności otwierania przeglądarki.
✅ Przykładowe zastosowania:
- Wyświetlanie dokumentacji,
- Obsługa logowania przez zewnętrzne serwisy,
- Integracja funkcji webowych w aplikacjach mobilnych.
⚠️ Dlaczego WebView bywa niebezpieczny?
Główne problemy bezpieczeństwa związane z WebView:
- 📜 Brak ograniczeń w załadowanym kodzie JavaScript,
- 🔓 Brak odpowiedniego filtrowania danych wejściowych,
- 🛠️ Niewłaściwe użycie funkcji takich jak
addJavascriptInterface()
, - 📥 Załadowanie niezweryfikowanej zawartości z Internetu lub lokalnych plików.
W hacking WebView to otwarte drzwi dla wielu ataków!

🛠️ Typowe ataki na WebView
🧬 XSS w WebView
XSS w WebView występuje, gdy aplikacja ładuje dane wejściowe od użytkownika bez odpowiedniej walidacji lub sanitacji.
Przykład podatnego kodu:
webView.loadData(userInput, "text/html", "UTF-8");
📛 Jeśli userInput
zawiera szkodliwy kod JavaScript, to zostanie on wykonany w kontekście aplikacji!
🚪 Lokalne obejście zabezpieczeń
Kiedy WebView ładuje pliki lokalne (np. file:///android_asset/
), może dojść do ataków polegających na wstrzyknięciu kodu lub eskalacji uprawnień:
- Przejęcie sesji użytkownika,
- Kradzież tokenów uwierzytelniających,
- Dostęp do zasobów aplikacji (np. plików konfiguracyjnych).
🛡️ Jak zabezpieczyć WebView?
Aby chronić aplikacje Androida przed atakami na WebView:
- 🚫 Nie zezwalaj na ładowanie danych z niezaufanych źródeł,
- 🔒 Ogranicz JavaScript (
setJavaScriptEnabled(false)
, jeśli niepotrzebne), - 🧹 Sanitizuj wszystkie dane wejściowe przed załadowaniem,
- 🕵️♂️ Używaj
WebViewClient
i weryfikuj wszystkie żądania URL, - 🧩 Korzystaj z CSP (Content Security Policy) przy ładowaniu stron.
🧪 Przykład ataku XSS w WebView
Podatna aplikacja:
String html = "<html><body>Witaj, " + userName + "</body></html>";
webView.loadData(html, "text/html", "UTF-8");
Złośliwe dane wejściowe:
<script>alert('XSS')</script>
✅ Efekt: po załadowaniu aplikacja wykona kod JavaScript i np. wyświetli alert.
📋 Testowanie bezpieczeństwa WebView
Narzędzie | Zastosowanie |
---|---|
Burp Suite | Przechwytywanie i manipulacja ruchem sieciowym aplikacji Android |
MobSF | Automatyczna analiza bezpieczeństwa aplikacji mobilnych |
Frida | Dynamiczne hakowanie i testowanie WebView w czasie rzeczywistym |
Drozer | Wykrywanie podatności w komponentach Androida, w tym w WebView |
🔥 Realny scenariusz ataku
👉 Atakujący wprowadza link do podatnej aplikacji:
http://example.com/?data=<script>stealCookies()</script>
👉 WebView nie weryfikuje zawartości i automatycznie ładuje szkodliwy kod.
👉 Funkcja stealCookies()
przesyła dane uwierzytelniające na serwer atakującego.
👉 Wniosek: Przejęcie sesji użytkownika lub jego danych osobowych!
🌟 Podsumowanie
Komponent WebView jest potężnym narzędziem w aplikacjach Androida, ale jego niewłaściwa konfiguracja i brak odpowiednich zabezpieczeń czynią go łatwym celem dla hacking. Przeprowadzenie skutecznej analizy bezpieczeństwa WebView powinno być obowiązkowym krokiem w cyklu życia każdej aplikacji mobilnej.
✅ Dbaj o ograniczenie uprawnień, weryfikuj dane wejściowe i pamiętaj o najlepszych praktykach bezpieczeństwa!