hacktricks/pentesting-web/integer-overflow.md

3.1 KiB
Raw Blame History

整数溢出

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

{% 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黑客技术成为专家 htARTEHackTricks AWS红队专家