Página 1 de 3

Solucionar todas las Inyecciones en tu web [Programadores]

Publicado: 30 May 2010, 13:35
por Skillmax
Post para todos los programadores webs, para la protección de su web a todas las inyecciones.





Evitar ataque SQL Injection:


Este error es el más común, es uno de los mas basicos pero unos de los mas
utilizados, yo he encontrado hasta webs del gobierno con este simple fallo.

El fallo es sencillisimo:

Código: Seleccionar todo

SELECT * FROM

El fallo de este codigo es el "*" que por ese pego alguien puede aplastar tu web.


La solución sería cambiarlo por:

Código: Seleccionar todo

$id = (int)$_GET['id'];
$query = mysql_query( "SELECT * FROM noticias WHERE id = '$id'");
Si quitamos la * y lo sustimos por un nombre mas concreto el bug quedaría corregido.







Evitar ataque HTML Injection:





Los ataques HTML injection se producen en la parte en el que el user tiene que escribir
(Buscadores, Formularios, Libros de visita). El fallo más común en los libros de visitas
(Un ejemplo) es "<h1>" cual esa es la principal pista de si tu web es vulnerable.
Un ejemplo sería "<h1> hola </h1>" que si es vulnerable al aceptar saldria las letras
mas grandes.

Para fixear este bug haremos lo siguiente:

Lo primero que haremos es coger cualquier cadena y transformarla o "encriptarla"
en entidades html

Por ejemplo: <h1> hola </h1> que quedaría asín -> <holat&gt

Para eso utilizaremos el siguiente codigo

Código: Seleccionar todo

<?php
$Seguridad = htmlestities($_REQUEST['Elcomentarioquesea']);
echo $Seguridad;
?>
Asin no se mostrarían las letras más grandes ya que quedan transformadas
en unas entidades html.




Evitar ataque LFI:




Local File Inclusion significa la inclusión de los archivos internos de una web, los archivos
vulnerables.

Código: Seleccionar todo

<?php
$_GET['proteccion'] = str_replace(array('.','/','\\'),'',$_GET['proteccion']);
?>

Lo que hariamos hacer seria usar la funcion de php "str_replace" para eliminar los codigos utiles.


"str_replace" sirve para filtrar lo que necesiten para evitar lo que quieran borrar.





Evitar ataque RFI:





El RFI como lo indica la sigla, es un error de programacion en una web que nos permite ejecutar un archivo que tengamos subido a una web (atacante) en otra web (victima) . Cosa que en webs no vulnerables esto no tendria porque darse.

Lo que se busca para ver si una web es vulnerables es una variable en la web que lo sea, luego de esa variante se colocaria el codigo malicioso (nuestra shell)


Para prevenir este tipo de ataques, es posible utilizar o bien el indicador "./" para advertir que el archivo debe encontrarse en el directorio actual u otro indicador tal como "includes/". Ejemplo:

Código: Seleccionar todo

$archivo = str_replace(".","",str_replace("http","",$_GET['archivo']));
if(!file_exists($archivo))
{
       die("El archivo no existe");
}
include("./".$archivo.".php");

De esta forma no podría utilizar la variable page para RFI.






Evitar ataque DDos:



Un ataque DDos es un ataque que manda muchas peticiones al servidor
web hasta que acaba cayendose.


Para solucionar este problema podemos poner un ANTI-DOS o un captcha.
El captcha es una imagen con un texto aleatorio que sirve para identificarse, podeis verlo
y descargarlo del post que puse hace un tiempo de aqui:


http://indetectables.net/foro/viewtopic.php?p=136286




Evitar ataque Full Path Discloure:




Explotar esta vulnerabilidad no significa que podamos hacer grandes cosas, simplemente nos entregará información que podría ser utilizada para lo que uno estime conveniente.



Para corregirlo simplemente debemos agregar, a cada llamada de la función, la siguiente validación:


Código: Seleccionar todo

 <?php

error_reporting(O);





Agradecimientos: Pony


Algunas partes han sido cogidas de google.


Un saludo, skillmax

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 13:38
por |||L1v3H|||
Gracias Por la info SkillMax ....Me servira no solo a mi, a todos
Salu2......

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 13:38
por p0is0n-123
Me gusta lo pongo como Fijo y me van poniendo mas cosas....

Salu2

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 13:39
por yeikel
Me parece muy interesante este articulo , lo guardo en mis favoritos


Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 13:42
por kloud
Esta bastante bn para saber como proteer la web^^ hahaha

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 14:04
por Skillmax
Gracias a los 4, y ahora iré añadiendo mas vulnerabilidades, acabo de añadir
la de Full Path Discloure.


Un saludo!

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 16:35
por blackmaster1212
Gracias hermano, este tema cada vez toma mas fuerza en el foro, muy interezante y bien explicado.... continua asi, que hasta me esta despertando curiocidad este tema y se nota que lo dominas bien

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 17:01
por Skillmax
blackmaster1212 escribió:Gracias hermano, este tema cada vez toma mas fuerza en el foro, muy interezante y bien explicado.... continua asi, que hasta me esta despertando curiocidad este tema y se nota que lo dominas bien

Gracias amigo... cualquier duda ya sabes

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 17:40
por NeeD
Wow brot de verdad no se mucho sobre web pero se ve muy interesante de verdad me gusta la informacion Felicitaciones Amigo se ve el nivel que tienes en esto

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 18:30
por $DoC
que gran trabajo Skillmax! post fijo y todo! gracias amigo!

SALUDOS!!

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 18:41
por Santaman
añade remote code execution, arbitrary file upload, y quedaria bien

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 18:53
por Skillmax
Santaman escribió:añade remote code execution, arbitrary file upload, y quedaria bien

Sí, no quedaría mal asin también, gracias

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 20:08
por DnKA
Muy bueno este post, los hilos basados en como evitar ... son lo que realmente importan, jejeje te felicito skillmax

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 30 May 2010, 21:09
por Skillmax
DnKA escribió:Muy bueno este post, los hilos basados en como evitar ... son lo que realmente importan, jejeje te felicito skillmax

Gracias amigo

Re: Solucionar todas las Inyecciones en tu web [Programadore

Publicado: 31 May 2010, 17:42
por DARK_J4V13R
Muy buen tema Skillmax, muy interesante y es de gran ayuda

Saludos