Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Blue-Skins en 24 Mayo 2016, 11:17 am



Título: Un pequeño dilema en C.
Publicado por: Blue-Skins en 24 Mayo 2016, 11:17 am
Buenas, esto trata de lo siguente; Es un programa que almacena una cadena de caracteres, despues, muestra la longitud del dicho char de indice no definido en decimal.

Pero luego tiene que quedarse parado, bloqueado para que la información quede en pantalla,
hay varias maneras.. como un g: goto g; como un while(1){}, un for( ;; ){} pero esta es otra, en cual estoy viendo que tira de tipos, punteros y referencias..

Alguien podria aclararme por favor, que es lo que realmente realiza la linea señalada con flecha, parte por parte.

Me ayudaria demasiado, un saludo.

(http://i.imgur.com/BlsAdMO.jpg)




Título: Re: Un pequeño dilema en C.
Publicado por: AlbertoBSD en 24 Mayo 2016, 13:35 pm

Alguien podria aclararme por favor, que es lo que realmente realiza la linea señalada con flecha, parte por parte.


Muy buen dia

Veo que estas aprendiendo sobre bugs y shellcode para explotar los bugs no tienes que tapar el shellcode yo queria verlo :( :( :(

Respecto a tu duda esa linea es una forma de ejecutar la shellcode.

Primero hace un cast de la cadena de caracteres (shellcode) a una funcion y posteriormente ejecuta  la funcion.

Se usa para saber que el shellcode funciona. Pero...

Advertencia Es peligroso ejecutar shellcodes que no verifiques, tienes que saber ensamblador y cerciorarte de que el codigo que ejecutas no le va a dar acceso a alguien externo a tu equipo mientras pruebas la shellcode.


Título: Re: Un pequeño dilema en C.
Publicado por: Blue-Skins en 24 Mayo 2016, 14:17 pm
Muy buen dia

Veo que estas aprendiendo sobre bugs y shellcode para explotar los bugs no tienes que tapar el shellcode yo queria verlo :( :( :(


Hola buenas jajaja, sobre lo de la tapada ha sido por costumbre a quitar datos irrelevantes, pero.. este shellcode se conecta con un web server que soporte webDAV descarga y ejecuta un archivo, todo ello en 96 bytes.. aqui tienes el shellcode:

https://www.exploit-db.com/exploits/39519/ (https://www.exploit-db.com/exploits/39519/)

Citar
Respecto a tu duda esa linea es una forma de ejecutar la shellcode.

Primero hace un cast de la cadena de caracteres (shellcode) a una funcion y posteriormente ejecuta  la funcion.

Se usa para saber que el shellcode funciona. Pero...

Advertencia Es peligroso ejecutar shellcodes que no verifiques, tienes que saber ensamblador y cerciorarte de que el codigo que ejecutas no le va a dar acceso a alguien externo a tu equipo mientras pruebas la shellcode.

Gracias, ahora entiendo mejor esto del casting.

A mi el tema de las vulnerabilidades me mata de curiosidad, el tema del buffer overflow, heap overflow, integer overflow etc etc.. en cuanto a la peligrosidad ya, estoy enterado de que puede haber sorpresitas pero vamos.. en muy contados casos.  >:D >:D