Translated ['binary-exploitation/rop-return-oriented-programing/ret2csu.

This commit is contained in:
Translator 2024-09-25 16:51:17 +00:00
parent a463a2479a
commit 9329bde17b

View file

@ -48,7 +48,7 @@ mov rsi, r14;
mov edi, r13d;
call qword [r12 + rbx*8];
```
2. Tal vez no conozcas ninguna dirección a la que escribir allí y **necesitas una instrucción `ret`**. Ten en cuenta que el segundo gadget también **terminará en un `ret`**, pero necesitarás cumplir con algunas **condiciones** para alcanzarlo:
3. Tal vez no conozcas ninguna dirección a la que escribir allí y **necesitas una instrucción `ret`**. Ten en cuenta que el segundo gadget también **terminará en un `ret`**, pero necesitarás cumplir algunas **condiciones** para alcanzarlo:
```armasm
mov rdx, r15;
mov rsi, r14;
@ -181,7 +181,7 @@ target.interactive()
```
### ¿Por qué no usar libc directamente?
Por lo general, estos casos también son vulnerables a [**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/), pero a veces necesitas controlar más parámetros de los que se pueden controlar fácilmente con los gadgets que encuentras directamente en libc. Por ejemplo, la función `write()` requiere tres parámetros, y **encontrar gadgets para establecer todos estos directamente puede no ser posible**.
Usualmente, estos casos también son vulnerables a [**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/), pero a veces necesitas controlar más parámetros de los que se pueden controlar fácilmente con los gadgets que encuentras directamente en libc. Por ejemplo, la función `write()` requiere tres parámetros, y **encontrar gadgets para establecer todos estos directamente puede no ser posible**.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\