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

C Discussion :

failles dans un programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    informaticienne
    Inscrit en
    Juillet 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : informaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 81
    Par défaut failles dans un programme
    bonjour à tous.je ne connais pas grand chose au C, mais je suis une formation en sécurité des SI et on nous a demandé d'identifier les failles dans 2 programmes pour pouvoir se connecter sans faire usage des mots de passe spécifiés du programme. Voici les 2 programmes :

    PROGRAMME 1

    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
    27
    28
    29
    30
    31
    32
    33
    #include <stdio.h>
     
    char user_name[20] = "                   ";
    char password[20] = "                   ";
    char users[][2][20] = 
    { { "root", "98765" },
      { "moi", "allo" },
      { "abc", "motdepasse" },
      { "", "" }
    };
     
    int check_name()
    {
      int i;
      printf("Nom: "); gets(user_name);
      printf("Mot de passe: "); gets(password);
     
      for(i=0; users[i][0][0] != 0; i++)
      {
        if(strcmp(user_name, users[i][0]) == 0 &&
           strcmp(password,  users[i][1]) == 0)
           return 1;
      }
      return 0;
    }
     
    void logon()
    {
      printf("Bienvenu sur ce systeme...\n");
      exit(1);
    }
     
    void reject()
    PROGRAMME 2
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <stdio.h>
     
    char users[][2][20] = 
    { { "root", "98765" },
      { "moi", "allo" },
      { "abc", "motdepasse" },
      { "", "" }
    };
     
    int check_name()
    {
      char user_name[20];
      char password[20];
      int i;
     
      printf("Nom: "); gets(user_name);
      printf("Mot de passe: "); gets(password);
     
      for(i=0; users[i][0][0] != 0; i++)
      {
        if(strcmp(user_name, users[i][0]) == 0 &&
           strcmp(password,  users[i][1]) == 0)
           return 1;
      }
      return 0;
    }
     
    void logon()
    {
      printf("Bienvenu sur ce systeme...\n");
      exit(1);
    }
     
    void reject()
    {
      printf("Connection fermee!\n");	
      exit(0);
    }
     
    main()
    {
      unsigned int i;
      for(i=(unsigned)-3; i && !check_name(); i++);
      if(i>=(unsigned)-3)
        logon();
      else
        reject();
    }
    MERCI BEAUCOUP POUR VOTRE AIDE

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Quels sont les types de failles possibles?

    Lesquelles sont dangereuses, lesquelles sont "seulement" des plantages?

    Comment penses-tu les chercher, et donc trouver?

    Moi, j'en vois une (paire) énorme, qu'un compilateur récent te hurle dessus sans rechigner.

  3. #3
    Membre actif
    Femme Profil pro
    informaticienne
    Inscrit en
    Juillet 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : informaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 81
    Par défaut
    Je n'en sais pas grand chose.je n'ai pas écrit ces programmes.ils nous ont été fournis avec l'intitulé de l'exercice et je suis nulle en programmation C donc!!!!
    en fait dans l'exo, on nous demande quelle séquence caractère il faut rentrer lors qu'on se connecte pour que le système nous souhaite "bienvenue sur le système". Merci

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Comment lis-tu ce code?
    Remplace chaque instruction par quelques mots, ca peut t'aider.

    Par exemple, que font les fonctions printf et gets?

Discussions similaires

  1. Réponses: 17
    Dernier message: 24/02/2012, 11h33
  2. Détection de faille mémoires dans un programme java
    Par stacre dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 09/02/2009, 12h10
  3. Réponses: 2
    Dernier message: 24/06/2003, 20h31
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52
  5. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08

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