
truc de vulnérabilité dlink en python et rust
parce que pourquoi pas
cve-2024-10914 est une vulnérabilité récemment découverte avec un score critique de 9,8 qui affecte certains routeurs dlink. parce que ces routeurs ont atteint leur fin de support, dlink refuse de corriger cette vulnérabilité en disant "arrêtez d'être pauvre et achetez simplement un nouveau routeur".
les appareils vulnérables exposent un point de terminaison HTTP, généralement sous /cgi-bin/account_mgr.cgi?cmd=cgi_user_add&name=<user_input>. en raison d'une désinfection inadéquate, au lieu de limiter ou de valider strictement l'entrée (en n'autorisant que les caractères alphanumériques), l'application permet l'injection de n'importe quel caractère, y compris des caractères spéciaux utilisés pour les opérations en ligne de commande, permettant ainsi l'exécution de code arbitraire.
en insérant des métacaractères de shell (tels que ; | & ou $(command)) dans le champ name, n'importe qui peut exécuter des commandes shell facilement. par exemple :
...name=admin'; echo 'get pwned bozo'; #
tout ce que ces scripts font est d'envoyer une requête avec le paramètre name changé en n'importe quel code que vous voulez exécuter.
il y a une assez bonne vidéo de fireship qui l'explique plus en détail : https://www.youtube.com/watch?v=52v6gKPA4TM
vous devez d'abord disposer d'un appareil vulnérable, certains modèles incluent :
je déconseille vivement d'utiliser ce script contre quelqu'un d'autre sans son consentement, veuillez seulement faire cela si vous possédez le routeur ou si vous avez le consentement du propriétaire.
cargo run -- -u http://<device ip address>
cargo run
pip install -r requirements.txt
python main.py -u http://<device ip address>
python main.py
suivez ensuite les instructions.
je n'ai pas trouvé le code original, c'est verylazytech qui l'a fait. je l'ai seulement porté en rust et python parce que pourquoi pas, bordel. bien sûr tout le crédit lui revient ainsi qu'à toute autre personne impliquée dans la découverte de cet exploit.