Μια επίθεση SQL Injection πραγματοποιείται όταν μια εφαρμογή επεξεργάζεται δεδομένα που παρέχονται από τον χρήστη για να δημιουργήσει μια δήλωση SQL χωρίς πρώτα να επικυρώσει την είσοδό του και στη συνέχεια να υποβάλει τη δήλωση σε διακομιστή βάσης δεδομένων για εκτέλεση.
Όταν αξιοποιηθεί επιτυχώς, μια επίθεση SQL Injection μπορεί να δώσει σε έναν εισβολέα τα μέσα πρόσβασης στο περιεχόμενο της βάσης δεδομένων, να τρέχει εξ αποστάσεως εντολές συστήματος και σε ορισμένες περιπτώσεις, να αναλάβει τον έλεγχο του διακομιστή που φιλοξενεί τη βάση δεδομένων.
Εξαρτάται από το πού βρίσκεται το σφάλμα στον κώδικα, πόσο εύκολο είναι να εκμεταλλευτεί το σφάλμα και ποια πρόσβαση έχει η εφαρμογή στη βάση δεδομένων.
Θεωρητικά, μια επίθεση με SQL Injection μπορεί να πραγματοποιηθεί σε οποιονδήποτε τύπο εφαρμογής, αλλά συνηθέστερα σχετίζεται με web εφαρμογές, επειδή είναι περισσότερο ευπαθείς.
Table of Contents
Διαδικασία δοκιμής
Αντικαταστήστε την τιμή κάθε παραμέτρου με ένα μόνο quote και μια λέξη-κλειδί SQL, όπως WHERE. Δοκιμάστε κάθε παράμετρο ξεχωριστά. Κατά τη δοκιμή παραμέτρων, αφήστε αμετάβλητες όλες τις άλλες παραμέτρους με τα έγκυρα δεδομένα τους.
Σήμερα θα μάθουμε ένα ακόμη εργαλείο σάρωσης που είναι ένα είδος σαρωτή ευπαθειών SQL Injection όπως το SQLMAP που είναι το πιο δημοφιλές εργαλείο μέχρι σήμερα.
Το viSQL είναι ο σαρωτής ευπαθειών SQL Injection, ο οποίος όχι μόνο σαρώνει τη διεύθυνση URL προορισμού, αλλά και ολόκληρο τον διακομιστή κάνοντας crawling και reverse IP domain.
Μπορείτε εύκολα να σαρώσετε για ευπάθεια SQL το ίδιο το URL σε όλους τους ιστότοπους στον ίδιο διακομιστή.
Εγκατάσταση του viSQL στο Kali Linux
Για να εγκαταστήσετε το viSQL, πληκτρολογήστε ” git clone https://github.com/blackvkng/viSQL.git ” στο τερματικό σας.
Η παραπάνω εντολή δημιουργεί αυτόματα ένα φάκελο με το όνομα “viSQL” στον ίδιο κατάλογο που τρέχετε την εντολή. Για να εμφανίσετε όλα τα αρχεία, πληκτρολογήστε ” cd viSQL && ls ” στο τερματικό σας.
Η δεύτερη μέθοδος εγκατάστασης είναι η λήψη του αρχείου installer.py με τη βοήθεια του wget και η εκτέλεση του installer.py με τη βοήθεια της εντολής python.
Εντολή: wget https://raw.githubusercontent.com/blackvkng/viSQL/master/installer.py
Εντολή: sudo python2 installer.py
Μετά από αυτό, για να εκτελέσετε το viSQL, απλώς πληκτρολογήστε “python viSQL.py -h ” που δείχνει το μενού βοήθειας του εργαλείου viSQL.
Για να σαρώσετε έναν ιστότοπο χρησιμοποιώντας το viSQL, πληκτρολογήστε “python viSQL.py -t www.example.com ”
Τώρα αφήσετε το viSQL να κάνει τη δουλειά του. Το viSQL θα κάνει πρώτα το Reverse IP Lookup για να απαριθμήσει τα domain που βρίσκονται σε αυτήν την IP-στόχο και στη συνέχεια θα ανιχνεύσει κάθε ιστότοπο για να βρει ευάλωτη κάποια παράμετρο SQL. Εάν το viSQL βρει κάποιο πιθανό SQL Injection στον στόχο, τότε θα εμφανίσει τον ευάλωτο σύνδεσμο στο τερματικό μας.
Εδώ μπορείτε να δείτε ότι το viSQL ξεκίνησε την διαδικασία ανίχνευσης στον ιστότοπο προορισμού μας και βρήκε πολλές τοποθεσίες που ενδέχεται να είναι ευάλωτες σε επιθέσεις SQL Injection.
Μετά την ολοκλήρωση της ανίχνευσης, το viSQL ξεκινά τη διαδικασία σάρωσης SQLi η οποία παραθέτει όλες τις ευάλωτες διευθύνσεις URL SQL όπως βλέπετε παρακάτω.
Τώρα κρατήστε αυτόν το σύνδεσμο και στη συνέχεια, ξεκινήστε να κάνετε SQL injection χειροκίνητα μέσω του προγράμματος περιήγησης ή αυτόματα, χρησιμοποιώντας το SQLMAP ή το HAVIJ.
*Το SQLMAP προορίζεται για χρήστες που λειτουργούν σε Linux και το HAVIJ για χρήστες με Windows.
Ασφαλής web εφαρμογές σε SQL Injection
Θα πρέπει να ακολουθήσετε ορισμένους κανόνες ασφαλείας για την αποτροπή επιθέσεων SQL Injection.
Περιορίστε τα δικαιώματα των χρηστών της βάσης δεδομένων γιατί οι επιτυχείς επιθέσεις SQL βασίζονται σε διαπιστευτήρια χρηστών της βάσης δεδομένων.
Παρόλο που τα περιοριστικά δικαιώματα ενδέχεται να μην εμποδίζουν τις επιθέσεις SQL, μπορείτε να κάνετε τις επιθέσεις πιο δύσκολο να εφαρμοστούν.
Μην δίνετε πρόσβαση χρήστη σε όλες τις διεργασίες που είναι αποθηκευμένες στο σύστημα, αν οι χρήστες σας πρέπει να έχουν πρόσβαση σε λίγες μόνο.