È possibile "codificare" una frase bash?

0

Recentemente ho risolto una sfida CTF che ho trovato piuttosto strano, prima di tutto mi è stata data una catena di personaggi che non importa quanto io provi a trovare una risposta non riesco a trovarla, ho intenzione di pubblicare una parte di quella catena per avere una risposta che possa guidarmi e non sabotare la sfida:

D''_$^"7m5X32Vxfvu?1NMpLml$jGFggUdSbb}<{)]xqpunm3qpohmfe+Lbgf_^]#a'Y^WVz=<XWVONrLQJINGkEiIHG)?c&BA:?>=<5Y

La prima cosa che ho pensato è che non può essere un tipo di hash, non ho mai visto nulla del genere, quindi dopo aver cercato gli indizi ho trovato una possibile risposta e ho messo questa stringa nel prompt Comando, e questo era il risultato:

root@localhost:~/Folder# (here goes the chain)
>

È come quando metti "python" e ti permette di continuare a scrivere frasi nella lingua, dopo di che ho provato ad incollare altri blocchi della catena e ho ricevuto messaggi come questo:

bash: (chain): event not found
bash: command substitution:

È possibile che si tratti di un'istruzione bash codificata e, in tal caso, come posso decodificarla o comprenderla? Se non è quello che penso allora esattamente?

Spero che tu possa guidarmi

    
posta Julián 10.02.2018 - 02:43
fonte

1 risposta

3

Non so quale sia la catena di caratteri, ma chiaramente non è un comando di shell. Quello che sta succedendo è che bash sta cercando di interpretare e agire sui vari metacaratteri della shell nella stringa, ma sono usati in modi che non hanno alcun senso, quindi bash sta ricevendo errori e / o facendo cose che non rendono senso.

In particolare: la stringa collegata inizia con "D" seguita da una virgoletta singola. Quando bash vede una citazione singola, la considera come l'inizio di una sezione quotata della riga di comando. Non esiste una seconda quota singola per contrassegnare la fine della sezione quotata, quindi quando si preme Invio dopo averlo inserito, la shell pensa che si stia inserendo una stringa su più righe. Il prompt ">" è il prompt di continuazione standard di bash, che indica che non hai ancora inserito un comando completo, e devi andare avanti finché non arrivi ad un punto di arresto valido (cioè non nel mezzo di una stringa quotata) .

Gli altri messaggi segnalati hanno a che fare con altri metacaratteri nei blocchi della catena:

  • tratta bash "!" come inizio di una sostituzione della cronologia, cioè riutilizzando tutto o parte di un precedente comando (storico) (un "evento" passato); cosa viene dopo il "!" indica quale "evento" desideri riutilizzare, ma non corrisponde a nulla in modo da ottenere un messaggio "evento non trovato".

  • bash tratta le backquote come indicanti sostituzioni di comandi, cioè eseguendo ciò che è in backquote come un comando, quindi sostituendo l'output di quel comando nella riga di comando corrente. Non so esattamente quale sia il testo o l'errore in questione, ma a quanto pare c'è qualcosa che non ha senso tra un paio di backquote e quindi la shell si lamenta per questo.

risposta data 10.02.2018 - 03:12
fonte

Leggi altre domande sui tag