# One Gadget {{#include ../../banners/hacktricks-training.md}} ## Información Básica [**One Gadget**](https://github.com/david942j/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. ![](<../../images/image (615).png>) ```python 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}}