Programación php
Email: Password:


¡Regístrate gratis! | ¿Has perdido tu password?

Home
Blog

En él que podrás informarte de todas las noticias relacionadas con el posicionamiento de páginas web.

Ir al Blog de posicionamiento web



Foro de programación en PHP

Responder el mensaje

ataque hacker en mi página

Autor: Eva
Publicado: 13-1-2012 02:34 AM
Hola,
tengo el siguiente problema, tengo un script PHP para mi página, yo no soy programadora y el script me lo pasaron unos compañeros hace tiempo. Por desgracia, en los últimos meses mi alojador tiene que bloquear la página una y otra vez, ante el ataque de hackers.
Me dicen que han encontrado secuencias de comandos malintencionadas, entre ellos, un Botnetzclient y scripts para el envío masivo de correo basura, y los archivos se han cargado por FTP o a través de una vulnerabilidad en un script,(por ejemplo, el archivo "home.php", permite incluir extranjeros scripts potencialmente peligrosos <? php include (". / páginas /".$_ GET ['gato ">."/".$_ GET [' subcat ">."."......).

He comprobado y limpiado repetidamente los archivos de mi espacio web y cambiado las contraseñas de FTP, por desgracia, no sirvió de mucho. Creo que el problema radica en el propio script, pero el acceso que el hacker parece aprovechar no sé cerrarlo correctamente.
La última vez parece que entraron a través de: "POST /home.php?cat=../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ%0000 HTTP/1.1"

Después de consultar en otro foro y hacer algunas modificaciones, de nuevo sin exito, no tengo idea de qué puedo hacer para que el script resulté seguro.

A continuación copio mi script, por si alguién tuviera una idea de lo que debo corregir:





<?php
$include = false;

if ((!isset($_GET["cat">)) || ($_GET["cat"> == "" )){
$_GET["cat"> = "news";
} else {
if ($_GET["cat"> == "abogados" || $_GET["cat"> == "avisolegal" || $_GET["cat"> == "consultas" ||
$_GET["cat"> == "direccion" || $_GET["cat"> == "formulario" || $_GET["cat"> == "home" ||
$_GET["cat"> == "servicios") {
$include = true;
} else {
$include = false;
}
}

if ((!isset($_GET["subcat">)) || ($_GET["subcat"> == "" )){
$_GET["subcat"> = "main";
} else {
if ($_GET["subcat"> == "main" || $_GET["subcat"> == "mlnc" || $_GET["subcat"> == "vyo"
|| $_GET["subcat"> == "privacidad" || $_GET["subcat"> == "config" || $_GET["subcat"> == "footer"
|| $_GET["subcat"> == "form" || $_GET["subcat"> == "header" || $_GET["subcat"> == "comollegar") {
$include = true;
} else {
$include = false;
}
}

if ((!isset($_GET["ext">)) || ($_GET["ext"> == "" )){
$_GET["ext"> = "htm";
} else {
if ($_GET["ext"> == "htm" || $_GET["ext"> == "php") {
$include = true;
} else {
$include = false;
}
}

?>
<html>
<head>
<title></title>
<META NAME="publisher" CONTENT="">
<META NAME="Copyright" CONTENT="">
<META NAME="Revisit" CONTENT="After 20 days">
<META NAME="author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<META NAME="Abstract" CONTENT="">
<META NAME="audience" CONTENT="Alle">
<META NAME="Robots" CONTENT="INDEX,FOLLOW">
<META NAME="Language" CONTENT="Español">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link rel="stylesheet" href="style/text.css" type="text/css">
<link rel="stylesheet" href="style/bar.css" type="text/css">
<script language=JavaScript src="style/fader.js" type=text/javascript></script>
<link rel="SHORTCUT ICON" href="favicon.ico">
<base target="_self">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE="JavaScript" SRC="style/AnimatedFader.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">

//Script submitted to and featured on
//http://www.dynamicdrive.com

/*
* FadingText(divName, numSteps, BGColor)
* divName : Must match the DIV names defined at the end of the BODY)
* numSteps: The number of steps in the fading transition
* BGColor : The background colour of the DIV or document.
*/
FadingText('fade1', 10,"ffffff");

/*** The "Frame Interval" Smaller = faster ***/
FadeInterval=30;

</SCRIPT>

</head>
<body topmargin="0" marginwidth="0" marginheight="0" leftmargin="0">

<table width="700" height="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" valign="top">
<tr>
<td width="10" align="left" nowrap background="images/borde_l.gif"></td>
<td valign="top" bgcolor="#FFFFFF"><table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" height="172"><div align="left"><img src="images/fotoportada.jpg" alt="foto de cabecera" width="778" height="240"></div></td>
</tr>
<tr>
<td height="1" bgcolor="#E2E2E2"></td>
</tr>
<tr>
<td valign="top"><div align="center">
<?php include("navigation.htm"); ?>
</div></td>
</tr>
<tr>
<td><?php
if ($include) {
include("./seiten/".$_GET["cat">."/".$_GET["subcat">.".".$_GET["ext">);
} ?></td>
</tr>
</table></td>
<td nowrap background="images/borde_r.gif" width="10" align="right"></td>
</tr>
</table>

</body>
</html>


¡Gracias!
Autor: Angel
Publicado: 11-2-2012 12:54 AM
No se si aun tengas problemas con esto pero te puedo comentar que el problema podria no radicar directamente en tu script si no en los permisos de los archivos por lo que te recomendaria partir de eso para que puedas evitar esto, comunmente esto ocurre en sitios creados como tipo gestores o tiendas virtuales, te recomendaria checaras tus permisos, en alguna ocasion tuve estos problemas con un sitio creado con oscommerce y bueno con un correcto manejo de permisos se soluciono el problema, sin mas por el momento quedo a tus ordenes