hacktricks/pentesting-web/integer-overflow.md

78 lines
4.7 KiB
Markdown
Raw Normal View History

2024-02-11 02:13:58 +00:00
# Kuzidiwa kwa Nambari ya Mzunguko
2022-10-11 23:01:22 +00:00
<details>
2024-02-11 02:13:58 +00:00
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi kuwa bingwa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
2022-10-11 23:01:22 +00:00
2024-02-11 02:13:58 +00:00
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? Au ungependa kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa muundo wa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-10-11 23:01:22 +00:00
</details>
{% tabs %}
{% tab title="Rust" %}
```rust
fn main() {
2024-02-11 02:13:58 +00:00
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);
2022-10-11 23:01:22 +00:00
}
```
{% endtab %}
2024-02-11 02:13:58 +00:00
{% tab title="Swahili" %}
### Integer Overflow
Kuzidi kwa nambari ni hali ambapo nambari inazidi ukubwa wa kikomo kilichowekwa kwa aina ya data. Katika programu za C, kuzidi kwa nambari kunaweza kusababisha matokeo yasiyotarajiwa na hatari kwa usalama.
Kwa mfano, ikiwa tuna aina ya data ya `int` ambayo ina ukubwa wa 4 baiti, inaweza kuhifadhi nambari kutoka -2,147,483,648 hadi 2,147,483,647. Ikiwa tunajaribu kuongeza 1 kwa nambari ya juu zaidi, itasababisha kuzidi kwa nambari na kurejea kwa nambari ya chini zaidi, -2,147,483,648.
Katika muktadha wa usalama wa wavuti, kuzidi kwa nambari inaweza kutumiwa na wadukuzi kufanya mashambulizi kama vile kubadilisha thamani ya kumbukumbu, kusababisha kukwama kwa programu, au hata kutekeleza msimbo mbaya.
Kwa hiyo, ni muhimu kwa wapima vipimo kuhakikisha kuwa mipaka ya aina ya data inaheshimiwa na kuepuka kuzidi kwa nambari. Hii inaweza kufanywa kwa kuchunguza mipaka ya aina ya data na kuhakikisha kuwa operesheni za arithmetiki zinazofanywa hazisababishi kuzidi kwa nambari.
Kwa mfano, badala ya kutumia operesheni ya kuongeza moja kwa moja, unaweza kutumia operesheni ya kulinganisha kwanza ili kuhakikisha kuwa kuzidi kwa nambari haitatokea. Pia, unaweza kutumia aina za data zenye ukubwa mkubwa zaidi kama `long` au `long long` ili kuepuka kuzidi kwa nambari.
Kwa kumalizia, kuzidi kwa nambari ni hatari kwa usalama na inaweza kutumiwa na wadukuzi kufanya mashambulizi. Ni muhimu kwa wapima vipimo kuhakikisha kuwa mipaka ya aina ya data inaheshimiwa na kuepuka kuzidi kwa nambari kwa kufanya ukaguzi sahihi na kutumia aina za data sahihi.
2022-10-11 23:01:22 +00:00
```c
#include <stdio.h>
#include <limits.h>
int main() {
2024-02-11 02:13:58 +00:00
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;
2022-10-11 23:01:22 +00:00
}
```
{% endtab %}
{% endtabs %}
<details>
2024-02-11 02:13:58 +00:00
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
2022-10-11 23:01:22 +00:00
2024-02-11 02:13:58 +00:00
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? Au ungependa kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-10-11 23:01:22 +00:00
</details>