insertaron datos a mi base de datos

Iniciado por DJmixmancar, 25 Febrero 2010, 00:11 AM

0 Miembros y 1 Visitante están viendo este tema.

DJmixmancar

hola, a todos bueno , despues de saludar, vengo aqui a solucionar mi problemas

hacer 1 hora, a cabo de ver que mi web, fue hackeada  :-[ , estoy qye llervo de colera  >:( >:(  .

pero fue a index, no avia nada rado,

pero mi pagina web esta echar el full php,  todo esta en consultas, lo que an echo es ir de rapido a mi base de datos,
encotre esto codigos

Citarque fueron transferidos de  Petroperú a empresas privadas y cuyos contratos están por caducar; así  como exigir a Perupetro S. A. que obligue a las empresas que operan en  la selva como Pluspetrol, Perenco para que desarrollen los programas de  producción comprometidos y de esta manera permitir operar el Oleoducto  Nor Peruano en su real capacidad de transporte.</p>\r\n</div>\r\n', 'Mixzoner', 'Miércoles 24 de Febrero de 2010', 'www.elregionalpiura.com.pe'),
(266, '''<script>location="http://h1.ripway.com/DrBacKtracK/DrBACKtracK1.htm"</script>;--''', '''<script>location="http://h1.ripway.com/DrBacKtracK/DrBACKtracK1.htm"</script>;--''', NULL, NULL, NULL)


Citar'''<script>location="http://h1.ripway.com/DrBacKtracK/DrBACKtracK1.htm"</script>;--''', 'Aries', '''<script>location="http://h1.ripway.com/DrBacKtracK/DrBACKtracK1.htm"</script>;--''', '''<script>location="http://h1.ripway.com/DrBacKtracK/DrBACKtracK1.htm"</script>;--'''),

Citarla base de datos para la tabla `categoriawarez`
--

INSERT INTO `categoriawarez` (`id`, `categoria`) VALUES
(1, '''<script>location="http://h1.ripway.com/DrBacKtrac')


bueno me supongo que hacer un redirecionamiento de mi pagina asu pagina,

para mi que echo algo de inyesion bueno esolo unico que seque ocurre

mi codigo de ejemplo son asi

video.php?id=19
noticia.php?id=265
catwarez.php?ta=JuegosPC
catwarez.php?ta=JuegosPortables
horoscopo.php?sig=aries

no se como miercoles al entrado, a insetar datos, pero si los restablesco, va hacer lo mismo, la pregunta como parcho esta guebada. algien me puede ayudar

tragantras

Bueno después de este repertorio de palabras "raras" que has soltado vamos al tema xD:

catwarez.php?ta=JuegosPortables

me da por pensar que puede haber LFI ( local file inclusion ), usabas la variable recibida por get para indicar la pagina a la que se entraba?


o bueno... el tipico sqli que tu mismo mencionaste antes
Colaboraciones:
1 2

DJmixmancar

#2
amigo gracias por responder , pero puedes ser mas claro, es no se mucho, solo me php y consultas basica con msql,  puedr darme mas ideas para solucionar, para parchar las burradas que echo,!!

aqui una muestra de mi codigo
Citar<!--  <td width="577" height="39" background="mages/noticias_23.jpg"> --><?

      

      

       $con=mysql_connect("$host","$usuario","$passbase");

mysql_select_db($database,$con);



$pg = $_GET['pg'];if ($pg == "")$pg = 0; // $pg es la pagina actual

$cantidad=5; // cantidad de resultados por página

$inicial = $pg * $cantidad;

  $page = @$_GET["page"];

$pegar = "SELECT * FROM noticias ORDER BY id DESC LIMIT $inicial,$cantidad ";

$cad = mysql_db_query($database,$pegar) or die (mysql_error()); 

$contar = "SELECT * FROM noticias";

$contarok= mysql_db_query($database,$contar);

$total_records = mysql_num_rows($contarok);

$pages = intval($total_records / $cantidad);

      

      

      

      

         //$sql = "SELECT * FROM noticias limit 10";

   

            //$resultado= mysql_query($sql);   

          while ($fila = mysql_fetch_row($cad))

       

      

             {

            ?><!--</td> -->

      </tr>

      <tr>

        <td  width="577" height="66"  background="template/template_noticias_2.jpg" style="color: #000"><table width="100%" border="0" cellspacing="0" cellpadding="0">

  <tr>

    <td bgcolor="#000000"><div  align="center" style="color: #fff;font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold">

   

   

   <? echo "<a href=\"noticia.php?id=$fila[0]\">";

   echo"$fila[1]";?></div ></td>

  </tr>

</table>

<div style="margin-right:25px; margin-left:25px; text-align:justify; font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#CCC" >









<?php

$cadena="$fila[2]";



$cadena_cambiada = str_replace("250","132",$cadena);





$cadena22="$cadena_cambiada";

$cadena_cambiada22 = str_replace("188","80",$cadena22);



$Texto2="$cadena_cambiada22";

if (strlen($Texto) > 458){

echo ucwords(strtolower(substr($Texto2,0,455))).'... <br>';

}else{

echo ucwords(strtolower(substr($Texto2,0,458)))."....<br>";

}

?></div>

<div style="margin-right:25px; margin-left:25px; text-align:justify; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold"><?

   echo"$fila[4]";?></div></td>

      </tr>

      <tr>

        <td><img src="template/template_noticias_1.jpg" width="577" height="9" /><table width="577" border="0" cellpadding="0" cellspacing="0">

      <tr>

        <td width="577"><img src="template/ok_43.jpg" width="577" height="13" /></td>

      </tr>

    </table>

          <?

         }

         ?></td>

      </tr>

WHK

no, ahi no está el problema, debe estar en otra pagina.
puedes enviarme un zip por privado con esos archivos php para poder darles un vistazo?

WHK

Bueno, tu sitio web tiene inyección sql en tres partes:
noticia.php linea 163
video.php linea 143
warezok.php linea 85

Salen lineas como esta:
Código (php) [Seleccionar]
$sql = "SELECT * FROM youtube WHERE id=$_GET[id]";

Ahora, que pasa si en id le pongo esto?
noticia.php?id=concat(chr(x), chr(x) ....)

quedaría una query masomenos así:
SELECT * FROM youtube WHERE id=concat(chr(x) ...)

Sería una inyección sql sin la necesidad de utilizar comillas (viendo que tu web impode la utilizacion de comillas en las peticiones get).

CitarWarning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/xxx/public_html/noticia.php on line 7

Por lo tanto si vas a procesar variables numéricas te recomiendo que las pases a integer:
Código (php) [Seleccionar]
$sql = "SELECT * FROM youtube WHERE id=".(int)$_GET[id];

Hay otras variables que también son numéricas pero hacen una multiplicación por el número de paǵinas y en ese caso si le pasas una letra dará un resultado cero asi que no hay inyección en ese caso.

Puedes dar un vistazo a este post:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Solo cambia esos tres archivos poniendole (int) fuera de las comillas y listo.

Hay un par de errores de programación también pero no afectan la seguridad, por ejemplo:
Código (php) [Seleccionar]
$con=mysql_connect("$host","$usuario","$passbase");
No necesitas ponerle comillas dobles, basta con dejarlo normal:
Código (php) [Seleccionar]
$con=mysql_connect($host,$usuario,$passbase);

Además desde php ya no se podrán utilizar las variables dentro de comillas como lo haces tu.

También trata de reemplazar <? por <?php ya que <? es una forma abreviada de la forma correcta que es <?php y no todos los servidores lo soportan y puede que en algun momento ese soporte te lo quiten, quien sabe, mejor es prevenir.

Hay variables como
Código (php) [Seleccionar]
$page = @$_GET["page"]
que no se utilizan, podrias borrarlas donde no las ocupes.

Donde dice:
Código (php) [Seleccionar]
$cad = mysql_db_query($database,$pegar) or die (mysql_error());

ponle:
Código (php) [Seleccionar]
$cad = mysql_db_query($database,$pegar) or exit;
para evitar el escape de información y delatar que tu script tiene inyeccion sql.

También veo que dice:
Código (php) [Seleccionar]
$contar = "SELECT * FROM warez WHERE categoria='$ta'";
pero la varible $ta no la veo definida en ningún lado, ahora si es un string puedes utilizar un filtro de php:
Código (php) [Seleccionar]
$contar = "SELECT * FROM warez WHERE categoria='".mysql_real_escape_string($ta)."'";

porque si no lo haces también tendrás problemas de inyección sql.

En fin, si es string o integer debes saber que no puedes darle directamente los valores a una query, en ambos casos debes aplicarle la función mysql_real_escape_string o si no (int) según sea el caso y en el enlace que te di mas arriba se explica con mas detalle:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Saludos.