Σε προηγούμενους οδηγούς στο iguru, έχουμε χρησιμοποιήσει το BurpSuite για διάφορους σκοπούς. Για να δοκιμάσουμε, να αξιολογήσουμε και να χακάρουμε διαδικτυακές εφαρμογές. Το BurpSuite συγκαταλέγεται σε ένα σύνολο εργαλείων που κάθε hacker/pentester/bug bounty hunter θα πρέπει να γνωρίζει!
To Βurp Suite είναι ένα εξαιρετικό web hacking εργαλείο που χρησιμοποιούν πολλοί pentesters για να ελέγχουν για ευπάθειες ιστοσελίδων και διαδικτυακών εφαρμογών.
To Βurp Suite λειτουργεί έχοντας λεπτομερή γνώση της εφαρμογής ενός πρωτοκόλλου HTTP. Το εργαλείο αυτό λειτουργεί μέσω ενός αλγόριθμου που μπορεί να διαμορφωθεί από τις ρυθμίσεις και μπορεί να δημιουργήσει κακόβουλα αιτήματα επιθέσεων HTTP που χρησιμοποιεί ένας hacker.
To Βurp Suite είναι ιδιαίτερα χρήσιμο για να ανακαλύψετε τρωτά σημεία, όπως SQL injections και cross-site scripting.
Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε το BurpSuite για να ψάξουμε μια web εφαρμογή για ευπάθειες. Το Fuzzing είναι η διαδικασία αποστολής τυχαίων δεδομένων σε μια εφαρμογή με σκοπό να καταρρεύσει η εφαρμογή και έτσι να εντοπιστούν οι ευπάθειες (αν υπάρχουν). Εάν μπορέσουμε να συντρίψουμε μια εφαρμογή με κάποιο τυχαίο input, μπορούμε στη συνέχεια να εντοπίσουμε την αιτία της συντριβής και ενδεχομένως να τη χρησιμοποιήσουμε για να εκμεταλλευτούμε την εφαρμογή. Έτσι, για παράδειγμα, αν στείλουμε δεδομένα που είναι πολύ μεγάλα για να τα χειριστεί η εφαρμογή και αυτή καταρρεύσει, αυτό μπορεί να υποδεικνύει ότι είναι πιθανή μια ευπάθεια buffer overflow.
Θα χρησιμοποιήσουμε λοιπόν το BurpSuite για να στείλουμε ειδικά διαμορφωμένα input σε μια web εφαρμογή σε μια προσπάθεια να ανακαλύψουμε ευπάθειες SQL injection και XXE. Eίναι μια εξαιρετική τεχνική για την ανεύρεση ευπαθειών για bug bounty!
Table of Contents
Βήμα #1: Ανοίξτε το Kali και το OWASP-BWA
Το πρώτο βήμα, φυσικά είναι να ξεκινήσετε το Kali και το OWASP-BWA.
Τώρα, ανοίξτε το πρόγραμμα περιήγησής σας και κάντε κλικ στην εφαρμογή Mutillidae II. Αυτό θα πρέπει να ανοίξει την εφαρμογή όπως φαίνεται παρακάτω.
Βήμα #2: Ανοίξτε το BurpSuite
Στη συνέχεια, ξεκινήστε το BurpSuite στο Kali.
Στο πρόγραμμα περιήγησής σας ανοίξτε το OWASP2013->Injection (SQL)->SQLi-Bypass Authentication ->Login.
Αυτό θα ανοίξει μια οθόνη παρόμοια με την παρακάτω.
Τώρα, με το Intercept ON (και τον διακομιστή μεσολάβησης του προγράμματος περιήγησης ενεργοποιημένο) στον διακομιστή μεσολάβησης στο BurpSuite, πληκτρολογήστε οποιοδήποτε τυχαίο όνομα χρήστη και κωδικό πρόσβασης. Εγώ χρησιμοποίησα το “test” και το “complexpassword”. Ο διακομιστής μεσολάβησης θα πιάσει ή θα αναχαιτίσει την αίτηση όπως φαίνεται παρακάτω.
Κάντε δεξί κλικ και επιλέξτε Send to Intruder
Τώρα, κάντε κλικ στην καρτέλα Intruder στο επάνω μέρος της σελίδας. Αυτό ανοίγει το Intruder που εμφανίζει 4 καρτέλες, Target (Στόχος), Positions (Θέσεις), Payloads (Ωφέλιμα φορτία) και Options (Επιλογές).
Επιλέξτε Positions (Θέσεις). Ο Intruder θα επισημάνει διάφορες πιθανές θέσεις του payload. Κάντε κλικ στο κουμπί Clear (Εκκαθάριση) στη δεξιά πλευρά. Τώρα επισημάνετε το πεδίο username και κάντε κλικ στο κουμπί Add.
Στη συνέχεια κάντε κλικ στο Payloads. Εδώ θα πρέπει να προσθέσετε ένα payload ή μια λίστα με συμβολοσειρές fuzzing.
Κατά το fuzzing, έχουμε αρκετές επιλογές για συμβολοσειρές εισόδου. Θα μπορούσαμε να στείλουμε εκατομμύρια τυχαίες input που μπορεί να διαρκέσουν ώρες ή ημέρες ή μπορούμε να στείλουμε ειδικά διαμορφωμένες input που αναζητούν συγκεκριμένο τύπο ευπάθειας. Εδώ ψάχνουμε συγκεκριμένα για ευπάθειες SQLi, οπότε ας χρησιμοποιήσουμε μια μικρότερη και συγκεκριμένη λίστα SQLi inputs.
Μπορούμε να πάμε στο τερματικό του Kali και να αναζητήσουμε για fuzzing string wordlists πληκτρολογώντας:
kali > locate wordlists | grep fuzz
Αυτό θα εντοπίσει όλες τις λίστες λέξεων και θα φιλτράρει για τη λέξη “fuzz”. Υπάρχουν πολλές, αλλά ας χρησιμοποιήσουμε μία ειδικά για την SQL, όπως η usr/share/wfuzz/wordlists/Injections/SQL.txt.
Αυτή η λίστα περιέχει πολλές συμβολοσειρές που μπορούν δυνητικά να προκαλέσουν SQL injection. Φυσικά, μπορείτε να χρησιμοποιήσετε οποιαδήποτε από αυτές τις λίστες λέξεων για να βρείτε ευπάθειες, αλλά αυτή εδώ ψάχνει ειδικά για σφάλματα SQLi.
Στην οθόνη payload, κάντε κλικ στο κουμπί Load (Φόρτωση) και εισαγάγετε τη διαδρομή προς το αρχείο SQL.txt.
Τέλος, κάντε κλικ στο κουμπί Start Attack και το BurpSuite θα αρχίσει να δοκιμάζει κάθε μια από τις συμβολοσειρές στο όνομα χρήστη ή σε οποιοδήποτε επιλεγμένο πεδίο.
Για να εντοπίσετε πιθανές ευπάθειες σε SQL Injection σε αυτή τη φόρμα σε αυτή την εφαρμογή, αναζητήστε ανωμαλίες στο Status και το μέγεθος των Responses. Σχεδόν όλες αυτές οι απαντήσεις έχουν μήκος 50773, αλλά αρκετές είναι μεγαλύτερες. Οι μεγαλύτερες αποκρίσεις αποτελούν πιθανή ένδειξη μιας επιτυχημένης επίθεσης SQLi.
Βήμα #3: Fuzzing για ευπάθειες XXE
Μπορούμε να κάνουμε τον ίδιο τύπο fuzzing για να ελέγξουμε για ευπάθειες XXE, αλλά με μια λίστα εισόδων ειδικά για την XML.
Για να ελέγξετε για ευπάθειες XXE, μεταβείτε στον επικυρωτή XML στο Mutillidae.
Με το παράθυρο ανοιχτό όπως παρακάτω και το Intercept ON στο διακομιστή μεσολάβησης BurpSuite, εισαγάγετε οποιαδήποτε εισαγωγή στο παράθυρο XML και κάντε κλικ στο Validate XML.
Ο proxy κάνει “catch” το request όπως φαίνεται παρακάτω.
Τώρα, κάντε δεξί κλικ στο διακομιστή μεσολάβησης και επιλέξτε “Send to Intruder“. Ανοίξτε το Intruder και καθαρίστε τις θέσεις όπως κάνατε παραπάνω. Τώρα, επισημάνετε το input σας και κάντε κλικ στο κουμπί Add.
Στη συνέχεια, κάντε κλικ στην καρτέλα Payloads και φορτώστε το αρχείο XXE fuzzing από τον κατάλογο wfuzz wordlist (άλλες συμβολοσειρές XXE fuzzing είναι διαθέσιμες στη διεύθυνση /Seclists/Fuzzing/XXE-Fuzzing.txt) .
Σημειώστε ότι ο κατάλογος περιέχει συμβολοσειρές που σχετίζονται με την XML.
Τέλος, κάντε κλικ στο κουμπί “Start Attack“.
Το Burpsuite σας θα προσπαθήσει να στείλει αυτές τις συμβολοσειρές XML στον validator. Όπως και με το SQL injection fuzzing παραπάνω, αναζητήστε variations στην κατάσταση και το μήκος του σφάλματος για να βρείτε ανωμαλίες που θα υποδεικνύουν μια πιθανή ευπάθεια.
Σύνοψη
Το Fuzzing μπορεί να είναι μια ισχυρή τεχνική για την εύρεση κρυφών ευπαθειών σε web εφαρμογές. Το BurpSuite μας δίνει τη δυνατότητα να εντοπίσουμε σχεδόν οποιαδήποτε φόρμα σε μια web εφαρμογή και να στείλουμε ειδικά διαμορφωμένα inputs στη φόρμα.
Εξετάζοντας στη συνέχεια τα αποτελέσματα για ανωμαλίες, μπορούμε να εντοπίσουμε πιθανές ευπάθειες. Το BurpSuite μπορεί να χρησιμοποιηθεί για να ξεψαχνίσει κάθε input σε μια φόρμα για να βρει ευπάθειες.