University of Central Greece
Computer Science and Biomedical Informatics



     SQL INJECTION
       System Security project
               Sapountzi Eleni
               Siganos Marios
ΣΙ ΕΙΝΑΙ;
 Σεχνικό που χρηςιμοποιεύται ςυχνϊ για επιθϋςεισ ςε ΒΔ μϋςω
  δικτυακού τόπου
 Σεχνικό ϋγχυςησ (ειςαγωγόσ) κώδικα που εκμεταλλεύεται μύα
  ευπϊθεια αςφαλεύασ ςτο λογιςμικό ενόσ ιςτοτόπου
 Οι επιθϋςεισ SQL injections εμφανύςτηκαν ταυτόχρονα με τισ πρώτεσ
  εφαρμογϋσ web
 Μεγϊλοσ ο αριθμόσ των ςυςτημϊτων που εύναι ευϊλωτα ςτισ
  επιθϋςεισ SQL Injections
 Εύκολα μπορεύ να διερευνηθεύ ςε μια εφαρμογό και με κατϊλληλη
  πρόβλεψη να αποφευχθεύ
ΚΟΡΤΥΑΙΕ΢ 7 ΕΠΙΘΕ΢ΕΙ΢
Μ Π Ο Ρ ΟΤ Μ Ε Ν Α Π ΡΑ Γ Μ ΑΣ Ο Π Ο Ι Η ΢ ΟΤ Μ Ε
          ΜΙΑ ΣΕΣΟΙΑ ΕΠΙΘΕ΢Η;
Ε ΤΑ Λ ΩΣ Ε ΢ Β Δ Κ Α Ι ΓΛ Ω ΢ ΢ Ε ΢
        Π Ρ Ο Γ ΡΑ Μ Μ ΑΣ Ι ΢ Μ ΟΤ
΢χεδόν όλεσ οι βϊςεισ δεδομϋνων SQL και γλώςςεσ
προγραμματιςμού εύναι δυνητικϊ ευϊλωτεσ, πχ:
      MS SQL Server
      Oracle
      MySQL
      Postgres
      DB2
      MS Access
      Sybase
      Informix, κλπ.
Ε ΤΑ Λ ΩΣ Ε ΢ Β Δ Κ Α Ι ΓΛ Ω ΢ ΢ Ε ΢
        Π Ρ Ο Γ ΡΑ Μ Μ ΑΣ Ι ΢ Μ ΟΤ

Πρόςβαςη μϋςω εφαρμογών που ϋχουν αναπτυχθεύ με χρόςη:
     Perl και CGI scripts
     ASP, JSP, PHP
     XML, XSL και XSQL
     Javascript
     VB, MFC, και ϊλλα ODBC-based εργαλεύα και APIs
     DB ςυγκεκριμϋνη web-based εφαρμογϋσ και το API
     Reports and DB Applications
     3 and 4GL-based languages (C, OCI, Pro * C, COBOL)
ΑΝΑΛΤ΢Η
 Σι χρειαζόμαςτε;
    • Απλϊ ϋναν web browser

 Σι πρϋπει να ψϊξουμε;
    • ΢ελύδεσ που επιτρϋπουν την ειςαγωγό δεδομϋνων όπωσ:
        • login page
        • search page
        • feedback κλπ.
    • HTML ςελύδεσ που χρηςιμοποιούν POST εντολϋσ για
    να ςτεύλουν τισ ςχετικϋσ παραμϋτρουσ ςε κϊποια ςελύδα ASP
ΑΝΑΛΤ΢Η
 Τπϊρχει δυνατότητα απομακρυςμϋνησ εκτϋλεςησ με
  SQL Injection;
   • Η SQL δύνει την δυνατότητα ςτουσ developers να
     κϊνουν ΣΑ ΠΑΝΣΑ ςε ϋνα ςύςτημα
   • O SQL Server τρϋχει ςαν SYSTEM, δηλαδό τα
     δικαιώματα που ϋχει εύναι επιπϋδου administrator ςτο
     ςύςτημα
   • Οπότε μπορούμε να αποκτόςουμε εύκολα πρόςβαςη,
     αφού μπορούμε να τρϋξουμε ότι θϋλουμε
ΑΡΦΙΣΕΚΣΟΝΙΚΗ

Web Server   Application Server   Database Server




   Web            Input            Injected SQL
   Page         Validation          Execution!
  Access           Flaw
ΠΩ΢;
 Ειςϊγοντασ δηλώςεισ SQL ςτα πεδύα καταχώρηςησ
  φορμών ιςτοςελύδων
    • Πχ. αλλαγό ό διαγραφό περιεχομϋνου ςε ΒΔ πιςτωτικών
      καρτών ό κωδικών πρόςβαςησ
ΕΤΠΑΘΕΙΑ

Ελλιπόσ ό λανθαςμϋνη επαλόθευςη (validation)
 των δεδομϋνων ειςόδου (input data) μιασ
 εφαρμογόσ ςε:
   • φόρμεσ (μϋθοδοι HTTP GET και POST)
   • links (μϋθοδοσ HTTP GET)
Α Ν Α ΛΤ ΢ Η Μ Ι Α ΢ Ε Τ Π ΑΘ ΟΤ ΢
      W E B ΕΥΑ Ρ Μ Ο Γ Η ΢
ΠΑΡΑΔΕΙΓΜΑ 1
Έςτω πύνακασ «employees» ςε μια ΒΔ MySQL
Ευπαθϋσ block κώδικα PHP
 <?php
    $qry = "SELECT employeeid, fullname, salary FROM employees " .
           "WHERE employeeid =" . $_GET['employeeid'];
    $result = mysql_query($qry);
 ?>
΢κοπόσ εύναι η εκτϋλεςη επερώτηςεων τησ μορφόσ:
SELECT   employeeid, fullname, salary FROM employees
 WHERE    employeeid = 3
SELECT   employeeid, fullname, salary FROM employees
 WHERE    employeeid = 352
ΠΑΡΑΔΕΙΓΜΑ 1
Σο Employeeid εύναι το πρωτεύον κλειδύ ςτον πύνακα employees δύνεται
 μϋςω browser, με χρόςη τησ μεθόδου GET του HTTP με link τησ μορφόσ:
   http://www.example.com/employees.php?employeeid=3

Η τιμό τησ παραμϋτρου GET «employeeid» που δύνεται ςτο URL, ΔΕΝ
 επαληθεύεται επαρκώσ πριν την εκτϋλεςη τησ επερώτηςησ από τον κώδικα
 http://www.example.com/employees.php?employeeid=3 OR 1=1

Ωσ αποτϋλεςμα θα εκτελεςτεύ ςτη βϊςη δεδομϋνων η εξόσ επερώτηςη:
        •SELECT employeeid, fullname, salary FROM employees
         WHERE employeeid=3 OR 1=1

Έτςι ενδϋχεται ο κακόβουλοσ χρόςτησ να δει πληροφορύεσ που δεν εύναι
ςκόπιμο
ΠΑΡΑΔΕΙΓΜΑ 2
Login form
Ευπαθϋσ block κώδικα PHP
 <?php
    $username = $_POST['username'];
    $password = $_POST['password'];
    $qry = "SELECT userid FROM users" .
           " WHERE username='$username'
             AND password='$password'";
    $result = mysql_query($qry);
    if (mysql_numrows($result) > 0) {
       //log in user...
    }
 ?>
ΠΑΡΑΔΕΙΓΜΑ 2
Οι τιμϋσ username και password δύνονται με χρόςη μιασ
 τυπικόσ web login φόρμασ με τη μϋθοδο HTTP POST

Αν δώςουμε ςτο πεδύο password: bar' OR 1=1 OR username='
  ϋχουμε την εκτϋλεςη τησ επερώτηςησ:
       •SELECT userid FROM users WHERE username='foo'
        AND password='bar' OR 1=1 OR username='';


Έτςι ενδϋχεται η πρόςβαςη ςτην εφαρμογό (login) από ϊτομα
που δεν εύναι εξουςιοδοτημϋνα
ΠΑΡΑΔΕΙΓΜΑ 3
Πολλαπλϋσ εντολϋσ SQL ωσ μια επερώτηςη ςτο ςύςτημα
Ο μεγαλύτεροσ κύνδυνοσ ςτα SQL Injections!!!

Παρϊδειγμα ευπαθούσ block κώδικα PHP
 <?php
    $qry = "SELECT employeeid, fullname, salary
            FROM employees " .
           "WHERE employeeid =" . $_GET['employeeid'];
    $result = pg_query($qry);
 ?>
ΠΑΡΑΔΕΙΓΜΑ 3
Δεδομϋνα ειςόδου από links τησ μορφόσ:
 http://www.example.com/employees.php?employeeid=3

Αποτϋλεςμα η εκτϋλεςη τησ επερώτηςησ:
 SELECT employeeid, fullname, salary FROM employees
  WHERE employeeid = 3
ΠΑΡΑΔΕΙΓΜΑ 3
Ο κακόβουλοσ χρόςτησ δύνει τo εξόσ URL
 http://www.example.com/employees.php?employeeid=3;
  DELETE FROM users;


Έτςι θα εκτελεςτούν οι 2 εντολϋσ:
 SELECT employeeid, fullname, salary
  FROM employees WHERE   employeeid = 3;
 DELETE FROM users;


Διαγραφό όλων των δεδομϋνων του πύνακα users από τη βϊςη!
Α Ν Α Ζ Η Σ Η ΢ Η Ε Τ Π ΑΘ Ω Ν Ι ΢ Σ Ε ΢ Ε Λ Ι ΔΩ Ν
Φ Ρ Η ΢ Ι Μ Ο Π Ο Ι Ω Ν ΣΑ ΢ G O O G L E D O R K S

Αναζότηςη με τα παρακϊτω:    Προςθϋτουμε ’ ςτο τϋλοσ
 inurl:index.php?id=        του url και αν εμφανύςει
                             error τότε η ιςτοςελύδα
 inurl:index.php?catid=     εύναι ευϊλωτη ςε SQLi
 inurl:news.php?id=         επιθϋςεισ

 inurl:news.php?catid=

 inurl:product.php?id=
Η ΔΤΝΑΜΗ ΣΟΤ «’»
 Κλεύνει την παρϊμετρο ςυμβολοςειρϊσ

 Ό,τι ακολουθεύ θεωρεύται μϋροσ τησ εντολόσ SQL

 Παραπλανητικϋσ προτϊςεισ Διαδικτύου περιλαμβϊνουν:
    • Αποφύγετε το! : Αντικαταςτόςτε το με ’’

 Σα αλφαριθμητικϊ πεδύα εύναι πολύ ςυχνϊ, αλλϊ υπϊρχουν και
  ϊλλα εύδη πεδύων:
    • Αριθμητικϊ
    • Ημερομηνύεσ
Α Ν Α Ζ Η Σ Η ΢ Η Ι ΢ ΣΟ΢ Ε Λ Ι ΔΩ Ν
 Ε Τ Π ΑΘ Ω Ν ΢ Ε S Q L I N J EC T I O N

 Automated and heuristic web vulnerability scanner

 Ανώφελο να ανιχνεύςουμε μόνο τισ αδυναμύεσ των
  γνωςτών εφαρμογών

 Πιο ευπαθεύσ εύναι οι εφαρμογϋσ που προςαρμόζονται
  από τον χρόςτη
SQLMAP
 Open Source penetration testing tool
 Αυτοματοποιεύ τον εντοπιςμό και την αξιοπούηςη των
  ελαττωμϊτων SQLi και την ανϊληψη των εξυπηρετητών ΒΔ
 Τποςτόριξη για απαρύθμηςη των χρηςτών τησ ΒΔ, «password
  hashes» των χρηςτών, προνόμια, τουσ ρόλουσ των χρηςτών,
  ΒΔ, πύνακεσ και ςτόλεσ
SQLMAP
Αναγνώριςη τησ μορφόσ των «password hashes»
 και υποςτηρύζονται για να ςπϊςουν με επύθεςη
 λεξικού
Εντοπιςμόσ των πινϊκων που περιϋχουν
 διαπιςτευτόρια όπου τα ονόματα αντύςτοιχων ςτηλών
 περιϋχουν ςυμβολοςειρϋσ όπωσ το name και pass
SQLMAP - ΣΕΦΝΙΚΕ΢
 Boolean-based blind SQL injection ό inferential SQL
  injection

 Time-based blind SQL injection ό blind SQL injection

 Error-based SQL injection

 UNION query SQL injection ό inband SQL injection

 Stacked queries SQL injection ό multiple statements
  SQL injection
ΠΩ΢ ΑΠΟ ΥΕΤΓΟΤΜΕ
        SQL INJECTIONS;
Αποφεύγουμε χαρακτόρεσ όπωσ:
     • quotes, slash, backslash, semicolon, NULL, new line, κλπ
 που εντοπύζονται ςε:
     • πεδύα από φόρμεσ ειςαγωγόσ από τουσ χρόςτεσ
     • παραμϋτρουσ ςτο URL
     • τιμϋσ από cookies
ΠΩ΢ ΑΠΟ ΥΕΤΓΟΤΜΕ
        SQL INJECTIONS;
Όλα τα νούμερα μετατρϋπονται ςε ακεραύουσ
Διαγραφό των stored procedures που δεν ςασ αρϋςουν
 και δεν χρειϊζεςτε όπωσ:
   • master..Xp_cmdshell,
   • xp_startmail,
   • xp_sendmail,
   • sp_makewebtask
΢ΤΜΠΕΡΑ΢ΜΑΣΑ
 Η SQL Injection εύναι ςυναρπαςτικό και επικύνδυνη
  ευπϊθεια

 Όλεσ οι γλώςςεσ προγραμματιςμού και ΒΔ SQL εύναι
  δυνητικϊ ευϊλωτεσ

 Προςταςύα από SQLi απαιτεύ:
    • ανθεκτικό ςχεδιαςμό
    • ςωςτό επικύρωςη των δεδομϋνων ειςόδου
΢Α΢ ΕΤΦΑΡΙ΢ΣΟΤΜΕ!

SQL Injection

  • 1.
    University of CentralGreece Computer Science and Biomedical Informatics SQL INJECTION System Security project Sapountzi Eleni Siganos Marios
  • 2.
    ΣΙ ΕΙΝΑΙ;  Σεχνικόπου χρηςιμοποιεύται ςυχνϊ για επιθϋςεισ ςε ΒΔ μϋςω δικτυακού τόπου  Σεχνικό ϋγχυςησ (ειςαγωγόσ) κώδικα που εκμεταλλεύεται μύα ευπϊθεια αςφαλεύασ ςτο λογιςμικό ενόσ ιςτοτόπου  Οι επιθϋςεισ SQL injections εμφανύςτηκαν ταυτόχρονα με τισ πρώτεσ εφαρμογϋσ web  Μεγϊλοσ ο αριθμόσ των ςυςτημϊτων που εύναι ευϊλωτα ςτισ επιθϋςεισ SQL Injections  Εύκολα μπορεύ να διερευνηθεύ ςε μια εφαρμογό και με κατϊλληλη πρόβλεψη να αποφευχθεύ
  • 3.
  • 4.
    Μ Π ΟΡ ΟΤ Μ Ε Ν Α Π ΡΑ Γ Μ ΑΣ Ο Π Ο Ι Η ΢ ΟΤ Μ Ε ΜΙΑ ΣΕΣΟΙΑ ΕΠΙΘΕ΢Η;
  • 5.
    Ε ΤΑ ΛΩΣ Ε ΢ Β Δ Κ Α Ι ΓΛ Ω ΢ ΢ Ε ΢ Π Ρ Ο Γ ΡΑ Μ Μ ΑΣ Ι ΢ Μ ΟΤ ΢χεδόν όλεσ οι βϊςεισ δεδομϋνων SQL και γλώςςεσ προγραμματιςμού εύναι δυνητικϊ ευϊλωτεσ, πχ: MS SQL Server Oracle MySQL Postgres DB2 MS Access Sybase Informix, κλπ.
  • 6.
    Ε ΤΑ ΛΩΣ Ε ΢ Β Δ Κ Α Ι ΓΛ Ω ΢ ΢ Ε ΢ Π Ρ Ο Γ ΡΑ Μ Μ ΑΣ Ι ΢ Μ ΟΤ Πρόςβαςη μϋςω εφαρμογών που ϋχουν αναπτυχθεύ με χρόςη:  Perl και CGI scripts  ASP, JSP, PHP  XML, XSL και XSQL  Javascript  VB, MFC, και ϊλλα ODBC-based εργαλεύα και APIs  DB ςυγκεκριμϋνη web-based εφαρμογϋσ και το API  Reports and DB Applications  3 and 4GL-based languages (C, OCI, Pro * C, COBOL)
  • 7.
    ΑΝΑΛΤ΢Η  Σι χρειαζόμαςτε; • Απλϊ ϋναν web browser  Σι πρϋπει να ψϊξουμε; • ΢ελύδεσ που επιτρϋπουν την ειςαγωγό δεδομϋνων όπωσ: • login page • search page • feedback κλπ. • HTML ςελύδεσ που χρηςιμοποιούν POST εντολϋσ για να ςτεύλουν τισ ςχετικϋσ παραμϋτρουσ ςε κϊποια ςελύδα ASP
  • 8.
    ΑΝΑΛΤ΢Η  Τπϊρχει δυνατότητααπομακρυςμϋνησ εκτϋλεςησ με SQL Injection; • Η SQL δύνει την δυνατότητα ςτουσ developers να κϊνουν ΣΑ ΠΑΝΣΑ ςε ϋνα ςύςτημα • O SQL Server τρϋχει ςαν SYSTEM, δηλαδό τα δικαιώματα που ϋχει εύναι επιπϋδου administrator ςτο ςύςτημα • Οπότε μπορούμε να αποκτόςουμε εύκολα πρόςβαςη, αφού μπορούμε να τρϋξουμε ότι θϋλουμε
  • 9.
    ΑΡΦΙΣΕΚΣΟΝΙΚΗ Web Server Application Server Database Server Web Input Injected SQL Page Validation Execution! Access Flaw
  • 10.
    ΠΩ΢;  Ειςϊγοντασ δηλώςεισSQL ςτα πεδύα καταχώρηςησ φορμών ιςτοςελύδων • Πχ. αλλαγό ό διαγραφό περιεχομϋνου ςε ΒΔ πιςτωτικών καρτών ό κωδικών πρόςβαςησ
  • 11.
    ΕΤΠΑΘΕΙΑ Ελλιπόσ ό λανθαςμϋνηεπαλόθευςη (validation) των δεδομϋνων ειςόδου (input data) μιασ εφαρμογόσ ςε: • φόρμεσ (μϋθοδοι HTTP GET και POST) • links (μϋθοδοσ HTTP GET)
  • 12.
    Α Ν ΑΛΤ ΢ Η Μ Ι Α ΢ Ε Τ Π ΑΘ ΟΤ ΢ W E B ΕΥΑ Ρ Μ Ο Γ Η ΢
  • 13.
    ΠΑΡΑΔΕΙΓΜΑ 1 Έςτω πύνακασ«employees» ςε μια ΒΔ MySQL Ευπαθϋσ block κώδικα PHP <?php $qry = "SELECT employeeid, fullname, salary FROM employees " . "WHERE employeeid =" . $_GET['employeeid']; $result = mysql_query($qry); ?> ΢κοπόσ εύναι η εκτϋλεςη επερώτηςεων τησ μορφόσ: SELECT employeeid, fullname, salary FROM employees WHERE employeeid = 3 SELECT employeeid, fullname, salary FROM employees WHERE employeeid = 352
  • 14.
    ΠΑΡΑΔΕΙΓΜΑ 1 Σο Employeeidεύναι το πρωτεύον κλειδύ ςτον πύνακα employees δύνεται μϋςω browser, με χρόςη τησ μεθόδου GET του HTTP με link τησ μορφόσ: http://www.example.com/employees.php?employeeid=3 Η τιμό τησ παραμϋτρου GET «employeeid» που δύνεται ςτο URL, ΔΕΝ επαληθεύεται επαρκώσ πριν την εκτϋλεςη τησ επερώτηςησ από τον κώδικα http://www.example.com/employees.php?employeeid=3 OR 1=1 Ωσ αποτϋλεςμα θα εκτελεςτεύ ςτη βϊςη δεδομϋνων η εξόσ επερώτηςη: •SELECT employeeid, fullname, salary FROM employees WHERE employeeid=3 OR 1=1 Έτςι ενδϋχεται ο κακόβουλοσ χρόςτησ να δει πληροφορύεσ που δεν εύναι ςκόπιμο
  • 15.
    ΠΑΡΑΔΕΙΓΜΑ 2 Login form Ευπαθϋσblock κώδικα PHP <?php $username = $_POST['username']; $password = $_POST['password']; $qry = "SELECT userid FROM users" . " WHERE username='$username' AND password='$password'"; $result = mysql_query($qry); if (mysql_numrows($result) > 0) { //log in user... } ?>
  • 16.
    ΠΑΡΑΔΕΙΓΜΑ 2 Οι τιμϋσusername και password δύνονται με χρόςη μιασ τυπικόσ web login φόρμασ με τη μϋθοδο HTTP POST Αν δώςουμε ςτο πεδύο password: bar' OR 1=1 OR username=' ϋχουμε την εκτϋλεςη τησ επερώτηςησ: •SELECT userid FROM users WHERE username='foo' AND password='bar' OR 1=1 OR username=''; Έτςι ενδϋχεται η πρόςβαςη ςτην εφαρμογό (login) από ϊτομα που δεν εύναι εξουςιοδοτημϋνα
  • 17.
    ΠΑΡΑΔΕΙΓΜΑ 3 Πολλαπλϋσ εντολϋσSQL ωσ μια επερώτηςη ςτο ςύςτημα Ο μεγαλύτεροσ κύνδυνοσ ςτα SQL Injections!!! Παρϊδειγμα ευπαθούσ block κώδικα PHP <?php $qry = "SELECT employeeid, fullname, salary FROM employees " . "WHERE employeeid =" . $_GET['employeeid']; $result = pg_query($qry); ?>
  • 18.
    ΠΑΡΑΔΕΙΓΜΑ 3 Δεδομϋνα ειςόδουαπό links τησ μορφόσ: http://www.example.com/employees.php?employeeid=3 Αποτϋλεςμα η εκτϋλεςη τησ επερώτηςησ:  SELECT employeeid, fullname, salary FROM employees WHERE employeeid = 3
  • 19.
    ΠΑΡΑΔΕΙΓΜΑ 3 Ο κακόβουλοσχρόςτησ δύνει τo εξόσ URL  http://www.example.com/employees.php?employeeid=3; DELETE FROM users; Έτςι θα εκτελεςτούν οι 2 εντολϋσ:  SELECT employeeid, fullname, salary FROM employees WHERE employeeid = 3;  DELETE FROM users; Διαγραφό όλων των δεδομϋνων του πύνακα users από τη βϊςη!
  • 20.
    Α Ν ΑΖ Η Σ Η ΢ Η Ε Τ Π ΑΘ Ω Ν Ι ΢ Σ Ε ΢ Ε Λ Ι ΔΩ Ν Φ Ρ Η ΢ Ι Μ Ο Π Ο Ι Ω Ν ΣΑ ΢ G O O G L E D O R K S Αναζότηςη με τα παρακϊτω: Προςθϋτουμε ’ ςτο τϋλοσ  inurl:index.php?id= του url και αν εμφανύςει error τότε η ιςτοςελύδα  inurl:index.php?catid= εύναι ευϊλωτη ςε SQLi  inurl:news.php?id= επιθϋςεισ  inurl:news.php?catid=  inurl:product.php?id=
  • 21.
    Η ΔΤΝΑΜΗ ΣΟΤ«’»  Κλεύνει την παρϊμετρο ςυμβολοςειρϊσ  Ό,τι ακολουθεύ θεωρεύται μϋροσ τησ εντολόσ SQL  Παραπλανητικϋσ προτϊςεισ Διαδικτύου περιλαμβϊνουν: • Αποφύγετε το! : Αντικαταςτόςτε το με ’’  Σα αλφαριθμητικϊ πεδύα εύναι πολύ ςυχνϊ, αλλϊ υπϊρχουν και ϊλλα εύδη πεδύων: • Αριθμητικϊ • Ημερομηνύεσ
  • 22.
    Α Ν ΑΖ Η Σ Η ΢ Η Ι ΢ ΣΟ΢ Ε Λ Ι ΔΩ Ν Ε Τ Π ΑΘ Ω Ν ΢ Ε S Q L I N J EC T I O N  Automated and heuristic web vulnerability scanner  Ανώφελο να ανιχνεύςουμε μόνο τισ αδυναμύεσ των γνωςτών εφαρμογών  Πιο ευπαθεύσ εύναι οι εφαρμογϋσ που προςαρμόζονται από τον χρόςτη
  • 23.
    SQLMAP  Open Sourcepenetration testing tool  Αυτοματοποιεύ τον εντοπιςμό και την αξιοπούηςη των ελαττωμϊτων SQLi και την ανϊληψη των εξυπηρετητών ΒΔ  Τποςτόριξη για απαρύθμηςη των χρηςτών τησ ΒΔ, «password hashes» των χρηςτών, προνόμια, τουσ ρόλουσ των χρηςτών, ΒΔ, πύνακεσ και ςτόλεσ
  • 24.
    SQLMAP Αναγνώριςη τησ μορφόστων «password hashes» και υποςτηρύζονται για να ςπϊςουν με επύθεςη λεξικού Εντοπιςμόσ των πινϊκων που περιϋχουν διαπιςτευτόρια όπου τα ονόματα αντύςτοιχων ςτηλών περιϋχουν ςυμβολοςειρϋσ όπωσ το name και pass
  • 25.
    SQLMAP - ΣΕΦΝΙΚΕ΢ Boolean-based blind SQL injection ό inferential SQL injection  Time-based blind SQL injection ό blind SQL injection  Error-based SQL injection  UNION query SQL injection ό inband SQL injection  Stacked queries SQL injection ό multiple statements SQL injection
  • 26.
    ΠΩ΢ ΑΠΟ ΥΕΤΓΟΤΜΕ SQL INJECTIONS; Αποφεύγουμε χαρακτόρεσ όπωσ: • quotes, slash, backslash, semicolon, NULL, new line, κλπ που εντοπύζονται ςε: • πεδύα από φόρμεσ ειςαγωγόσ από τουσ χρόςτεσ • παραμϋτρουσ ςτο URL • τιμϋσ από cookies
  • 27.
    ΠΩ΢ ΑΠΟ ΥΕΤΓΟΤΜΕ SQL INJECTIONS; Όλα τα νούμερα μετατρϋπονται ςε ακεραύουσ Διαγραφό των stored procedures που δεν ςασ αρϋςουν και δεν χρειϊζεςτε όπωσ: • master..Xp_cmdshell, • xp_startmail, • xp_sendmail, • sp_makewebtask
  • 28.
    ΢ΤΜΠΕΡΑ΢ΜΑΣΑ  Η SQLInjection εύναι ςυναρπαςτικό και επικύνδυνη ευπϊθεια  Όλεσ οι γλώςςεσ προγραμματιςμού και ΒΔ SQL εύναι δυνητικϊ ευϊλωτεσ  Προςταςύα από SQLi απαιτεύ: • ανθεκτικό ςχεδιαςμό • ςωςτό επικύρωςη των δεδομϋνων ειςόδου
  • 29.