IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Impossible de tester une wordlist dans une boucle FOR


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Impossible de tester une wordlist dans une boucle FOR
    Bonjour,

    Je n'arrive pas à tester les mots de passe d'un dictionnaire à travers une boucle FOR.
    Je voulais savoir quelle était mon erreur de code ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    import gnupg
     
    wordlist = "zero.txt"
    fin = open(wordlist)
     
    gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
     
    with open('flag.txt.gpg', 'rb') as f:
            for word in fin:
                    #real passphrase is "Z3r0K00l"
                    print('test passwrd ',word)
                    status = gpg.decrypt_file(f, passphrase=word, output='my-decrypted.txt')
                    print(status.ok)
     
    f.close()
    fin.close()
    Voici le résultat dans le terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    root@kali:~/ctf/script/gpg_decrypt# more zero.txt 
    test
    Z3r0K00l
    root@kali:~/ctf/script/gpg_decrypt# python3 gpg_decrypt.py 
    test passwrd  test
     
    False
    test passwrd  Z3r0K00l
     
    False
    Si je teste le mot de passe dans une variable, ça passe bien !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    import gnupg
     
     
    password='Z3r0K00l'
     
    gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
     
    with open('flag.txt.gpg', 'rb') as f:
                    #real passphrase is "password"
                    print('test passwrd ',password)
                    status = gpg.decrypt_file(f, passphrase=password, output='my-decrypted.txt')
                    print(status.ok)
     
    f.close()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    root@kali:~/ctf/script/gpg_decrypt# python3 gpg_decrypt.py 
    test passwrd  Z3r0K00l
    True
    Du coup c'est un problème dans ma boucle for ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par raydonovan Voir le message
    Du coup c'est un problème dans ma boucle for ?
    Ca sert à quoi de faire des mauvais "print"? i.e. des print qui vous signalent qu'il y a un problème vous ne le voyez pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print('test passwrd /%s/' % password)
    Et revoyez les méthodes associées aux chaînes de caractères.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 143
    Points
    143
    Par défaut
    Bonjour.

    Lorsque tu fais chaque ligne contient un "\n" à la fin.
    Pour le supprimer tu peux faire par exemple


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import gnupg
     
    wordlist = "zero.txt"
    fin = open(wordlist)
     
    gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
     
    with open('flag.txt.gpg', 'rb') as f:
            for word in fin:
                    #real passphrase is "Z3r0K00l"
                    word = word.rstrip("\n")
                    print('test passwrd ',word)
                    status = gpg.decrypt_file(f, passphrase=word, output='my-decrypted.txt')
                    print(status.ok)
     
    f.close()
    fin.close()

  4. #4
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Ca sert à quoi de faire des mauvais "print"? i.e. des print qui vous signalent qu'il y a un problème vous ne le voyez pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print('test passwrd /%s/' % password)
    Et revoyez les méthodes associées aux chaînes de caractères.

    - W
    Euh je vois pas ce que tu veux dire par "mauvais print", les deux print que je fais me semble pertinent ils m'indiquent pour quel pwd, le fichier est déchiffré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print('test passwrd ',word)
    print(status.ok)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Biribibi Voir le message
    Bonjour.

    Lorsque tu fais chaque ligne contient un "\n" à la fin.
    Pour le supprimer tu peux faire par exemple


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import gnupg
     
    wordlist = "zero.txt"
    fin = open(wordlist)
     
    gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
     
    with open('flag.txt.gpg', 'rb') as f:
            for word in fin:
                    #real passphrase is "Z3r0K00l"
                    word = word.rstrip("\n")
                    print('test passwrd ',word)
                    status = gpg.decrypt_file(f, passphrase=word, output='my-decrypted.txt')
                    print(status.ok)
     
    f.close()
    fin.close()
    Effectivement tu avais raison !
    MAis le problème c'est que le prg marche bien que si la clé est à la première position de mon dictionnaire !
    Je pense qu'il faudrais que l'inclus dans ma boucle que pour chaque teste d'un mot de passe, on ouvre le fichier on teste la clé puis on ferme le fichier non ?

    EDIT: voici le bon code du coup,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    import gnupg
     
     
    password='Z3r0K00l'
     
    wordlist = "zeropass1.txt"
    fin = open(wordlist)
     
    gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
     
    for word in fin:
            with open('flag.txt.gpg', 'rb') as f:
                    #real passphrase is "password"
                    word = word.rstrip("\n")
                    #print('test passwrd ',word)
                    status = gpg.decrypt_file(f, passphrase=word, output='my-decrypted.txt')
                    if status.ok:
                            print('LA CLÉ DE DÉCHIFFRMENT EST ',word)
            f.close()
     
    fin.close()
    Le rendu terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    # python3 gpg_decrypt.py 
    LA CLÉ DE DÉCHIFFRMENT EST  Z3RocOO|
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3RocOO|
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3RocOO|
    LA CLÉ DE DÉCHIFFRMENT EST  Z3RocOO|
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    LA CLÉ DE DÉCHIFFRMENT EST  Z3r0K00l
    Sachant que c'est un chiffrement symétrique, il n'y donc qu'une seule clé possible, Z3r0K00l ici
    Je ne sais pas pq un faux positif apparait "Z3RocOO|" mais sur les 120 000 entrées testées, on peut dire que ça va

    Merci encore, bon we

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo