**Η SQL injection μπορεί να χωριστή σε 3 κατηγορίες**
INBAND:
Τα δεδομένα εξάγονται χρησιμοποιώντας το ίδιο κανάλι με αυτό που χρησιμοποιείτε για το injection στην SQL. Αυτός είναι ο πιο απλός τύπος επιθέσεις SQL όπου τα δεδομέναπαρουσιάζονται απευθείας στην ιστοσελίδα.
OUT_OF_BAND:
Τα δεδομένα εξάγονται χρησιμοποιώντας διαφορετικό κανάλι (π.χ κάποιο email) δηλαδή τα δεδομένα από το injection στέλνονται σε ένα email που έχει προκαθοριστεί.
INFERENTIAL:
Δεν υπάρχει πραγματική μεταφορά δεδομένων αλλα ο επιτιθέμενος είναι σε θέσει να ανακατασκευάσει τις πληροφορίες με την αποστολή συγκεκριμένου αιτήματος προς την βάση δεδομένων και παρατηρώντας την “συμπεριφορά” αντίδραση του website.
**ΤΥΠΟΙ SQL INJECTION**
ERROR-BASED: Ρωτάμε την Database κάτι που θα προκαλέσει κάποιο error
#παράδειγμα: http://example.com/page.asp?id=1or 1=convert(int,(USER))--
UNION-BASED: Το SQL union χρησιμοποιείτε για να συνδυάσει τα αποτελέσματα δυο η περισσοτέρων SELECT SQL σε ένα και μονο αποτέλεσμα
#παράδειγμα: http://example.com/page.asp?id=1UNION SELECT ALL 1,2,3,4--
http://example.com/page.asp?id=1UNION SELECT ALL 1,USER,3,4–
BLIND-BASED: Κάνουμε στην Database μια true/false ερώτηση και περιμένουμε εάν θα πάρουμε θετική απαντήσει, δηλαδή εάν θα εμφανιστεί το αποτέλεσμα που ρωτήσαμε, η αλλιώςχρησιμοποιώντας τον χρόνο ως μια παράμετρο
#παράδειγμα: http://example.com/page.asp?id=1;IF(LEN(USER)=1)WAITFORDELAY '00:00:05'
http://example.com/page.asp?id=1;IF(LEN(USER)=2)WAITFORDELAY '00:00:05'
http://example.com/page.asp?id=1;IF(LEN(USER)=3)WAITFORDELAY '00:00:05'
**ΚΑΘΟΡΙΣΤΕ ΤΟΝ ΤΥΠΟ ΤΗΣ SQL INJECTION**
Υπάρχουν δυο τύποι injection που βασίζονται στο εάν ο τύπος του ευπαθές site είναι βασισμένο σε Integer η σε String. Στην περίπτωση του Integer για το injection δεν χρειαζόμαστε αυτό που λέμε single quote(‘)
Στην άλλη περίπτωση όμως του String τότε το single quote(‘) είναι απαραίτητο
#παράδειγμα: http://example.com/page.asp?id=1
http://example.com/page.asp?id=x'