SQL Injection scanner (beta)

Stato
Discussione chiusa ad ulteriori risposte.

uomosteriman

Utente Silver
8 Settembre 2007
14
0
0
62
Codice:
#importazione librerie
import httplib, urllib
import sys
import time
print "SQL Injection Scanner"
#impostazioni sito e link da controllare
sito = sys.argv[1]
#### hack = "   fa una prova per sql injection posizionando le virgolette alla fine del link
hack = "'"
####
link = sys.argv[2]
#autenticazione
recv = link+hack
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
print ">Connessione in corso. . . "
time.sleep(1)
conn = httplib.HTTPConnection(sito)
print ">>>Connesso"
#controllo vulnerabilità
def controllo():
   info = "\n%s ->Vulnerabile in una MySQL Injection" % (sito+link) 

   err = "\n%s ->Non vulnerabile" % (sito+link)
   time.sleep(1)
#se il sito era www.sito.it/ciao.php?a=1 viene testato con www.sito.it/ciao.php?a=1" ,se è vulnerabile da l'errore altrimenti non lo da.e gli errori che da sono questi nel data.find()
   if data.find("Microsoft JET Database") != -1:

      print info, ": Microsoft JET Database\n"
      exit()

   if data.find("Division by zero in") != -1:

      print info, ": Division by zero\n"
      exit()
   if data.find("Warning") != -1:
      print info, ": Warning\n"
      exit()
   if data.find("ODBC Microsoft Access Driver") != -1:

      print info, ":ODBC Microsoft Access Driver\n"
      exit()
   if data.find("Microsoft OLE DB Provider") != -1:
      print info, ":Microsoft OLE DB Provider\n"
      exit()
   if data.find("Error Executing Database Query") != -1:
      print info, ":Error Executing Database Query\n"
      exit()

   else:

      print err
conn.request("POST", recv, "we", headers)
response = conn.getresponse()
data = response.read()
controllo()
conn.close()
print "<<<Disconnessione in corso. . ."
time.sleep(1)

print "<<<Disconnesso"

questo dovrebbe vedere se un sito è vulnerabile a sql injection.
"Usage: python nomefile.py http://sito.com /link/da/controllare.php?id=33"
non funziona con tutti non capisco il perchè.
 
...caino come esercizio...potresti aggiungerli anche uno scanner xss ;)

if data.find("<script>alert(1)</script>") != -1:
[lol]
 
Stato
Discussione chiusa ad ulteriori risposte.