hacktricks/pentesting-web/integer-overflow.md

59 lines
6.5 KiB
Markdown
Raw Normal View History

2024-04-06 18:31:47 +00:00
# Integer Overflow
2022-10-11 23:01:22 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-10-11 23:01:22 +00:00
2024-02-10 22:40:18 +00:00
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
2024-04-06 18:31:47 +00:00
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-10-11 23:01:22 +00:00
</details>
```rust
fn main() {
2024-02-10 22:40:18 +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
}
```
2024-02-10 22:40:18 +00:00
Η ακέραια υπερχείλιση είναι μια ευπάθεια που συμβαίνει όταν μια μεταβλητή ακέραιου τύπου υπερβαίνει το μέγιστο δυνατό όριο της τιμής της. Αυτό μπορεί να οδηγήσει σε μη αναμενόμενη συμπεριφορά του προγράμματος, συμπεριλαμβανομένων σφαλμάτων, καταστροφής δεδομένων ή ακόμη και εκμετάλλευσης του προγράμματος από κακόβουλο χρήστη.
Η ακέραια υπερχείλιση μπορεί να συμβεί σε πολλές περιπτώσεις, όπως όταν γίνεται πρόσθεση, αφαίρεση, πολλαπλασιασμός ή διαίρεση ακεραίων αριθμών. Όταν μια μεταβλητή υπερβαίνει το μέγιστο δυνατό όριο της τιμής της, η τιμή της μεταβλητής μηδενίζεται και ξεκινά από την ελάχιστη δυνατή τιμή της.
Για να εκμεταλλευτεί κάποιος την ακέραια υπερχείλιση, πρέπει να βρει μια ευπάθεια στον κώδικα που επιτρέπει την αλλαγή της τιμής μιας μεταβλητής ακεραίου χωρίς να γίνει έλεγχος για το μέγιστο δυνατό όριο. Αυτό μπορεί να συμβεί, για παράδειγμα, όταν γίνεται ανάθεση τιμής από μια μεταβλητή που δεν έχει ελεγχθεί για το μέγιστο δυνατό όριο της τιμής της.
Για να προστατευθεί ο κώδικας από την ακέραια υπερχείλιση, πρέπει να γίνεται έλεγχος για το μέγιστο δυνατό όριο της τιμής της μεταβλητής πριν από κάθε αλλαγή της τιμής της. Επίσης, είναι σημαντικό να χρησιμοποιούνται ασφαλής μέθοδοι για τις αριθμητικές πράξεις, όπως οι ακέραιες αριθμητικές πράξεις με χρήση μεταβλητών μεγάλου μεγέθους.
Συνολικά, η ακέραια υπερχείλιση είναι μια ευπάθεια που μπορεί να οδηγήσει σε σοβαρά προβλήματα ασφάλειας και πρέπει να αντιμετωπίζεται με προσοχή κατά την ανάπτυξη λογισμικού.
2024-04-06 18:31:47 +00:00
\`\`\`c #include #include
2022-10-11 23:01:22 +00:00
2024-04-06 18:31:47 +00:00
int main() { int a = INT\_MAX; int b = 0; int c = 0;
2024-02-10 22:40:18 +00:00
2024-04-06 18:31:47 +00:00
b = a \* 100; c = a + 1;
printf("%d\n", INT\_MAX); printf("%d\n", b); printf("%d\n", c); return 0; }
2024-02-10 22:40:18 +00:00
2022-10-11 23:01:22 +00:00
```
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-10-11 23:01:22 +00:00
2024-02-10 22:40:18 +00:00
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-10-11 23:01:22 +00:00
</details>
2024-04-06 18:31:47 +00:00
```