1.1 KiB

One Gadget

{{#include ../../banners/hacktricks-training.md}}

Información Básica

One Gadget permite obtener un shell en lugar de usar system y "/bin/sh". One Gadget encontrará dentro de la biblioteca libc alguna forma de obtener un shell (execve("/bin/sh")) utilizando solo una dirección.
Sin embargo, normalmente hay algunas restricciones, las más comunes y fáciles de evitar son como [rsp+0x30] == NULL. Como controlas los valores dentro del RSP, solo tienes que enviar algunos valores NULL más para que se evite la restricción.

ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100

Para la dirección indicada por One Gadget, necesitas agregar la dirección base donde se carga libc.

Tip

One Gadget es una gran ayuda para las técnicas de Arbitrary Write 2 Exec y puede simplificar las cadenas ROP ya que solo necesitas llamar a una dirección (y cumplir con los requisitos).

{{#include ../../banners/hacktricks-training.md}}