Database Hacking με συνήθεις εντολές SQL Injection

Σύμφωνα με το Open Web Application Security Project (OWASP), το command injection είναι μια από τις πιο σοβαρές και πολυάριθμες επιθέσεις για web εφαρμογές.

Επιπλέον, οι επιθέσεις αυτές συνεπάγονται συνήθως με σοβαρή οικονομική ζημία για τις εταιρείες και άλλους φορείς, καθώς αποτελούν επιθέσεις κατά της βάσης δεδομένων, όπου περιέχει πολύτιμες πληροφορίες, όπως αριθμοί πιστωτικών καρτών και προσωπικά αναγνωρίσιμες πληροφορίες (PII).

OWASP Top 10

database hacking common sql injection commands

Αν και υπάρχουν πολυάριθμοι τύποι επίθεσης κατά των βάσεων δεδομένων, ο πιο συνηθισμένος είναι το SQL injection. Το SQL injection στέλνει εντολές SQL από τη web φόρμα στη backend βάση δεδομένων.

database hacking common sql injection commands1

Εάν αυτές οι εντολές SQL δεν καθαριστούν στο επίπεδο του προγράμματος-πελάτη (πρόγραμμα περιήγησης), μπορούν να μεταφερθούν στη βάση δεδομένων και να προκαλέσουν χάος, όπως,

  1. Exfiltrate data

  2. Delete data

  3. Add data

  4. Update data

Κατά τη δοκιμή για ευπάθειες SQL injection, αυτές είναι μερικές από τις πιο συνηθισμένες εντολές και ειδικούς χαρακτήρες. Όσο καλύτερα κατανοείτε την SQL, τόσο πιο επιτυχημένοι θα είστε με την επίθεση SQL injection.

Σημειώσεις

Μονό εισαγωγικό (‘): Συχνά χρησιμοποιείται για τον τερματισμό αλφαριθμητικών.

Διπλό εισαγωγικό (“): Μπορεί επίσης να χρησιμοποιηθεί για τον τερματισμό των αλφαριθμητικών σε ορισμένες βάσεις δεδομένων.

Ακολουθίες σχολίων:

Διπλή παύλα (–): Αυτό είναι ένα σχόλιο SQL και μπορεί να χρησιμοποιηθεί για να ακυρώσει το υπόλοιπο ενός ερωτήματος.

Hash (#): Στη MySQL, είναι ένας εναλλακτικός τρόπος για να σχολιάσετε το υπόλοιπο του ερωτήματος.

Slash-αστέρι (/* … */): Σχόλιο πολλών γραμμών.

Μπορεί να χρησιμοποιηθεί για το σχολιασμό τμημάτων ή ολόκληρου του ερωτήματος.

Λειτουργίες και εντολές

Τελεία (;): Αντιπροσωπεύει το τέλος ενός ερωτήματος και την αρχή ενός άλλου.

Λογικοί τελεστές: AND, OR.

Συναρτήσεις ελέγχου: UNION, UNION ALL.

Τιμές Boolean

TRUE ή 1=1: Αποτιμάται πάντα σε true και μπορεί να χρησιμοποιηθεί για τον χειρισμό των ρητρών WHERE.

FALSE ή 1=0: Αποτιμάται πάντα σε false.

Συναρτήσεις χρονοκαθυστέρησης

SLEEP(x): Στην MySQL, προκαλεί καθυστέρηση για x δευτερόλεπτα.

WAITFOR DELAY ‘hh:mm:ss’: Στον SQL Server, προκαλεί καθυστέρηση.

pg_sleep(x): Στην PostgreSQL, προκαλεί καθυστέρηση για x δευτερόλεπτα.

Ανάκτηση πληροφοριών

@@version: (λειτουργεί σε πολλές βάσεις δεδομένων).

CURRENT_USER: Ανακτά τον τρέχοντα χρήστη.

Κωδικοποίηση Hex

Οι επιτιθέμενοι ενδέχεται να κωδικοποιήσουν τα payloads τους σε δεκαεξαδική μορφή για να παρακάμψουν τα λανθασμένα φίλτρα.

Wildcards

Ποσοστιαίο πρόσημο (%): Αντιπροσωπεύει μηδέν ή περισσότερους χαρακτήρες στις ρήτρες LIKE της SQL. Αυτό χρησιμοποιήθηκε στην πρόσφατη επίθεση MoveIT από τον C|op.

Ειδικές λειτουργίες

CONCAT(): Χρησιμοποιείται για τη συνένωση συμβολοσειρών στην SQL.

CAST(), CONVERT(): Χρησιμοποιούνται για τη μετατροπή τύπου.

ASCII(), CHAR(): Συναρτήσεις για τη λήψη τιμών ή χαρακτήρων ASCII, μπορούν να χρησιμοποιηθούν σε blind SQLi.

Υποεπιλογές και ερωτήματα μεταδεδομένων

SELECT … FROM information_schema.tables: Χρησιμοποιείται σε βάσεις δεδομένων όπως η MySQL και η PostgreSQL για τη συλλογή μεταδεδομένων σχετικά με πίνακες.

SELECT … FROM sysobjects …: Χρησιμοποιείται στον SQL Server για τη συλλογή μεταδεδομένων.

Σύνοψη

Τα Injection attacks σε φόρμες ιστού που οδηγούν σε διαρροή της βάσης δεδομένων είναι από τις πιο σοβαρές επιθέσεις που θέτουν σε κίνδυνο την ασφάλεια της σελίδας.

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

Παρόλο που οι επιθέσεις SQLi γίνονται όλο και πιο δύσκολες, η ενδελεχής και βαθιά κατανόηση της SQL είναι απαραίτητη για να πραγματοποιήσει κανείς μια τέτοιου είδους επίθεση.

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. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).