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 :

attaque par dictionnaire


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut attaque par dictionnaire
    bonjour je ne rentre pas dans le print (password, response.txt)
    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
    23
    24
    25
    26
     
    # -*- coding: utf-8 -*-
    """
    Created on Wed Feb 16 15:42:46 2022
     
    @author: User
    """
     
    import requests
     
    url ="https://www.example.com"
    loginpage = requests.get(url)
    org =  len(loginpage.text)
    print(org)
    #with open ('login.txt','r') as l:
    with open ('pass.txt','r') as f:
            #for login in l.readline():
            for word in f.readline():
                password = word.replace("\n","")
     
     
                data = {'j_username':login  ,'j_password': password}
                response = requests.post(url, data = data)
                print(response.text)
                if org != len(response.text):
                    print(password,len(response.text))
    le site que je teste est une page de login password

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    requests.post n'est pas bloquant (il peut prendre un certain temps).
    Donc si ça n'arrive pas à exécuter la ligne 24, il faut s'assurer qu'on entre dans la boucle... sinon peut être que le fichier est vide.

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

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par s2a07 Voir le message
    bonjour je ne rentre pas dans le print (password, response.txt) data = {'j_username':login ,'j_password': password}
    Elle est remplie où la variable "login" ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    je l'ai rempli en dur la variable login et la variable password je ne rentre pas dans le print response.txt
    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
    23
    24
    25
    # -*- coding: utf-8 -*-
    """
    Created on Wed Feb 16 15:42:46 2022
     
    @author: User
    """
     
    import requests
     
    url ="https://www.example.com"
    loginpage = requests.get(url)
    org =  len(loginpage.text)
    print(org)
    #with open ('login.txt','r') as l:
    with open ('pass.txt','r') as f:
            #for login in l.readline():
            for word in f.readline():
                password = word.replace("\n","")
     
     
                data = {'j_username':'toto','j_password': 'toto'}
                response = requests.post(url, data = data)
                print(response.text)
                if org != len(response.text):
                    print(password,len(response.text))
    pouvez vous choisir un site que l'on test en commun pour voir pourquoi le
    print(password,len(response.text)) ne fonctionne pas

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 221
    Par défaut
    hello,
    attention les sites se protègent contre les attaques par "Brute Force" (dictionnaire). Déjà il faut avoir un entête qui laisse penser que c'est un navigateur qui fait la requête. Ensuite il faut mettre une temporisation entre chaque essai. Et il doit y avoir d'autres protections (nb max d'essais par IP par exemple ).
    Ami calmant, J.P

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Elle est remplie où la variable "login" ???
    Si on atteignait cette instruction, il y aurait un message d'erreur.

    Citation Envoyé par s2a07 Voir le message
    pouvez vous choisir un site que l'on test en commun pour voir pourquoi le
    print(password,len(response.text)) ne fonctionne pas
    La fonction print fonctionne sinon ça se saurait.
    Après si votre code ne fonctionne pas, à vous de le mettre au point en vous posant des questions sur ce qui ne marche pas (que vous pourrez poster ici)...
    Ouvrir un fichier pour le lire ligne à ligne dans une boucle qui applique une fonction à chaque ligne est le b.a.ba qu'on doit avoir appris (dans un tuto) avant de se lancer à coder.

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

  7. #7
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    ce que je ne comprends pas c'est qu'il n'y a pas eu de modification de la page il n'y a pas eu d'authentification
    je suis bloque

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    je suis bloque
    Ok. Ben commence déjà par identifier où ça bloque. Par exemple à la ligne 19 je mettrais un print(password) histoire de voir si le souci se situe sur le site (le print s'affichera) ou dans le fichier (le print ne s'affichera pas). A ce propos la remarque de jurassic pork est pleine de bon sens.

    Et accessoirement je remplacerais for word in f.readline() par for word in f.

    Citation Envoyé par s2a07 Voir le message
    pouvez vous choisir un site que l'on test en commun
    Parce qu'en plus tu n'as même pas le site de test ??? Tu peux tenter https://webmail.free.fr. Toutefois tenter de rentrer dans un site de cette façon c'est illégal (http://club.developpez.com/regles/#LIV-B) donc tes essais tu les feras seul. Pas envie de voir mon IP enregistrée là-bas associée à une tentative de brute force (la loi française impose aux sites web de conserver les logs pendant 1 an minimum).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    ce que je ne comprends pas c'est qu'il n'y a pas eu de modification de la page il n'y a pas eu d'authentification
    Ce que vous ne comprenez pas c'est que lorsqu'un code ne fait pas ce qu'on veut on vérifie que chaque étape se fait tel qu'attendu. Et ici les premières choses à vérifier sont: est-ce qu'on entre dans la boucle et si oui, est-ce avec les données attendues.

    Après si vous avez des soucis avec l'instruction requests.post(url, data = data), lancez l'interpréteur Python et regardez ce qu'il se passe lorsqu'on y entre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import requests
    >>> url = ...
    >>> data = {...}
    >>> requests.post(url, data=data)
    avant de vouloir inclure cela dans un code.

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

  10. #10
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    je ne veux pas faire du brute force mais me connecter avec requests en python avec mon login et mon mot de passe

Discussions similaires

  1. Attaquer un dictionnaire par les 2 bouts
    Par sopsag dans le forum Général Python
    Réponses: 13
    Dernier message: 20/01/2010, 19h57
  2. attaque par Magistr B
    Par warubi dans le forum Sécurité
    Réponses: 9
    Dernier message: 07/01/2007, 19h19
  3. Réponses: 9
    Dernier message: 02/01/2007, 12h03
  4. attaqué par le visrus securityshooting /rapport hijackthis
    Par ghita269 dans le forum Sécurité
    Réponses: 4
    Dernier message: 29/10/2006, 19h23
  5. [oracle 8i]Tablespace gestion par dictionnaire ou local
    Par ParisMath dans le forum Oracle
    Réponses: 1
    Dernier message: 10/08/2006, 10h41

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