elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  insertaron datos a mi base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: insertaron datos a mi base de datos  (Leído 3,062 veces)
DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
insertaron datos a mi base de datos
« en: 25 Febrero 2010, 00:11 am »

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

Citar
que 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>;--'''),

Citar
la 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
En línea

tragantras


Desconectado Desconectado

Mensajes: 465


Ver Perfil
Re: insertaron datos a mi base de datos
« Respuesta #1 en: 25 Febrero 2010, 00:18 am »

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
En línea

Colaboraciones:
1 2
DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: insertaron datos a mi base de datos
« Respuesta #2 en: 25 Febrero 2010, 00:30 am »

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>
« Última modificación: 25 Febrero 2010, 00:35 am por DJmixmancar » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: insertaron datos a mi base de datos
« Respuesta #3 en: 25 Febrero 2010, 00:53 am »

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?
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: insertaron datos a mi base de datos
« Respuesta #4 en: 25 Febrero 2010, 21:05 pm »

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
  1. $sql = "SELECT * FROM youtube WHERE id=$_GET[id]";

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

quedaría una query masomenos así:
Código:
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).

Citar
Warning: 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
  1. $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
  1. $con=mysql_connect("$host","$usuario","$passbase");
No necesitas ponerle comillas dobles, basta con dejarlo normal:
Código
  1. $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
  1. $page = @$_GET["page"]
que no se utilizan, podrias borrarlas donde no las ocupes.

Donde dice:
Código
  1. $cad = mysql_db_query($database,$pegar) or die (mysql_error());

ponle:
Código
  1. $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
  1. $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
  1. $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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines