web-dev-qa-db-fra.com

Les applications téléphoniques sont-elles vulnérables à XSS ou CSRF? (Webview, Phonegap, chrometab)

J'ai besoin de prouver que CSRF ou XSS est possible sur un téléphone ... en utilisant PhoneGap, une Webview, ou spécifiquement un "Chrome Tab" ou équivalent iOS.

Je crois en théorie que cela est possible, et l'atténuation est nécessaire, mais la recherche d'exemples d'exploits précédents ne se fait pas dans un "navigateur"

11

Une attaque CSRF ne peut se produire que lorsque des cookies (ou d'autres mécanismes d'authentification) sont fournis automatiquement par le client. Autrement dit, lorsque le client a accès aux cookies de plusieurs domaines (comme un navigateur Web stockant des cookies pour chaque site que vous visitez).

Cependant, une application mobile contenant une visionneuse Web n'aura généralement que les cookies pour son propre système. Les cookies ne seront pas partagés avec d'autres applications utilisant le même contrôle de visionneuse Web. Tout ce qui est chargé à partir du système de classement sera également isolé les uns des autres: Android et iOS ont des contrôles de sécurité pour que les applications ne puissent pas lire les données d'autres applications. Par conséquent, CSRF n'est probablement pas dans une application mobile.

XSS pourrait toujours être un problème, car tout ce qui est affiché dans une page Web affichée par une application où JavaScript est activé peut entraîner l'exécution de code JavaScript si une telle faille existe, tout comme dans un navigateur Web.

6
SilverlightFox

XSS est généralement une attaque contre un serveur. À moins que votre téléphone ne serve des pages Web à des connexions externes, cela ne devrait pas poser de problème. Si votre serveur qui sert les pages au téléphone est vulnérable, alors XSS est identique à un site Web normal - à l'exception qu'il peut être plus difficile d'inciter quelqu'un à suivre un lien. À moins que votre application n'accepte des données provenant d'autres sources non fiables (un fichier, une entrée utilisateur, des messages interdomaines) et les affiche sans échapper - voir ci-dessous.

CSRF repose sur la sélection d'une session valide, cela dépend donc du bac à sable que le composant navigateur implémente. Je serais très surpris si cela était possible à moins que vous n'ayez mal implémenté jsonp, ou des appels window.postMessage ou similaire. (voir: https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet pour plus d'idées à ce sujet)

0
Andy Boura