Οδηγός Fuzzing για την εύρεση κενών ασφαλείας με το BurpSuite

Σε προηγούμενους οδηγούς στο iguru, έχουμε χρησιμοποιήσει το BurpSuite για διάφορους σκοπούς. Για να δοκιμάσουμε, να αξιολογήσουμε και να χακάρουμε διαδικτυακές εφαρμογές. Το BurpSuite συγκαταλέγεται σε ένα σύνολο εργαλείων που κάθε hacker/pentester/bug bounty hunter θα πρέπει να γνωρίζει!

To Βurp Suite είναι ένα εξαιρετικό web εργαλείο που χρησιμοποιούν πολλοί pentesters για να ελέγχουν για ευπάθειες ιστοσελίδων και διαδικτυακών εφαρμογών.

To Βurp Suite λειτουργεί έχοντας λεπτομερή γνώση της εφαρμογής ενός πρωτοκόλλου HTTP. Το εργαλείο αυτό λειτουργεί μέσω ενός αλγόριθμου που μπορεί να διαμορφωθεί από τις ρυθμίσεις και μπορεί να δημιουργήσει κακόβουλα αιτήματα επιθέσεων HTTP που χρησιμοποιεί ένας hacker.

To Βurp Suite είναι ιδιαίτερα χρήσιμο για να ανακαλύψετε τρωτά σημεία, όπως SQL injections και cross-site scripting.

bugs

Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε το BurpSuite για να ψάξουμε μια web εφαρμογή για ευπάθειες. Το Fuzzing είναι η διαδικασία αποστολής τυχαίων δεδομένων σε μια εφαρμογή με σκοπό να καταρρεύσει η εφαρμογή και έτσι να εντοπιστούν οι ευπάθειες (αν υπάρχουν). Εάν μπορέσουμε να συντρίψουμε μια εφαρμογή με κάποιο τυχαίο input, μπορούμε στη συνέχεια να εντοπίσουμε την αιτία της συντριβής και ενδεχομένως να τη χρησιμοποιήσουμε για να εκμεταλλευτούμε την εφαρμογή. Έτσι, για παράδειγμα, αν στείλουμε δεδομένα που είναι πολύ μεγάλα για να τα χειριστεί η εφαρμογή και αυτή καταρρεύσει, αυτό μπορεί να υποδεικνύει ότι είναι πιθανή μια ευπάθεια buffer overflow.

Θα χρησιμοποιήσουμε λοιπόν το BurpSuite για να στείλουμε ειδικά διαμορφωμένα input σε μια web εφαρμογή σε μια προσπάθεια να ανακαλύψουμε ευπάθειες SQL injection και XXE. Eίναι μια εξαιρετική τεχνική για την ανεύρεση ευπαθειών για bug bounty!

Βήμα #1: Ανοίξτε το Kali και το OWASP-BWA

Το πρώτο βήμα, φυσικά είναι να ξεκινήσετε το Kali και το OWASP-BWA.

burp

Τώρα, ανοίξτε το πρόγραμμα περιήγησής σας και κάντε κλικ στην εφαρμογή Mutillidae II. Αυτό θα πρέπει να ανοίξει την εφαρμογή όπως φαίνεται παρακάτω.

burp1

 

Βήμα #2: Ανοίξτε το BurpSuite

Στη συνέχεια, ξεκινήστε το BurpSuite στο Kali.

burp2

Στο πρόγραμμα περιήγησής σας ανοίξτε το OWASP2013->Injection (SQL)->SQLi-Bypass Authentication ->Login.

burp3

Αυτό θα ανοίξει μια οθόνη παρόμοια με την παρακάτω.

burp4

Τώρα, με το Intercept ON (και τον διακομιστή μεσολάβησης του προγράμματος περιήγησης ενεργοποιημένο) στον διακομιστή μεσολάβησης στο BurpSuite, πληκτρολογήστε οποιοδήποτε τυχαίο όνομα χρήστη και κωδικό πρόσβασης. Εγώ χρησιμοποίησα το “test” και το “complexpassword”. Ο διακομιστής μεσολάβησης θα πιάσει ή θα αναχαιτίσει την αίτηση όπως φαίνεται παρακάτω.

Κάντε δεξί κλικ και επιλέξτε Send to Intruder

burp5

Τώρα, κάντε κλικ στην καρτέλα Intruder στο επάνω μέρος της σελίδας. Αυτό ανοίγει το Intruder που εμφανίζει 4 καρτέλες, Target (Στόχος), Positions (Θέσεις), Payloads (Ωφέλιμα φορτία) και Options (Επιλογές).

Επιλέξτε Positions (Θέσεις). Ο Intruder θα επισημάνει διάφορες πιθανές θέσεις του payload. Κάντε κλικ στο κουμπί Clear (Εκκαθάριση) στη δεξιά πλευρά. Τώρα επισημάνετε το πεδίο username και κάντε κλικ στο κουμπί Add.

burp6

Στη συνέχεια κάντε κλικ στο Payloads. Εδώ θα πρέπει να προσθέσετε ένα payload ή μια λίστα με συμβολοσειρές fuzzing.

Κατά το fuzzing, έχουμε αρκετές επιλογές για συμβολοσειρές εισόδου. Θα μπορούσαμε να στείλουμε εκατομμύρια τυχαίες input που μπορεί να διαρκέσουν ώρες ή ημέρες ή μπορούμε να στείλουμε ειδικά διαμορφωμένες input που αναζητούν συγκεκριμένο τύπο ευπάθειας. Εδώ ψάχνουμε συγκεκριμένα για ευπάθειες SQLi, οπότε ας χρησιμοποιήσουμε μια μικρότερη και συγκεκριμένη λίστα SQLi inputs.

Μπορούμε να πάμε στο τερματικό του Kali και να αναζητήσουμε για fuzzing string wordlists πληκτρολογώντας:

kali > locate wordlists | grep fuzz

burp7

Αυτό θα εντοπίσει όλες τις λίστες λέξεων και θα φιλτράρει για τη λέξη “fuzz”. Υπάρχουν πολλές, αλλά ας χρησιμοποιήσουμε μία ειδικά για την SQL, όπως η usr/share/wfuzz/wordlists/Injections/SQL.txt.

Αυτή η λίστα περιέχει πολλές συμβολοσειρές που μπορούν δυνητικά να προκαλέσουν SQL injection. Φυσικά, μπορείτε να χρησιμοποιήσετε οποιαδήποτε από αυτές τις λίστες λέξεων για να βρείτε ευπάθειες, αλλά αυτή εδώ ψάχνει ειδικά για σφάλματα SQLi.

Στην οθόνη payload, κάντε κλικ στο κουμπί Load (Φόρτωση) και εισαγάγετε τη διαδρομή προς το αρχείο SQL.txt.

burp8

Τέλος, κάντε κλικ στο κουμπί Start Attack και το BurpSuite θα αρχίσει να δοκιμάζει κάθε μια από τις συμβολοσειρές στο όνομα χρήστη ή σε οποιοδήποτε επιλεγμένο πεδίο.

burp9

Για να εντοπίσετε πιθανές ευπάθειες σε SQL Injection σε αυτή τη φόρμα σε αυτή την εφαρμογή, αναζητήστε ανωμαλίες στο Status και το μέγεθος των Responses. Σχεδόν όλες αυτές οι απαντήσεις έχουν μήκος 50773, αλλά αρκετές είναι μεγαλύτερες. Οι μεγαλύτερες αποκρίσεις αποτελούν πιθανή ένδειξη μιας επιτυχημένης επίθεσης SQLi.

Βήμα #3: Fuzzing για ευπάθειες XXE

Μπορούμε να κάνουμε τον ίδιο τύπο fuzzing για να ελέγξουμε για ευπάθειες XXE, αλλά με μια λίστα εισόδων ειδικά για την XML.

Για να ελέγξετε για ευπάθειες XXE, μεταβείτε στον επικυρωτή XML στο Mutillidae.

burp10

Με το παράθυρο ανοιχτό όπως παρακάτω και το Intercept ON στο διακομιστή μεσολάβησης BurpSuite, εισαγάγετε οποιαδήποτε εισαγωγή στο παράθυρο XML και κάντε κλικ στο Validate XML.

burp11

Ο proxy κάνει “catch” το request όπως φαίνεται παρακάτω.

burp12

Τώρα, κάντε δεξί κλικ στο διακομιστή μεσολάβησης και επιλέξτε “Send to Intruder“. Ανοίξτε το Intruder και καθαρίστε τις θέσεις όπως κάνατε παραπάνω. Τώρα, επισημάνετε το input σας και κάντε κλικ στο κουμπί Add.

burp13

Στη συνέχεια, κάντε κλικ στην καρτέλα Payloads και φορτώστε το αρχείο XXE fuzzing από τον κατάλογο wfuzz wordlist (άλλες συμβολοσειρές XXE fuzzing είναι διαθέσιμες στη διεύθυνση /Seclists/Fuzzing/XXE-Fuzzing.txt) .

burp14

Σημειώστε ότι ο κατάλογος περιέχει συμβολοσειρές που σχετίζονται με την XML.

burp15

Τέλος, κάντε κλικ στο κουμπί “Start Attack“.

burp16

Το Burpsuite σας θα προσπαθήσει να στείλει αυτές τις συμβολοσειρές XML στον validator. Όπως και με το SQL injection fuzzing παραπάνω, αναζητήστε variations στην κατάσταση και το μήκος του σφάλματος για να βρείτε ανωμαλίες που θα υποδεικνύουν μια πιθανή ευπάθεια.

Σύνοψη

Το Fuzzing μπορεί να είναι μια ισχυρή τεχνική για την εύρεση κρυφών ευπαθειών σε web εφαρμογές. Το BurpSuite μας δίνει τη δυνατότητα να εντοπίσουμε σχεδόν οποιαδήποτε φόρμα σε μια web εφαρμογή και να στείλουμε ειδικά διαμορφωμένα inputs στη φόρμα.

Εξετάζοντας στη συνέχεια τα αποτελέσματα για ανωμαλίες, μπορούμε να εντοπίσουμε πιθανές ευπάθειες. Το BurpSuite μπορεί να χρησιμοποιηθεί για να ξεψαχνίσει κάθε input σε μια φόρμα για να βρει ευπάθειες.

 

iGuRu.gr The Best Technology Site in Greeceggns

Get the best viral stories straight into your inbox!















Written by Anastasis Vasileiadis

Οι μεταφράσεις είναι σαν τις γυναίκες. Όταν είναι ωραίες δεν είναι πιστές και όταν είναι πιστές δεν είναι ωραίες.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).