Strumenti online: Encode/Decode URI e/o Base64 (Javascript)
✍ Scritto: Giansante Gabriele, 10/12/2016
Codifica e decodifica di URI o dell'intero testo (%XX). Codifica e decodifica di testo in Base64.
L'utilizzo e' completamente anonimo, non vengono raccolti dati ne usati cookie appositi relativamente a questo tool.
Segnalatemi liberamente eventuali errori, aggiunte o modifiche utili al tool.
Tool di codifica/decodifica
Questo tool nasce con la speranza di essere utile nella codifica e decodifica di URI, di query e di testo piu' in generale.
L'idea mi e' venuta analizzando alcuni dei tanti attacchi ricevuti giornalmente. A volte, nelle richieste HTTP maligne, arrivano tramite "User-agent", "Referer" o query,
veri e propri script "
sh" (ma non solo) che non sempre sono in chiaro.
A volte vengono codificati con la notazione "%XX" (con X cifra esadecimale) e al loro interno possono contenere ulteriori sezioni di codice codificate in Base64
(da decodificare a cura dello script di primo livello). In quelli piu' complicati si trovano ulteriori livelli di annidamento di sezioni codificate, generalmente sempre "Base64" o "%XX".
Siccome sono un tipo un po' curioso, vado sempre a vedere come funzionano, ma per farlo devo decodificare a mano i testi. Ecco perche' mi sono deciso a realizzare un
tool semplice e di rapido utilizzo che faciliti le cose non solo a me ma a chiunque voglia usarlo.
Ora, ecco qualche nota relativamente alla sua realizzazione ed al suo utilizzo.
Per informazioni sulla codifica degli URI si puo' leggere l'RFC 3986 (vedi "
Riferimenti").
Per la codifica degli URI vengono usate come base le funzioni javascript "
encodeURIComponent" e "
decodeURIComponent", ad eccezione
del caso in cui si voglia codificare/decodificare l'intero testo, compresi i caratteri ASCII normalmente ammissibili. In questo caso e' stata realizzata una implementazione
apposita per la codifica, mentre la decodifica utilizza comunque "
decodeURIComponent".
Sono disponibili diverse opzioni per la codifica/decodifica delgi URI.
Opzioni di codifica:
- Converti "'" in "%27"
L'apice normalmente non viene codificato dalla funzione "encodeURIComponent". Selezionando questa opzione e' possibile codificarlo.
Valida solo per la codifica URI, mentre e' sempre attiva per la codifica di tutto il testo (vedi scelta tipo codifica)
- Converti " " in "+"
Il carattere "spazio" non dovrebbe essere presente negli URI e normalmente viene codificato in "%20" o convertito in carattere "+". Possono essere usate
entrambe le soluzioni, ma la funzione "encodeURIComponent" codifica in "%20". Selezionando questa opzione, viene data la possibilita' di convertire gli spazi in "+".
- Solo testo selezionato
Attivando questa opzione viene codificato solamente il testo selezionato invece che tutto. Ne ho verificato il funzionamento sui principali browser (Firefox, Chrome, Edge),
nelle versioni piu' recenti. Potrebbe pero' non avere effetto o non funzionare correttamente su altri browser.
- Tipo codifica
E' possibile codificare il testo (intero o solo quello selezionato) come URI (cioe' solo i caratteri non ammissibili) o interamente (tutti i caratteri).
Opzioni di decodifica:
- Converti "+" in " "
Il carattere "spazio" non dovrebbe essere presente negli URI e normalmente viene codificato in "%20" o convertito in carattere "+". La funzione
"decodeURIComponent" ignora il carattere "+" e considera solo il %20. Selezionando questa opzione, viene convertito il carattere "+" in "spazio".
- Salta "%" non validi
Mi sono accorto che alcuni attacchi arrivano con testo codificato in modo errato (errore umano, errore di trasmissione, ecc.), ovvero con caratteri "%" non seguiti
dalle previste due cifre esadecimali.
Che si tratti di decodifica del testo di un attacco o di decodifica di testo di qualsiasi altro tipo, comunque la funzione "decodeURIComponent" non e' in grado di decodificare
se nel testo sono presenti caratteri "%" che non appartengono ad una sequenza "%XX" (es. "%%6D", %5F%72% %56", ecc. impediscono alla funzione di decodificare).
Selezionando questa opzione si attiva una preelaborazione che consente a "decodeURIComponent" di funzionare correttamente.
- Solo testo selezionato
Attivando questa opzione viene decodificato solamente il testo selezionato invece che tutto. Ne ho verificato il funzionamento sui principali browser (Firefox, Chrome, Edge),
nelle versioni piu' recenti. Potrebbe pero' non avere effetto o non funzionare correttamente su altri browser.
Oltre alla codifica di URI o testo in "%XX" e' possibile codificare o decodificare testo in Base64. La codifica e la decodifica avvengono rispettivamente tramite le funzioni
Javascript "
btoa" e "
atob".
Opzioni Base64:
- Solo testo selezionato
Attivando questa opzione viene codificato/decodificato solamente il testo selezionato invece che tutto. Ne ho verificato il funzionamento sui principali browser (Firefox, Chrome, Edge),
nelle versioni piu' recenti. Potrebbe pero' non avere effetto o non funzionare correttamente su altri browser.
Riferimenti
RFC 3986https://tools.ietf.org/html/rfc3986
Hai trovato utile questo articolo?
Aiutami a condividerlo o metti un "mi piace".
Grazie mille!