Aller au contenu

Exécution de Code à Distance via addJavaScriptInterface

Description

La méthode addJavascriptInterface() sur le niveau d'API JELLY_BEAN ou inférieur peut être exploitée via la réflexion pour exécuter des commandes à distance dans le contexte de l'application en cours d'exécution.

La méthode addJavascriptInterface expose un objet Java fourni depuis une WebView vers JavaScript. Pour les applications compilées ou liées à un niveau d'API inférieur à 17, toutes les méthodes publiques (y compris celles héritées) sont accessibles. Grâce à l'utilisation de la réflexion, il est également possible d'invoquer n'importe quelle autre classe Java non enregistrée.

Recommandation

Ce problème a été résolu dans les applications développées pour Android 4.2 (niveau d'API 17) et supérieur. À partir d'Android 4.2 (niveau d'API 17) et supérieur, seules les méthodes explicitement marquées avec l'annotation @JavascriptInterface sont disponibles pour le code JavaScript dans la WebView. L'annotation @JavascriptInterface doit être ajoutée à toute méthode destinée à être exposée via le pont natif (la méthode doit également être publique). Un exemple est présenté ci-dessous :

    @JavascriptInterfacepublic void method() {dostuff();}

Pour résoudre le problème, vous devez compiler votre application pour l'API 17 ou supérieur et la redistribuer. Les utilisateurs devront mettre à jour leurs applications pour utiliser la nouvelle application non vulnérable.

Détectez ce problème avec Ostorlab

Ostorlab recherche ce problème dans les applications Android et iOS.

Scanner votre app gratuitement

Liens

Normes

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_7
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • GDPR:
    • ART_5
    • ART_32
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_PLATFORM_2
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
    • SECURITY255
    • SECURITY258
  • OWASP_MOBILE_TOP_10:
    • M4_2024