Que tal...
Bueno, tengo una duda: En la mayoría de ejemplos sobre STACK OVERFLOWS ponen algo como:
Código:
...
int main(int argc,char **argv){
char buffer[1024];
strcpy(buffer,argv[1]);
}
Lógicamente vemos que pasando los 1024 bytes de buffer, más 8 bytes de alineamiento (si es compilado con las nuevas versiones de GCC , creo q apartir de la 3) y mas 8 bytes de registros a sobreescribir correspondientes ($EBP & $EIP) pues nos da el SEGMENTATION FAULT (SIGSEGV)... o sea, con tan solo 1040 bytes se desborda y podremos poner la shellcode dentro de 1032 bytes (ya que no podemos meter la shellcode en $ebp ni $eip por que en $eip va la direccion de memoria de nuestra shellcode ok).
Ahora mi duda es...
Código:
...
int main(int argc,char **argv){
char foo[12],nitro[8],lame[24],buffer[1024];
strcpy(buffer,argv[1]);
}
Entonces akí, para "OVERFLOWEAR" xD dicho programa, como en la stack fueron declarados primero dichos arreglos de tipo char, pues tendríamos que sobreeescribir los (1024+8)+(24+8)+(8+8)+(12+8)+(8..estos son los de los registros EBP Y EIP)... todos esos 8s sumados son los bytes de alineamiento ok... entonces tendríamos que meter 1108 bytes para obtener el desborde... Entonces puedo usar todos esos arreglos para meter mi shellcode ??
Y otra más.. como se la dirección donde he almacenado mi shellcode ??
En el texto de DEX
http://www.hakim.ws/textos/stackofdex.txt
Donde dice:
Citar:
Woops!, ya llenamos todo el buffer, ya sabemos que hacer con los 967
bytes restantes, ya sabemos que shellcode usar, pero... QUE DIRECCIONES
VAMOS A PONER?
Bueno, hay una forma de hacerlo sacando la dirección automáticamente de
%esp con una instrucción en ensamblador, que usan muchos exploits
locales:
-----------------------------------------------
void get_esp() {
__asm__("movl %esp, %eax");
}
-------------------------------------------------
Alguien podría poner alguna url sobre la explicación de dicha función ya que he buscado en google y no encuentro anda parecido :S... o si alguien ha visto un exploit usando esta función (yo si lo he visto por ahi pero no recuerdo que exploit), asi que si alguien tiene algún exploit x ahi, que pastee la url para analizarlo....
salu2...