Directory nascosta con 0x0d0x0a

5

Qualcuno ha nascosto una directory per ingannare le politiche su un account FTP. Il nome della directory era 0x0d0x0a .

In che modo l'utente ha creato una cartella con quel nome?

La directory è quasi invisibile con ls ma rilevabile con find .

    
posta hotips 07.02.2013 - 18:06
fonte

1 risposta

9

Il nome della directory non è la stringa '0x0d0x0a' (che sono otto caratteri chiaramente visibili) ma una stringa che consiste esattamente di due caratteri, ASCII "CR" (ritorno a capo) e "LF" (avanzamento riga), che sono codificati come due byte di valore 13 (0x0D in esadecimale) e 10 (0x0A), rispettivamente.

Dal punto di vista del sistema operativo, i nomi di file e directory sono solo mazzi di byte, con solo due valori di byte speciali: 0x00 (che termina la stringa) e 0x2F (il '/' che separa i nomi di directory in un percorso) (sto assumendo un server simile a Unix qui, ma la situazione sarebbe simile su un sistema Windows). I byte di valore 0x0D e 0x0A non hanno alcun significato speciale per il kernel. Tuttavia, gli strumenti con un'uscita basata su testo possono essere ingannati (ad es. Potrebbe visualizzare il nome come una nuova riga, che non sarebbe chiaramente visibile come tale nell'output).

Con una shell Linux, puoi creare tale directory con questo comando:

mkdir 'printf '\x0d\x0a''

Per farlo da un client FTP, dovresti approfondire il modo in cui il protocollo FTP funziona in modo tale da sapere come codificare il comando MKD corrispondente, ma non vedo alcuna impossibilità concettuale.

    
risposta data 07.02.2013 - 18:22
fonte

Leggi altre domande sui tag