Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
bidi_char_detector — Comprueba la existencia de caracteres BIDI de Unicode en tus archivos que pueden ser mal utilizados para ataques a la cadena de suministro. Ver CVE-2021-42574 | Kitploit
Herramientas/GitHubGitHub/maweil/bidi_char_detector
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoDetección de SecretosSeguridad de Cadena de SuministroMala ConfiguraciónArchived
GitHubmaweil/bidi_char_detector

bidi_char_detector

Comprueba la existencia de caracteres BIDI de Unicode en tus archivos que pueden ser mal utilizados para ataques a la cadena de suministro. Ver CVE-2021-42574

Ver Repositorio
638hace 3 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Detector de Caracteres BIDI

Esta herramienta verifica la existencia de caracteres Unicode BIDI en tus archivos, los cuales pueden ser mal utilizados para ataques a la cadena de suministro para mitigar CVE-2021-42574. Esta herramienta fue escrita en Rust y se distribuye como un contenedor pequeño (< 3MB) compatible con Docker para permitir un uso rápido y sencillo.

Para una explicación del ataque, echa un vistazo a la entrada del blog de GitHub o al artículo original donde se publicó el ataque.

Instalación

Este paquete está diseñado principalmente para ser utilizado a través de su contenedor Docker. Pero la instalación local también es posible, por supuesto. La compilación requiere al menos Rust 1.56.0 porque utiliza la Edición Rust 2021. Clona este repositorio y ejecuta cargo install --path . para instalar el binario para tu usuario actual. Después, puedes invocar el comando bidi_detector.

Uso

Ejecutar la herramienta a través de su contenedor Docker oficial es probablemente la forma más fácil de empezar. Para ejecutarla mediante Docker, el siguiente comando debería funcionar para escanear todos los archivos dentro de tu directorio de trabajo actual:

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

Dependiendo de tu sistema, es posible que tengas que adaptar ligeramente este comando. Si usas, por ejemplo, podman y tienes SELinux habilitado, prueba el siguiente comando en su lugar:

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

Configuración

Por defecto, se verificarán todos los archivos. Si tienes archivos binarios dentro del directorio actual, el comando fallará porque no puede decodificar un archivo no codificado en UTF8. Para adaptar el comando a tus necesidades, coloca un archivo llamado bidi_config.toml en la raíz de tu proyecto. Puedes encontrar un ejemplo en este repositorio, mira un ejemplo a continuación. Las opciones se describirán con más detalle después del ejemplo:

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

[display]
show_details = true

Configuración General

Esta sección incluye dos arreglos (includes y excludes) donde puedes especificar patrones de archivos a escanear (o excluir del escaneo). Asegúrate de que tus patrones coincidan con los archivos dentro del directorio, no con el nombre del directorio en sí, de lo contrario tus archivos no serán escaneados. Si deseas escanear todos los archivos y solo excluir, por ejemplo, tu directorio .git, la siguiente configuración funcionaría:

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

[display]
show_details = true

Si en cambio deseas definir explícitamente qué carpeta contiene tus archivos fuente, el siguiente ejemplo de configuración escanearía todos los archivos en el directorio src (sin ignorar nada):

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

[display]
show_details = true

Configuración de Visualización

Los siguientes ajustes están disponibles en esta sección:

AjusteDescripciónOpcionalValor predeterminadoIntroducido en
show_detailsDecide si imprimir la línea/posición y el tipo del carácter BIDI detectado si se encuentra (ver ejemplos más abajo)No-v0.1.1
ignore_invalid_dataSi se debe imprimir un mensaje de error cuando se detectan archivos binarios/no UTF8Sítruev0.1.2
verboseSi se debe imprimir el nombre del archivo incluso si no se encontraron caracteres sospechososSítruev0.1.2

Ejemplo: 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!

Ejemplo: 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!

Ejemplo: show_details = false, verbose = false

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

Créditos

Todo el crédito por la detección del ataque, incluyendo la lista de caracteres BIDI relevantes, corresponde a los autores originales del artículo correspondiente. Por favor, cita su artículo original cuando construyas sobre su trabajo.

El archivo test/example-commenting-out.js en este repositorio es una copia de commenting-out.js en su repositorio original. Su licencia sigue la del repositorio original (Licencia MIT) Aquí se utiliza únicamente con fines de prueba.

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}
}
Descargar herramienta