¿Qué hacer a continuación para este posible desbordamiento de búfer?

4

Me ordenaron que probara algunas de nuestras aplicaciones más nuevas antes del lanzamiento del usuario y logré encontrar un desbordamiento de búfer en uno de los campos.

Aquí es donde me he topado con un muro de ladrillos, y no estaba seguro de qué podría intentar a continuación, en todo caso.

Inicialmente probé una sobrescritura parcial de EIP, pero no puedo encontrar saltos útiles dentro de ese espacio (nada en realidad).

Luego verifiqué las DLL incluidas con la aplicación para evitar ASLR por completo, pero tampoco tienen ningún salto que pueda usar.

Para algunas pruebas temporales, decidí simplemente codificar la dirección de salto actual y preocuparme por ASLR más adelante. El problema AQUÍ es que mi espacio de direcciones actual reside entre 61xxxxxx y 76xxxxxx. Si bien esto no suele ser un problema, el campo que causa el desbordamiento automáticamente capitaliza cada carácter, por lo que cualquier cosa en el rango de 61-7A está fuera.

¿Me estoy perdiendo algo obvio? Si no, ¿qué debo intentar a continuación?

    
pregunta doyler 02.08.2012 - 17:25
fuente

1 respuesta

2

No hay mucho que ganar al explotarlo solo para una demostración. Debería poder hacer una demostración del bloqueo de su sistema de un teléfono prestado de su audiencia, y eso debería asustar adecuadamente a sus espectadores.

Si realmente quieres que los perros y los ponis ladren y troten, podrías armar la demo usando rebase en tu módulo. Eso te permitirá mover el espacio de direcciones a otro lugar que no sea su ubicación actual de 61xxxxxx, como un agradable y conveniente 41xxxxxx. Ciertamente es deshonesto, pero también dramático. Si se siente culpable, dígales que casi no es diferente si alguien agregó un nuevo módulo a esa dirección como parte de una mejora futura de las funciones.

    
respondido por el John Deters 17.08.2012 - 07:04
fuente

Lea otras preguntas en las etiquetas