21 lines
1.1 KiB
Markdown

# One Gadget
{{#include ../../banners/hacktricks-training.md}}
## Basiese Inligting
[**One Gadget**](https://github.com/david942j/one_gadget) stel jou in staat om 'n shell te verkry in plaas van om **system** en **"/bin/sh"** te gebruik. **One Gadget** sal binne die libc biblioteek 'n manier vind om 'n shell te verkry (`execve("/bin/sh")`) met net een **adres**.\
Echter, normaalweg is daar 'n paar beperkings, die mees algemene en maklik om te vermy is soos `[rsp+0x30] == NULL`. Aangesien jy die waardes binne die **RSP** beheer, hoef jy net nog 'n paar NULL waardes te stuur sodat die beperking vermy word.
![](<../../images/image (615).png>)
```python
ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100
```
Na die adres aangedui deur One Gadget moet jy **die basisadres waar `libc`** gelaai word **byvoeg**.
> [!TIP]
> One Gadget is 'n **groot hulp vir Arbitrary Write 2 Exec tegnieke** en kan **ROP kettings vereenvoudig** aangesien jy net een adres hoef te bel (en die vereistes moet nakom).
{{#include ../../banners/hacktricks-training.md}}