Recopilación Seguridad en tu Web - SkillmaX

Iniciado por SkillmaX, 11 Junio 2010, 19:32 PM

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

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:
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:
SELECT loquesea FROM


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 -> &lt;holat&gt

Para eso utilizaremos el siguiente codigo


Código:
<?php
$Seguridad = htmlspatis($_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:
<?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:
<?

?>



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.



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:
  1.
     if(function_exists('add_action')) {
  2.
     [...]
  3.
     }









Algunas partes han sido cogidas de google.


Un saludo, skillmax
"Si yo tuviera 6 horas para cortar un árbol, me pasaría las primeras cuatro afilando mi hacha".

Nakp

Ojo por ojo, y el mundo acabará ciego.