Durante la explotación de un binario, deseo saber cuál es la diferencia entre ROP (programación orientada al retorno) y ret2libc.
No he encontrado un recurso que responda a esta pregunta
Gracias
Esencialmente, ret2libc es en cierto modo un exploit de ROP, ya que creas un nuevo stackframe para llamar a la función del sistema al regresar a la biblioteca libc y sortear una pila no ejecutable.
Un ROP en general funciona de manera similar, usted salta a fragmentos de código (llamados gadgets) que regresan en algún momento y "crea" usted mismo el código que desea ejecutar al combinar esos fragmentos. Literalmente, programa el código que desea ejecutar, creando nuevas rutinas que antes no estaban en el código. ret2libc utiliza la función del sistema para obtener un shell.
Lea otras preguntas en las etiquetas buffer-overflow