hacktricks/pentesting-web/integer-overflow.md
2024-03-29 19:49:46 +01:00

4.5 KiB
Raw Blame History

Цілочисельне переповнення

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

{% 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" %}Переповнення цілочисельних значень може виникнути, коли результат арифметичної операції перевищує максимальне значення, яке може бути збережено в пам'яті для даного типу даних. Це може призвести до некоректної поведінки програми, включаючи вразливості безпеки, такі як відмова в обслуговуванні або виконання коду. Для уникнення цього типу проблем важливо завжди перевіряти коректність обробки цілих чисел у програмах. {% 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;
}
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!