Failles dans le service d'e-commerce Actinic ******************************************** Produit : ********* Actinic http://www.actinic.com http://www.actinic.co.uk/ http://www.actinic-europe.com/fr/ Versions : ********** 4.7.0 et moins. Date : ****** 05/02/02 Probleme : ********** - Cross Site Scripting - Redirection Developpement : *************** Petite remarque : Les sites utilisant actinic ont un dossier /acatalog/. La premiere faille d'Actinic se trouve dans la plupart des fichiers .pl du service. Il s'agit d'un cross site scripting hole. Voici les script vulnérables sur lesquels j'ai testé ce bug. Ils sont de la forme **000???.pl, * etant des lettres et ? etant des chiffres. J'ai été tenté de mettre que tout les scripts Actinic commençants par les lettres ci-dessous étaient vulnérables, mais je suis tombé sur la "version" 000008, qui ne l'est pas. bb|000|001|.pl ca| |002| os| |003| sh| |004| ss| |005| | |006| | |007| | |009| | |010| | |011| | |012| | |020| | |036| | |045| | |046| | |137| | |143| | |410| referrer.pl Pour démontrer la faille, je prend comme exemple le fichier ca000001.pl. Pour voir les achats que l'utilisateur a fait sur le site, il doit taper l'url http://www.host.com/cgi-bin/ca000001.pl?ACTION=SHOWCART. si on tape l'url ca000001.pl, cela donnera cette erreur : ********************************************************************************** A General Script Error Occurred -------------------------------------------------------------------------------- Error: The input is NULL -------------------------------------------------------------------------------- Press the Browser back button and try again or contact your ISP. ********************************************************************************** Idem pour ca000001.pl? . L'erreur dit que l'input est vide, ce qui veut dire qu'aucune caractéristique n'a été envoyée au script. Elle peuvent l'être par url. Ce qui est logique, puisque rien n'est écrit après le .pl ou le ? . Si on tape l'url http://www.host.com/cgi-bin/ca000001.pl?hop , voici l'erreur qui s'affichera : ********************************************************************************** A General Script Error Occurred -------------------------------------------------------------------------------- Error: Bad input string "hop". Argument count 0. -------------------------------------------------------------------------------- Press the Browser back button and try again or contact your ISP. ********************************************************************************** La faille, qui marche donc sur tout les fichiers cités plus haut, est donc : http://www.host.com/ca000001.pl? , ce qui remplacera le "hop" par un script. Au moins 3 autres failles de cross site scripting se trouvent dans le service Actinic. Une que j'ai testé uniquement sur le script ca000007.pl : /ca000007.pl?ACTION=SHOWCART&REFPAGE=">[ ANYSCRIPT ] Une autre sur ss000007.pl : /ss000007.pl?PRODREF=<--SCRIPT--> ET la derniere sur ca000001.pl. Son url de base est par exemple /ca000001.pl?ACTION=SHOWCART&PATH=acatalog%2f . Les variables ACTION et PATH ne doivent jamais changer, sauf si el PATH est different. Après nimporte quelle variable avec comme valeur : ">UNSCRIPT. Par exemple : /ca000001.pl?ACTION=SHOWCART&hop=">&PATH=acatalog%2f Enfin, la faille de redirection se trouve dans le script ss000007.pl. Si on y fait une recherche et que le resultat est nul, on arrive d'abord sur une page avec le message : ---------------------------------------------------------------------------- No matching products were found. Please wait for your browser to forward you to the next page or click here. ---------------------------------------------------------------------------- Puis on est redirigé vers une page ( la même page que celle vers laquelle pointe le lien "click here"). Cette page où être redirigé est une variable : REFPAGE. La faille sera donc : http://www.host.com/ss000007.pl?REFPAGE=http%3A%2F%2Fwere.to.go&PREVQUERY=ACTION%3DSHOWCART&SS=yiiiihaaaaa&PR=-1&TB=A&SHOP= A condition que la recherche "yiiiihaaaaa" ne donne aucun resultat :) Patch : ******* / Greetz : ******** / Credits : ********* frog-m@n (leseulfrog@hotmail.com)