mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/android-app-pentesting/react-native-a
This commit is contained in:
parent
c68f11bd82
commit
0379029fe1
@ -1,7 +1,7 @@
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
# Ανάλυση Εφαρμογής React Native
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Για να επιβεβαιώσετε αν η εφαρμογή έχει κατασκευαστεί στο πλαίσιο React Native, ακολουθήστε αυτά τα βήματα:
|
||||
|
||||
1. Μετονομάστε το αρχείο APK με επέκταση zip και εξαγάγετέ το σε έναν νέο φάκελο χρησιμοποιώντας την εντολή `cp com.example.apk example-apk.zip` και `unzip -qq example-apk.zip -d ReactNative`.
|
||||
@ -10,11 +10,25 @@
|
||||
|
||||
3. Χρησιμοποιήστε την εντολή `find . -print | grep -i ".bundle$"` για να αναζητήσετε το αρχείο JavaScript.
|
||||
|
||||
## Κώδικας Javascript
|
||||
Σημείωση: Εάν σας δοθεί ένα Android App Bundle (.aab) αντί για APK, δημιουργήστε πρώτα ένα καθολικό APK και στη συνέχεια εξαγάγετε το bundle:
|
||||
```bash
|
||||
# Get bundletool.jar and generate a universal APK set
|
||||
java -jar bundletool.jar build-apks \
|
||||
--bundle=app-release.aab \
|
||||
--output=app.apks \
|
||||
--mode=universal \
|
||||
--overwrite
|
||||
|
||||
Εάν ελέγχοντας τα περιεχόμενα του `index.android.bundle` βρείτε τον κώδικα JavaScript της εφαρμογής (ακόμα και αν είναι minified), μπορείτε να **τον αναλύσετε για να βρείτε ευαίσθητες πληροφορίες και ευπάθειες**.
|
||||
# Extract the APK and then unzip it to find assets/index.android.bundle
|
||||
unzip -p app.apks universal.apk > universal.apk
|
||||
unzip -qq universal.apk -d ReactNative
|
||||
ls ReactNative/assets/
|
||||
```
|
||||
## Javascript Code
|
||||
|
||||
Καθώς το bundle περιέχει στην πραγματικότητα όλο τον κώδικα JS της εφαρμογής, είναι δυνατόν να **τον χωρίσετε σε διάφορα αρχεία** (πιθανώς διευκολύνοντας την αντίστροφη μηχανική του) χρησιμοποιώντας το **εργαλείο [react-native-decompiler](https://github.com/numandev1/react-native-decompiler)**.
|
||||
Αν ελέγξετε τα περιεχόμενα του `index.android.bundle` και βρείτε τον κώδικα JavaScript της εφαρμογής (ακόμα και αν είναι minified), μπορείτε να **τον αναλύσετε για να βρείτε ευαίσθητες πληροφορίες και ευπάθειες**.
|
||||
|
||||
Καθώς το bundle περιέχει στην πραγματικότητα όλο τον κώδικα JS της εφαρμογής, είναι δυνατόν να **τον χωρίσετε σε διαφορετικά αρχεία** (πιθανώς διευκολύνοντας την αντίστροφη μηχανική του) χρησιμοποιώντας το **εργαλείο [react-native-decompiler](https://github.com/numandev1/react-native-decompiler)**.
|
||||
|
||||
### Webpack
|
||||
|
||||
@ -26,56 +40,156 @@
|
||||
```
|
||||
2. Ανοίξτε το `index.html` αρχείο στο Google Chrome.
|
||||
|
||||
3. Ανοίξτε την Developer Toolbar πατώντας **Command+Option+J για OS X** ή **Control+Shift+J για Windows**.
|
||||
3. Ανοίξτε την Εργαλειοθήκη Ανάπτυξης πατώντας **Command+Option+J για OS X** ή **Control+Shift+J για Windows**.
|
||||
|
||||
4. Κάντε κλικ στο "Sources" στην Developer Toolbar. Θα πρέπει να δείτε ένα αρχείο JavaScript που είναι χωρισμένο σε φακέλους και αρχεία, αποτελώντας το κύριο bundle.
|
||||
4. Κάντε κλικ στο "Sources" στην Εργαλειοθήκη Ανάπτυξης. Θα πρέπει να δείτε ένα αρχείο JavaScript που είναι χωρισμένο σε φακέλους και αρχεία, αποτελώντας το κύριο πακέτο.
|
||||
|
||||
Αν βρείτε ένα αρχείο που ονομάζεται `index.android.bundle.map`, θα μπορείτε να αναλύσετε τον πηγαίο κώδικα σε μη ελαχιστοποιημένη μορφή. Τα αρχεία map περιέχουν πηγή χαρτογράφησης, η οποία σας επιτρέπει να χαρτογραφήσετε ελαχιστοποιημένα αναγνωριστικά.
|
||||
Αν βρείτε ένα αρχείο που ονομάζεται `index.android.bundle.map`, θα μπορείτε να αναλύσετε τον πηγαίο κώδικα σε μη ελαχιστοποιημένη μορφή. Τα αρχεία χάρτη περιέχουν χαρτογράφηση πηγής, η οποία σας επιτρέπει να χαρτογραφήσετε ελαχιστοποιημένα αναγνωριστικά.
|
||||
|
||||
Για να αναζητήσετε ευαίσθητα διαπιστευτήρια και endpoints, ακολουθήστε αυτά τα βήματα:
|
||||
Για να αναζητήσετε ευαίσθητα διαπιστευτήρια και τελικούς προορισμούς, ακολουθήστε αυτά τα βήματα:
|
||||
|
||||
1. Προσδιορίστε ευαίσθητες λέξεις-κλειδιά για να αναλύσετε τον κώδικα JavaScript. Οι εφαρμογές React Native συχνά χρησιμοποιούν τρίτες υπηρεσίες όπως Firebase, endpoints υπηρεσιών AWS S3, ιδιωτικά κλειδιά κ.λπ.
|
||||
1. Προσδιορίστε ευαίσθητες λέξεις-κλειδιά για να αναλύσετε τον κώδικα JavaScript. Οι εφαρμογές React Native συχνά χρησιμοποιούν υπηρεσίες τρίτων, όπως το Firebase, τα endpoints υπηρεσίας AWS S3, ιδιωτικά κλειδιά κ.λπ.
|
||||
|
||||
2. Σε αυτή την συγκεκριμένη περίπτωση, παρατηρήθηκε ότι η εφαρμογή χρησιμοποιούσε την υπηρεσία Dialogflow. Αναζητήστε ένα μοτίβο σχετικό με τη διαμόρφωσή της.
|
||||
|
||||
3. Ήταν τυχερό ότι ευαίσθητα σκληρά διαπιστευτήρια βρέθηκαν στον κώδικα JavaScript κατά τη διάρκεια της διαδικασίας αναγνώρισης.
|
||||
3. Ήταν τυχερό ότι βρέθηκαν ευαίσθητα σκληρά κωδικοποιημένα διαπιστευτήρια στον κώδικα JavaScript κατά τη διάρκεια της διαδικασίας αναγνώρισης.
|
||||
|
||||
### Γρήγορη αναζήτηση μυστικών/τελικών προορισμών σε πακέτα
|
||||
|
||||
Αυτές οι απλές αναζητήσεις συχνά αναδεικνύουν ενδιαφέροντες δείκτες ακόμη και σε ελαχιστοποιημένο JS:
|
||||
```bash
|
||||
# Common backends and crash reporters
|
||||
strings -n 6 index.android.bundle | grep -Ei "(api\.|graphql|/v1/|/v2/|socket|wss://|sentry\.io|bugsnag|appcenter|codepush|firebaseio\.com|amplify|aws)"
|
||||
|
||||
# Firebase / Google keys (heuristics)
|
||||
strings -n 6 index.android.bundle | grep -Ei "(AIza[0-9A-Za-z_-]{35}|AIzaSy[0-9A-Za-z_-]{33})"
|
||||
|
||||
# AWS access key id heuristic
|
||||
strings -n 6 index.android.bundle | grep -E "AKIA[0-9A-Z]{16}"
|
||||
|
||||
# Expo/CodePush deployment keys
|
||||
strings -n 6 index.android.bundle | grep -Ei "(CodePush|codepush:\\/\\/|DeploymentKey)"
|
||||
|
||||
# Sentry DSN
|
||||
strings -n 6 index.android.bundle | grep -Ei "(Sentry\.init|dsn\s*:)"
|
||||
```
|
||||
Αν υποψιάζεστε πλαίσια ενημερώσεων Over-The-Air, αναζητήστε επίσης:
|
||||
- Microsoft App Center / CodePush deployment keys
|
||||
- Expo EAS Updates configuration (`expo-updates`, `expo\.io`, signing certs)
|
||||
|
||||
### Αλλαγή κώδικα JS και ανακατασκευή
|
||||
|
||||
Σε αυτή την περίπτωση, η αλλαγή του κώδικα είναι εύκολη. Απλώς χρειάζεται να μετονομάσετε την εφαρμογή για να χρησιμοποιήσει την επέκταση `.zip` και να την εξαγάγετε. Στη συνέχεια, μπορείτε να **τροποποιήσετε τον κώδικα JS μέσα σε αυτό το bundle και να ανακατασκευάσετε την εφαρμογή**. Αυτό θα πρέπει να είναι αρκετό για να σας επιτρέψει να **εισάγετε κώδικα** στην εφαρμογή για σκοπούς δοκιμών.
|
||||
Σε αυτή την περίπτωση, η αλλαγή του κώδικα είναι εύκολη. Απλώς χρειάζεται να μετονομάσετε την εφαρμογή ώστε να χρησιμοποιεί την επέκταση `.zip` και να την εξάγετε. Στη συνέχεια, μπορείτε να **τροποποιήσετε τον κώδικα JS μέσα σε αυτό το πακέτο και να ανακατασκευάσετε την εφαρμογή**. Αυτό θα πρέπει να είναι αρκετό για να σας επιτρέψει να **εισάγετε κώδικα** στην εφαρμογή για σκοπούς δοκιμών.
|
||||
|
||||
## Hermes bytecode
|
||||
## Hermes bytecode
|
||||
|
||||
Αν το bundle περιέχει **Hermes bytecode**, **δεν θα μπορείτε να έχετε πρόσβαση στον κώδικα Javascript** της εφαρμογής (ούτε καν στην ελαχιστοποιημένη έκδοση).
|
||||
Αν το πακέτο περιέχει **Hermes bytecode**, **δεν θα μπορείτε να έχετε πρόσβαση στον κώδικα Javascript** της εφαρμογής (ούτε καν στην ελαχιστοποιημένη έκδοση).
|
||||
|
||||
Μπορείτε να ελέγξετε αν το bundle περιέχει Hermes bytecode εκτελώντας την παρακάτω εντολή:
|
||||
Μπορείτε να ελέγξετε αν το πακέτο περιέχει Hermes bytecode εκτελώντας την παρακάτω εντολή:
|
||||
```bash
|
||||
file index.android.bundle
|
||||
index.android.bundle: Hermes JavaScript bytecode, version 96
|
||||
```
|
||||
Ωστόσο, μπορείτε να χρησιμοποιήσετε τα εργαλεία **[hbctool](https://github.com/bongtrop/hbctool)**, **[hermes-dec](https://github.com/P1sec/hermes-dec)** ή **[hermes_rs](https://github.com/Pilfer/hermes_rs)** για να **αποσυναρμολογήσετε τον bytecode** και επίσης να **αποκωδικοποιήσετε σε κάποιο ψευδο JS κώδικα**. Για να το κάνετε αυτό, για παράδειγμα αυτές οι εντολές:
|
||||
Ωστόσο, μπορείτε να χρησιμοποιήσετε τα εργαλεία **[hbctool](https://github.com/bongtrop/hbctool)**, ενημερωμένα forks του hbctool που υποστηρίζουν νεότερες εκδόσεις bytecode, **[hasmer](https://github.com/lucasbaizer2/hasmer)**, **[hermes_rs](https://github.com/Pilfer/hermes_rs)** (βιβλιοθήκη/APIs Rust), ή **[hermes-dec](https://github.com/P1sec/hermes-dec)** για να **αποσυναρμολογήσετε το bytecode** και επίσης να **αποκωδικοποιήσετε σε κάποιο ψευδο JS κώδικα**. Για παράδειγμα:
|
||||
```bash
|
||||
# Disassemble and re-assemble with hbctool (works only for supported HBC versions)
|
||||
hbctool disasm ./index.android.bundle ./hasm_out
|
||||
# ...edit ./hasm_out/**/*.hasm (e.g., change comparisons, constants, feature flags)...
|
||||
hbctool asm ./hasm_out ./index.android.bundle
|
||||
|
||||
# Using hasmer (focus on disassembly; assembler/decompiler are WIP)
|
||||
hasmer disasm ./index.android.bundle -o hasm_out
|
||||
|
||||
# Using hermes-dec to produce pseudo-JS
|
||||
hbc-disassembler ./index.android.bundle /tmp/my_output_file.hasm
|
||||
hbc-decompiler ./index.android.bundle /tmp/my_output_file.js
|
||||
hbc-decompiler ./index.android.bundle /tmp/my_output_file.js
|
||||
```
|
||||
### Αλλαγή κώδικα και ανακατασκευή
|
||||
Tip: Το έργο ανοιχτού κώδικα Hermes παρέχει επίσης εργαλεία προγραμματιστών όπως το `hbcdump` σε συγκεκριμένες εκδόσεις του Hermes. Εάν κατασκευάσετε την αντίστοιχη έκδοση του Hermes που χρησιμοποιήθηκε για την παραγωγή του πακέτου, το `hbcdump` μπορεί να εξάγει συναρτήσεις, πίνακες συμβολοσειρών και bytecode για πιο βαθιά ανάλυση.
|
||||
|
||||
Ιδανικά, θα πρέπει να είστε σε θέση να τροποποιήσετε τον αποσυναρμολογημένο κώδικα (αλλάζοντας μια σύγκριση, ή μια τιμή ή οτιδήποτε χρειάζεται να τροποποιήσετε) και στη συνέχεια να **ανακατασκευάσετε τον bytecode** και μετά να ανακατασκευάσετε την εφαρμογή.
|
||||
### Αλλαγή κώδικα και ανακατασκευή (Hermes)
|
||||
|
||||
Το εργαλείο **[hbctool](https://github.com/bongtrop/hbctool)** υποστηρίζει την αποσυναρμολόγηση του πακέτου και την επανακατασκευή του μετά την εκτέλεση των αλλαγών, ωστόσο **υποστηρίζει μόνο παλιές εκδόσεις** του bytecode Hermes.
|
||||
Ιδανικά, θα πρέπει να μπορείτε να τροποποιήσετε τον αποσυναρμολογημένο κώδικα (αλλάζοντας μια σύγκριση, ή μια τιμή ή οτιδήποτε χρειάζεται να τροποποιήσετε) και στη συνέχεια **να ανακατασκευάσετε το bytecode** και να ανακατασκευάσετε την εφαρμογή.
|
||||
|
||||
Το εργαλείο **[hermes-dec](https://github.com/P1sec/hermes-dec)** δεν υποστηρίζει την ανακατασκευή του bytecode.
|
||||
- Το αρχικό **[hbctool](https://github.com/bongtrop/hbctool)** υποστηρίζει την αποσυναρμολόγηση του πακέτου και την επανακατασκευή του μετά από αλλαγές, αλλά ιστορικά υποστήριζε μόνο παλαιότερες εκδόσεις bytecode. Οι διακλαδώσεις που διατηρούνται από την κοινότητα επεκτείνουν την υποστήριξη σε νεότερες εκδόσεις του Hermes (συμπεριλαμβανομένων των mid-80s–96) και συχνά είναι η πιο πρακτική επιλογή για την επιδιόρθωση σύγχρονων εφαρμογών RN.
|
||||
- Το εργαλείο **[hermes-dec](https://github.com/P1sec/hermes-dec)** δεν υποστηρίζει την ανακατασκευή του bytecode (μόνο αποσυμπιεστής/αποσυναρμολογητής), αλλά είναι πολύ χρήσιμο για την πλοήγηση στη λογική και την εξαγωγή συμβολοσειρών.
|
||||
- Το εργαλείο **[hasmer](https://github.com/lucasbaizer2/hasmer)** στοχεύει να υποστηρίξει τόσο την αποσυναρμολόγηση όσο και τη συναρμολόγηση για πολλές εκδόσεις του Hermes; η συναρμολόγηση εξακολουθεί να ωριμάζει αλλά αξίζει να δοκιμαστεί σε πρόσφατο bytecode.
|
||||
|
||||
Το εργαλείο **[hermes_rs](https://github.com/Pilfer/hermes_rs)** υποστηρίζει την ανακατασκευή του bytecode, αλλά στην πραγματικότητα είναι μια βιβλιοθήκη και όχι ένα εργαλείο CLI.
|
||||
Ένας ελάχιστος ροή εργασίας με assemblers παρόμοιους με το hbctool:
|
||||
```bash
|
||||
# 1) Disassemble to HASM directories
|
||||
hbctool disasm assets/index.android.bundle ./hasm
|
||||
|
||||
# 2) Edit a guard or feature flag (example: force boolean true)
|
||||
# In the relevant .hasm, replace a LoadConstUInt8 0 with 1
|
||||
# or change a conditional jump target to bypass a check.
|
||||
|
||||
# 3) Reassemble into a new bundle
|
||||
hbctool asm ./hasm assets/index.android.bundle
|
||||
|
||||
# 4) Repack the APK and resign
|
||||
zip -r ../patched.apk *
|
||||
# Align/sign as usual (see Android signing section in HackTricks)
|
||||
```
|
||||
Σημειώστε ότι η μορφή bytecode του Hermes είναι εκδοτική και ο assembler πρέπει να ταιριάζει με την ακριβή μορφή που είναι αποθηκευμένη στο δίσκο. Εάν λάβετε σφάλματα μορφής, αλλάξτε σε μια ενημερωμένη έκδοση/εναλλακτική ή ξαναχτίστε τα αντίστοιχα εργαλεία Hermes.
|
||||
|
||||
## Δυναμική Ανάλυση
|
||||
|
||||
Μπορείτε να προσπαθήσετε να αναλύσετε δυναμικά την εφαρμογή χρησιμοποιώντας το Frida για να ενεργοποιήσετε τη λειτουργία προγραμματιστή της εφαρμογής React και να χρησιμοποιήσετε το **`react-native-debugger`** για να συνδεθείτε σε αυτήν. Ωστόσο, για αυτό χρειάζεστε τον πηγαίο κώδικα της εφαρμογής προφανώς. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με αυτό στο [https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/](https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/).
|
||||
Μπορείτε να προσπαθήσετε να αναλύσετε δυναμικά την εφαρμογή χρησιμοποιώντας το Frida για να ενεργοποιήσετε τη λειτουργία προγραμματιστή της εφαρμογής React και να χρησιμοποιήσετε το **`react-native-debugger`** για να συνδεθείτε σε αυτήν. Ωστόσο, για αυτό χρειάζεστε προφανώς τον πηγαίο κώδικα της εφαρμογής. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με αυτό στο [https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/](https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/).
|
||||
|
||||
### Ενεργοποίηση Υποστήριξης Dev σε έκδοση με Frida (προειδοποιήσεις)
|
||||
|
||||
Ορισμένες εφαρμογές κατά λάθος αποστέλλουν κλάσεις που καθιστούν την υποστήριξη Dev εναλλάξιμη. Εάν είναι παρούσες, μπορείτε να προσπαθήσετε να αναγκάσετε το `getUseDeveloperSupport()` να επιστρέψει true:
|
||||
```javascript
|
||||
// frida -U -f com.target.app -l enable-dev.js
|
||||
Java.perform(function(){
|
||||
try {
|
||||
var Host = Java.use('com.facebook.react.ReactNativeHost');
|
||||
Host.getUseDeveloperSupport.implementation = function(){
|
||||
return true; // force dev support
|
||||
};
|
||||
console.log('[+] Patched ReactNativeHost.getUseDeveloperSupport');
|
||||
} catch (e) {
|
||||
console.log('[-] Could not patch: ' + e);
|
||||
}
|
||||
});
|
||||
```
|
||||
Warning: Σε σωστά κατασκευασμένες εκδόσεις, οι `DevSupportManagerImpl` και σχετικές κλάσεις μόνο για debugging αφαιρούνται και η αλλαγή αυτής της σημαίας μπορεί να προκαλέσει κρασάρισμα της εφαρμογής ή να μην έχει καμία επίδραση. Όταν αυτό λειτουργεί, μπορείτε συνήθως να εκθέσετε το μενού ανάπτυξης και να συνδέσετε debuggers/inspectors.
|
||||
|
||||
### Δικτυακή παρεμβολή σε εφαρμογές RN
|
||||
|
||||
Η React Native Android συνήθως βασίζεται στο OkHttp από κάτω (μέσω του εγγενή module `Networking`). Για να παρεμβάλετε/παρατηρήσετε την κίνηση σε μια συσκευή που δεν είναι ριζωμένη κατά τη διάρκεια δυναμικών δοκιμών:
|
||||
- Χρησιμοποιήστε proxy συστήματος + εμπιστευθείτε το CA του χρήστη ή χρησιμοποιήστε άλλες γενικές τεχνικές παράκαμψης TLS Android.
|
||||
- Συμβουλή ειδική για RN: αν η εφαρμογή συμπεριλαμβάνει το Flipper στην έκδοση κατά λάθος (εργαλεία debugging), το plugin Δικτύου Flipper μπορεί να εκθέσει αιτήματα/απαντήσεις.
|
||||
|
||||
Για γενικές τεχνικές παρεμβολής Android και παράκαμψης pinning ανατρέξτε σε:
|
||||
|
||||
{{#ref}}
|
||||
make-apk-accept-ca-certificate.md
|
||||
{{#endref}}
|
||||
|
||||
{{#ref}}
|
||||
frida-tutorial/objection-tutorial.md
|
||||
{{#endref}}
|
||||
|
||||
## Πρόσφατα ζητήματα σε δημοφιλή βιβλιοθήκες RN (τι να προσέξετε)
|
||||
|
||||
Κατά την επιθεώρηση τρίτων modules που είναι ορατά στο JS bundle ή σε εγγενείς βιβλιοθήκες, ελέγξτε για γνωστές ευπάθειες και επαληθεύστε τις εκδόσεις στο `package.json`/`yarn.lock`.
|
||||
|
||||
- react-native-mmkv (Android): εκδόσεις πριν από την 2.11.0 κατέγραφαν το προαιρετικό κλειδί κρυπτογράφησης στα logs του Android. Αν είναι διαθέσιμα τα ADB/logcat, τα μυστικά θα μπορούσαν να ανακτηθούν. Βεβαιωθείτε ότι είναι >= 2.11.0. Δείκτες: χρήση του `react-native-mmkv`, δηλώσεις log που αναφέρουν την αρχικοποίηση MMKV με κρυπτογράφηση. CVE-2024-21668.
|
||||
- react-native-document-picker: εκδόσεις < 9.1.1 ήταν ευάλωτες σε διαδρομή αρχείου στο Android (επιλογή αρχείου), διορθώθηκε στην 9.1.1. Επαληθεύστε τις εισόδους και την έκδοση της βιβλιοθήκης.
|
||||
|
||||
Γρήγοροι έλεγχοι:
|
||||
```bash
|
||||
grep -R "react-native-mmkv" -n {index.android.bundle,*.map} 2>/dev/null || true
|
||||
grep -R "react-native-document-picker" -n {index.android.bundle,*.map} 2>/dev/null || true
|
||||
# If you also have the node_modules (rare on release): grep -R in package.json / yarn.lock
|
||||
```
|
||||
## Αναφορές
|
||||
|
||||
- [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
|
||||
- [https://www.assetnote.io/resources/research/expanding-the-attack-surface-react-native-android-applications](https://www.assetnote.io/resources/research/expanding-the-attack-surface-react-native-android-applications)
|
||||
- [https://payatu.com/wp-content/uploads/2023/02/Mastering-React-Native-Application-Pentesting-A-Practical-Guide-2.pdf](https://payatu.com/wp-content/uploads/2023/02/Mastering-React-Native-Application-Pentesting-A-Practical-Guide-2.pdf)
|
||||
- CVE-2024-21668: react-native-mmkv logs encryption key on Android, fixed in v2.11.0 (NVD): https://nvd.nist.gov/vuln/detail/CVE-2024-21668
|
||||
- hbctool (and forks) for Hermes assemble/disassemble: https://github.com/bongtrop/hbctool
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user