Título: insertaron datos a mi base de datos Publicado por: DJmixmancar 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 Título: Re: insertaron datos a mi base de datos Publicado por: tragantras 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 Título: Re: insertaron datos a mi base de datos Publicado por: DJmixmancar 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> Título: Re: insertaron datos a mi base de datos Publicado por: WHK 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? Título: Re: insertaron datos a mi base de datos Publicado por: WHK 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
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
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 No necesitas ponerle comillas dobles, basta con dejarlo normal: Código 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 que no se utilizan, podrias borrarlas donde no las ocupes. Donde dice: Código ponle: Código para evitar el escape de información y delatar que tu script tiene inyeccion sql. También veo que dice: Código 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 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. |