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

Langage PHP Discussion :

[Système] Utiliser system() ou exec() avec sudo


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut [Système] Utiliser system() ou exec() avec sudo
    Bonjours à tous,
    J'ai un petit soucis je n'arrive pas à utiliser le sudo avec la fonction system() ni exec()
    la commande est bien comprise, et la réponse du serveur est normale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [sudo] password for www-data:
    le problème c'est que je ne peux pas lui répondre, il faudrait un moyen de tout spécifier en une ligne.

    Si quelqu'un as déjà réussis à régler ce problème, j'accepterais son aide avec plaisir
    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    google: sudo without password

    => http://forums.macosxhints.com/showthread.php?t=42593

    if you want sudo without prompt password,


    edit /etc/sudoers

    and add:

    username ALL=(ALL) NOPASSWD: ALL


    save and that's it.

    the username is the user you want to give doing sudo without password.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Merci
    mais je cherche un moyen de se connecter en sudo, pas à créer un faille de sécurité qui permettrai à n'importe quel gus d'avoir les drois root en cas d'une faille php du site web;
    Autre cas de figure qui ne colle pas: s'il y a plusieurs admin qui ont accès au shell, ils aurons tous le root sur le serveur;
    Donc comme je le disais je cherche un moyen de se connecter en une ligne, pas un moyen de contourner le mot de passe
    Merci quand même =)

    D'autre propositions ?
    J'ai trouver PHPShell qui ressemble pas mal à ce que j'ai fais, mais ils en sont exactement au même point que moi à ce niveau, donc ça m'a pas vraiment aider :S

  4. #4
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    Bah avant de parler sans savoir, renseigne toi plus sur sudo, tu peux préciser la commande que ton user peux exécuter sans entrer sont mot de passe .

    Dans tous les cas si tu exécute une commande root, ça fait une faille... donc à toi d'analyser ce qui va être exécuter avant de le faire.

    Si t'attendais une réponse toute faite, faudra encore attendre peut être



    KDO : "username" = www-data dans ton cas, donc tous tes users auront pas le sudo....

    KDO2 : http://www.gentoo.org/doc/fr/sudo-guide.xml

  5. #5
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Je cherchais simplement une utilisation de sudo du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sudo -s -u USERNAME -p PASSWORD
    sudo -s || echo PASSWORD
    etc...
    Mais bon ça aurais été trop facile
    Rien sur notre ami google à ce sujet;
    Je ne cherchais donc pas une réponse ou un fichier "Prefab", mais simplement une ligne de code particulière (mais apparemment inexistante, snif)
    "username" = www-data dans ton cas, donc tous tes users auront pas le sudo....
    heuu...Bon je me trompe peut être, et mon raisonnement peut être faut, mais c'est valable dans mon cas, certes, mais également dans le cas de tout les utilisateurs du site web qui auraient accès au shell.

    Replaçons le contexte: le scritp du shell est incorporé dans un CMS que j'ai fais solo/maison (aucune base), il y a donc surement des failles qui m'ont échappées (même si j'aimerai le contraire, il faut être réaliste: 8mo de code sans faille c'est dans l'imaginaire ^^(surtout en solo, je parle pas de l'opensource ))
    Donc Exemple: je suis un méchant hacker, et je trouve une faille de script , j'arrive sur le shell et je tape "whoami"... réponse ... ? "www-data"
    Donc si /etc/sudoers défini "www-data" comme pouvant exécuter certaines commandes avec des droits sudo sans mot de passe... je vous laisse imaginer la cata...

    Enfin Bon ^^
    Je vais tout de même aller visiter les liens, voir si je trouve un moyen d'arriver à mes fins, mais toutes les docs que j'ai lues à propos de sudo/sudoers ne m'ont pas aider un poil (et oui je recherche sur Google Avant de poster )
    d'où ma question, mais qui restera apparemment sans réponse existante ^^

  6. #6
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    hum...
    t'as pas l'air de comprendre que faire un "sudo -u username -p password ma_commande" ou dire à ta conf sudo que ton user peux utiliser tel commande ça revients au même....

    ( et à l'époque ou j'ai voulu faire comme toi j'ai trouvé que la méthode de conf /etc/sudoers )

    Et si tu veux pas donner le droit à www-data sur la commande précise, tu la donne à un autre user, tu le config dans /etc/sudoers et tu fais un sudo -u username_que_ta_definis_comme_ayant_pas_besoin_de_mot_de_passe_pour_la_commande_precise


    Donc Exemple: je suis un méchant hacker, et je trouve une faille de script , j'arrive sur le shell et je tape "whoami"... réponse ... ? "www-data"
    Donc si /etc/sudoers défini "www-data" comme pouvant exécuter certaines commandes avec des droits sudo sans mot de passe... je vous laisse imaginer la cata...
    Idem si il arrive à injecter la commande qu'il veux dans ton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sudo -s -u USERNAME -p PASSWORD
    ou autre que tu voulais faire ....

  7. #7
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Bah y'a juste le fait qu'il n'y ai pas le mot de passe serveur à entrer qui me gène, un nom d'utilisateur est plus simple à retrouver (pas de gestion de min/MAJ, le username peut se trouver dans tel ou tel fichier log accessible malgrès moi...);
    Mais je crois que je vais effectivement me rabattre sur cette solution.
    enfin... c'est ça ou rien quoi ^^

    Allé, Résolu ^^
    Merci encore

    (Au passage: buté comme je suis je vais quand même allé sur les sites de suggestion de nux, pour proposer le sudo -p PASSWORD ^^)

    Idem si il arrive à injecter la commande qu'il veux dans ton :
    Code :

    sudo -s -u USERNAME -p PASSWORD
    Vui, mais suffis de mettre un input name='password' et limite de l'enregistrer en variable de session pour pas a avoir a le retaper; je comptais pas entrer le MDP du serveur en claire dans le code ^^

  8. #8
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    bah de toute façon quand tu va exectuer ta commande tu va fournir le mot de passe, à toi de vérifier avant la commande qui va être exécuté et si tu l'autorise...

    bon courage en tout cas

  9. #9
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Ah j'ai trouver une solution, même si j'arrive pas encore à la faire fonctionner , y'a de l'avancement:
    j'étais vraiment pas loin, la commande qui fonctionne est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "PASSWORD" | sudo ....
    le problème c'est que www-data n'a pas de password, donc j'essaye de faire un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo -u MonUser /etc/init.d/apache2 restart
    Me disans que le serveur me demanderai le mot de passe de MonUser, mais non:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [sudo] password for www-data:
    Wtf ?

Discussions similaires

  1. [Système] Utilisation gnuplot avec php
    Par jejerome dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2013, 15h39
  2. Réponses: 1
    Dernier message: 29/02/2008, 14h18
  3. [Système] fonction exec() avec Java
    Par alexK73 dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2007, 17h21
  4. [Système] Utiliser exec() avec kill
    Par lepec dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2007, 18h53
  5. [Système] Utilisation de la fonction system
    Par ouss dans le forum Langage
    Réponses: 6
    Dernier message: 30/10/2006, 14h16

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