#mobile #deeplink



Если вы нашли XSS на сайте, но у неё низкий impact — не удаётся "украсть" аккаунт жертвы или актив вне скоупа.

Вам стоит поискать мобильное приложение, которое содержит WebView функциональность и присваивает токен при открытии страницы.

Возьмём для примера приложение от PayPal.

Открыв его в декомпиляторе можно найти функцию около webview функциональности

boolean isSecureVenmoHostUrl(Uri uri)



Внутри неё обнаруживаем хосты

host.endsWith(".venmo.com") || host.equals("venmo.com") || host.endsWith(".venmo.biz")



Теперь нужно проверить возможно ли передать свой url в класс webview.



Если да, составляем полезную нагрузку: <a href="venmo://webview?url=https://legal.venmo.com/index.php?p=<svg>">PoC Send</a>



Это был пример как поднять xss, до чего-то существенного. При открытии ссылки, возможно украсть access_token и получить доступ к платежам пользователя.



Такая же функциональность в приложении TripAdvisor:



Pattern f30622a = Pattern.compile("^(?:https?\\:\\/\\/(?:[A-Za-z0-9_\\-]+\\.(dhcp(\\-[A-Za-z]+)?\\.([A-Za-z0-9_\\-]+\\.corp\\.)?|(nw\\.)?dev(\\-[A-Za-z]+)?\\.|cmc\\.|d\\.)?)?tripadvisor\\.(?:com|(?:[a-z]{2})|(?:(?:co|com)\\.[a-z]{2})))?\\/.*$");



В перечисленных случаях выше, разработчики исправляют только xss, поэтому вы всё ещё можете это воспроизвести.