hacktricks/pentesting-web/integer-overflow.md

3.6 KiB

Desbordamiento de enteros

Aprende a hackear AWS desde cero hasta convertirte en un héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!

{% tabs %} {% tab title="Rust" %}

fn main() {

let mut quantity = 2147483647;

let (mul_result, _) = i32::overflowing_mul(32767, quantity);
let (add_result, _) = i32::overflowing_add(1, quantity);

println!("{}", mul_result);
println!("{}", add_result);
}

{% endtab %}

{% tab title="C" %}Un desbordamiento de enteros ocurre cuando se intenta almacenar un valor más grande de lo que un tipo de dato entero puede contener. Esto puede llevar a resultados inesperados, como valores negativos inesperados o incluso vulnerabilidades de seguridad si no se maneja adecuadamente. Es importante validar y sanitizar siempre la entrada del usuario para prevenir desbordamientos de enteros en aplicaciones web. Una forma común de explotar un desbordamiento de enteros es manipular los valores de entrada para que excedan el rango permitido, lo que puede conducir a comportamientos inseguros en la aplicación. {% endtab %}

#include <stdio.h>
#include <limits.h>

int main() {
int a = INT_MAX;
int b = 0;
int c = 0;

b = a * 100;
c = a + 1;

printf("%d\n", INT_MAX);
printf("%d\n", b);
printf("%d\n", c);
return 0;
}
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!