Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2011, 16:06
oms02
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
vulnerabilidad XSS con jquery

Hola a todos.

He dudado bastante sobre donde seria correcto escribir este post asi que si estoy en el lugar incorrecto, pido disculpas...


Estoy intentando incorporar cierto nivel de seguridad a una pagina. En ella, trabajo con PHP y las consultas al servidor las hago utilizando AJAX (a traves de jquery).

Concretamente estoy intentando poner a prueba el codigo contra una inyeccion del tipo XSS. Aunque creo haber entendido bastante bien este asunto del XSS (pues no es complejo entender el funcionamiento del tipico alert() y demas), no he conseguido romper la seguridad de dicho codigo. Me gustaria saber si podria haber una vulnerabilidad de este tipo (XSS) en él, ya que aunque yo lo veo 'imposible', por la cantidad de maneras en las que he visto que este tipo de vulnerabilidad se puede hacer, me hace sentirme bastante inseguro al respecto ( y dicho sea de paso, hablando claro no tengo NPI de estos asuntos).

El codigo es de lo mas sencillo:

Parte1: donde se encuentra el input (y el div de respuesta).
Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  3. <script src="jquery-1.4.2.min.js" type="text/javascript"></script>
  4. <script src="prueba.js" type="text/javascript"></script>
  5. </head>
  6.  
  7. Nombre: <input type="text" id="nombre"/>
  8. <input type="button" id="chequeo" value="chequear"/>
  9.  
  10. <br/>
  11. <div id="resultado"></div>
  12. </body>
  13. </html>

parte2:archivo prueba.js
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3. $("#chequeo").click(function(){
  4. var valor = $("#nombre").val();
  5.  
  6. $.ajax({
  7.     contentType: "application/x-www-form-urlencoded",
  8.     type: "POST",
  9.     url: "prueba.php",
  10.     data: "valor="+valor,
  11.     success: function(datos){
  12.         $("#resultado").html(datos);
  13.     }
  14. });
  15. });
  16. });

parte3: consulta
Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost','root');
  3. mysql_select_db('BD',$conexion);
  4.  
  5. $nmb = strip_tags(mysql_real_escape_string($_POST['valor']));
  6.  
  7. $consulta = mysql_query("SELECT apellido FROM principal WHERE nombre = '$nmb'",$conexion);
  8.  
  9. if($nombre = mysql_fetch_array($consulta))
  10.     {echo 'El apellido de ese usuario es: '.$nombre['apellido'];}
  11. else
  12.     {echo 'No hay ningún usuario con ese nombre.';}
  13. ?>

Si alguien viese alguna manera de inyectar js o.....lo q sea, le estaria muy agradecido (si me la dice )

1 saludo a todos y muchas gracias!