Skip to content
KitploitKITPLOIT
OutilsBlog
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
bidi_char_detector — Vérifie la présence de caractères Unicode BIDI dans vos fichiers qui peuvent être détournés pour des attaques sur la chaîne d'approvisionnement. Voir CVE-2021-42574 | Kitploit
Outils/GitHubGitHub/maweil/bidi_char_detector
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeDétection de SecretsSécurité de la Chaîne LogistiqueMauvaise ConfigurationArchived
GitHubmaweil/bidi_char_detector

bidi_char_detector

Vérifie la présence de caractères Unicode BIDI dans vos fichiers qui peuvent être détournés pour des attaques sur la chaîne d'approvisionnement. Voir CVE-2021-42574

Voir le dépôt
63il y a 3 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étecteur de caractères BIDI

Cet outil vérifie la présence de caractères Unicode BIDI dans vos fichiers, qui peuvent être utilisés pour des attaques sur la chaîne d'approvisionnement afin d'atténuer CVE-2021-42574. Cet outil a été écrit en Rust et est distribué sous forme d'un petit conteneur docker compatible (< 3 MB) pour une utilisation rapide et facile.

Pour une explication de l'attaque, consultez l'article de blog de GitHub ou l'article original où l'attaque a été publiée.

Installation

Ce paquet est principalement destiné à être utilisé via son conteneur docker. Mais une installation locale est bien sûr possible. La compilation nécessite au moins Rust 1.56.0 car il utilise l'édition Rust 2021. Clonez ce dépôt et exécutez cargo install --path . pour installer le binaire pour votre utilisateur actuel. Après cela, vous pouvez invoquer la commande bidi_detector.

Utilisation

Exécuter l'outil via son conteneur docker officiel est probablement le moyen le plus simple de commencer. Pour l'exécuter via docker, la commande suivante devrait fonctionner pour analyser tous les fichiers dans votre répertoire de travail actuel :

root@kitploit:~
docker run --rm -it -v $(pwd):/data ghcr.io/maweil/bidi_char_detector:latest

Selon votre système, vous devrez peut-être adapter légèrement cette commande. Si vous utilisez par exemple podman avec SELinux activé, essayez la commande suivante :

root@kitploit:~
podman run --rm -it -v $(pwd):/data:Z ghcr.io/maweil/bidi_char_detector:latest

Configuration

Par défaut, tous les fichiers sont vérifiés. Si vous avez des fichiers binaires dans le répertoire actuel, la commande échouera car elle ne peut pas décoder un fichier non encodé en UTF-8. Pour adapter la commande à vos besoins, placez un fichier nommé bidi_config.toml à la racine de votre projet. Vous trouverez un exemple dans ce dépôt, voir ci-dessous. Les options seront décrites plus en détail après l'exemple :

root@kitploit:~
[general]
includes = [ 
    "src/**/*",
    "**/*.patch",
    "**/*.json",
    "**/Dockerfile",
    "test/*.js"
]
excludes = [
    ".git/*",
    "target/*"
]

[display]
show_details = true

Paramètres généraux

Cette section comprend deux tableaux (includes et excludes) où vous pouvez spécifier des motifs de fichiers à analyser (ou à exclure de l'analyse). Assurez-vous que vos motifs correspondent aux fichiers dans le répertoire, pas au nom du répertoire lui-même, sinon vos fichiers ne seront pas analysés. Si vous voulez analyser tous les fichiers et seulement exclure par exemple votre répertoire .git, la configuration suivante fera l'affaire :

root@kitploit:~
[general]
includes = [ 
    "**/*"
]
excludes = [
    ".git/*",
]

[display]
show_details = true

Si vous voulez plutôt définir explicitement quel dossier contient vos fichiers sources, l'exemple de configuration suivant analyserait tous les fichiers dans le répertoire src (sans rien ignorer) :

root@kitploit:~
[general]
includes = [ 
    "src/**/*"
]
excludes = [
]

[display]
show_details = true

Paramètres d'affichage

Les paramètres suivants sont disponibles dans cette section :

ParamètreDescriptionOptionnelPar défautIntroduit dans
show_detailsDécide s'il faut afficher la ligne/position et le type du caractère BIDI détecté s'il est trouvé (voir exemples ci-dessous)Non-v0.1.1
ignore_invalid_dataS'il faut afficher un message d'erreur lorsque des fichiers binaires/non UTF-8 sont détectésOuitruev0.1.2
verboseS'il faut afficher le nom du fichier même si aucun caractère suspect n'a été trouvéOuitruev0.1.2

Exemple : show_details = true, verbose = true

root@kitploit:~
src/lib.rs - 0 BIDI characters
src/main.rs - 0 BIDI characters
test/example-commenting-out.js - 6 BIDI characters
Found character RLO (Right-to-Left Override), test/example-commenting-out.js:4:3
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:4:7
Found character PDI (Pop Directional Isolate), test/example-commenting-out.js:4:20
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:4:22
Found character RLO (Right-to-Left Override), test/example-commenting-out.js:6:20
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:6:24
Found 6 potentially dangerous Unicode BIDI characters!

Exemple : show_details = false, verbose = true

root@kitploit:~
src/lib.rs - 0 BIDI characters
src/main.rs - 0 BIDI characters
test/example-commenting-out.js - 6 BIDI characters
Found 6 potentially dangerous Unicode BIDI characters!

Exemple : show_details = false, verbose = false

root@kitploit:~
test/example-commenting-out.js - 6 BIDI characters
Found 6 potentially dangerous Unicode BIDI characters!

Crédits

Tous les crédits pour la détection de l'attaque, y compris la liste des caractères BIDI pertinents, reviennent aux auteurs originaux de l'article correspondant. Veuillez citer leur article original lorsque vous construisez sur leur travail.

Le fichier test/example-commenting-out.js dans ce dépôt est une copie de commenting-out.js dans leur dépôt original. Sa licence suit celle du dépôt original (Licence MIT) Il est utilisé ici uniquement à des fins de test.

root@kitploit:~
@article{boucher_trojansource_2021,
    title = {Trojan {Source}: {Invisible} {Vulnerabilities}},
    author = {Nicholas Boucher and Ross Anderson},
    year = {2021},
    journal = {Preprint},
    eprint = {2111.00169},
    archivePrefix = {arXiv},
    primaryClass = {cs.CR},
    url = {https://arxiv.org/abs/2111.00169}
}
Télécharger l’outil