Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
bidi_char_detector — Controlla i tuoi file per la presenza di caratteri Unicode BIDI che possono essere utilizzati impropriamente per attacchi alla supply chain. Vedi CVE-2021-42574 | Kitploit
Strumenti/GitHubGitHub/maweil/bidi_char_detector
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceRilevamento SegretiSicurezza della Supply ChainConfigurazione ErrataArchived
GitHubmaweil/bidi_char_detector

bidi_char_detector

Controlla i tuoi file per la presenza di caratteri Unicode BIDI che possono essere utilizzati impropriamente per attacchi alla supply chain. Vedi CVE-2021-42574

Vedi Repository
6383 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Rilevatore di caratteri BIDI

Questo strumento controlla i tuoi file per la presenza di caratteri Unicode BIDI che possono essere abusati per attacchi alla supply chain per mitigare CVE-2021-42574. Questo strumento è scritto in Rust e distribuito come un contenitore docker piccolo (< 3MB) per consentire un utilizzo rapido e semplice.

Per una spiegazione dell'attacco, dai un'occhiata al post del blog di GitHub o al documento originale in cui l'attacco è stato pubblicato.

Installazione

Questo pacchetto è pensato principalmente per essere utilizzato tramite il suo contenitore docker. Ma l'installazione locale è ovviamente possibile. La compilazione richiede almeno Rust 1.56.0 perché utilizza la Rust 2021 Edition. Clona questo repository ed esegui cargo install --path . per installare il binario per l'utente corrente. Dopodiché, puoi invocare il comando bidi_detector.

Utilizzo

Eseguire lo strumento tramite il suo contenitore docker ufficiale è probabilmente il modo più semplice per iniziare. Per eseguirlo tramite docker, il seguente comando dovrebbe funzionare per scansionare tutti i file nella directory di lavoro corrente:

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

A seconda del tuo sistema, potresti dover adattare leggermente questo comando. Se usi ad esempio podman e hai SELinux abilitato, prova il seguente comando invece:

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

Configurazione

Per impostazione predefinita, tutti i file vengono controllati. Se hai file binari nella directory corrente, il comando fallirà perché non può decodificare un file non codificato in UTF-8. Per adattare il comando alle tue esigenze, posiziona un file chiamato bidi_config.toml nella radice del tuo progetto. Puoi trovare un esempio in questo repository, vedi un esempio qui sotto. Le opzioni verranno descritte più in dettaglio sotto l'esempio:

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

[display]
show_details = true

Impostazioni Generali

Questa sezione include due array (includes e excludes) in cui puoi specificare pattern di file da scansionare (o da escludere dalla scansione). Assicurati che i tuoi pattern corrispondano effettivamente ai file all'interno della directory, non al nome della directory stessa, altrimenti i tuoi file non verranno scansionati. Se vuoi scansionare tutti i file ed escludere solo ad esempio la tua directory .git, la seguente configurazione funzionerebbe:

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

[display]
show_details = true

Se invece vuoi definire esplicitamente quale cartella contiene i tuoi file sorgente, il seguente esempio di configurazione scansionerebbe tutti i file nella directory src (senza ignorare nulla):

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

[display]
show_details = true

Impostazioni di Visualizzazione

Le seguenti impostazioni sono disponibili in questa sezione:

ImpostazioneDescrizioneOpzionaleDefaultIntrodotto in
show_detailsDecide se stampare il numero di riga/posizione e il tipo del carattere BIDI rilevato se trovato (vedi esempi sotto)No-v0.1.1
ignore_invalid_dataSe stampare un messaggio di errore quando vengono rilevati file binari/non UTF-8Sìtruev0.1.2
verboseSe stampare il nome del file anche se non sono stati trovati caratteri sospettiSìtruev0.1.2

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

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

Esempio: show_details = false, verbose = false

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

Crediti

Tutti i crediti per la scoperta dell'attacco, inclusa la lista dei caratteri BIDI rilevanti, vanno agli autori originali del documento corrispondente. Per favore citate il loro documento originale quando utilizzate il loro lavoro.

Il file test/example-commenting-out.js in questo repository è una copia di commenting-out.js nel loro repository originale. La sua licenza segue quella del repository originale (Licenza MIT). Viene utilizzato solo per scopi di test qui.

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}
}
Scarica lo strumento