martes, 2 de octubre de 2012

XSS - Seguridad Web

Bienvenido Soy Mr_Boguey  Hoy les enseñare algo de seguridad en lo que es
XSS o Cross Site scripting   Ok todos sabemos que Para hacer un ataque XSS necesitamos de lenguajes que utilizan stripslashes  *signos /( )! '  etc! lo que aremos en esta seccion para protegernos de esta vulnerabilidad es bloquear o remplazar estos signos que hacen que se ejecute la accion de la que se programo en el codigo ejemplo

<script>alert('XSS') </alert>

supongamos que tengamos el siguiente fragmento de codigo _
 <?php
$bug = $_GET["var"];
echo .$bug;
?>

explicamos el bug es una  variable tipo get con el nombre var
entons seria
/xss?var=
ok ahora dice que imprimiremos  lo que tiene el get [var]  entonces si el sitio web es asiiii
tenemos una targe vulnerable porqe nos imprime lo que pongamos en var si ningun filtro un facil
XSS CROSS SITE ...  Es asi
http://localhost/testing/xss.php?var=<script>alert('hola')</script>

y lo que ara es  mostrarnos una ventana como este

 BUENO AKA LA SOLUCION :


LO QUE AREMOS ES PONER UN SIMPLE FILTRO DE XSS EN ESTE CASO FILTRAREMOS
HTML DONDE ABARCAMOS SCRIPT ETC..!
<?PHP
$bug = $_GET["var"];
echo htmlentities($bug);
?>

LA HERRAMIENTA htmlentities SE UTILIZA CUANDO ASEMOS REFERENCIA DE UN CODIGO HTML EN  UN  PRINT O UN ECHO QUE ES IMPRESION DE PANTALLA PARA QUE DE ESA FORMA NO NOS DEFORME NUESTRO SITIO ..
TAMBIEN PODEMOS UTILIZAR LO QUE ES EL SRT_REPLACE

<?php

$bug = $_GET["var"];
echo str_replace('<', '', $bug);

?>

EXPLICACION :
 modificamos en donde esta el echo !  str_replace se  utiliza para remplazar ciertos caracteres en este caso remplazaremos el <  de lo que ponga el  la get de nombre var y esta sera remplazada por un espacion en blanco lo que ara es qe por ejemplo si ponemos <h1>HACKED</H1>  aparecera en nuestro CMS H1>HACKEDH1> Y DE ESA FORMA NO SE CUMPLIRA LA ACCION PARA DAÑAR NUESTRO CMS!!

OK ESTO FUE TODO POR MI PARTE SOY MR_BOGUEY  HASTA EL LUEGO POST

1 comentario:

  1. Zerox hola men, no me sale ningun mensaje, sera por que este tipo de inyecciones lo supero xammp; a fin de evitar inyeccion, responde:

    ResponderEliminar