Ayer Hector comentaba que de un estudio realizado sobre 1000 blogs usando wp-scanner, habían encontrado que un 11.5% de ellos eran vulnerables a ataques XSS. Ciertamente el problema no es debido a que el gestor de blogs sea WordPress, sinó al theme que usamos los bloggers en nuestro blog.
En esta lista vemos el número de blogs y el theme que usan los que han sido detectados como vulnerables.
Theme | Number of blogs |
1. field-of-dreams-02 | 7 |
2. tarski | 7 |
3. mandigo-14,1.22 | 7 |
4. connections | 9 |
5. default | 10 |
6. freshy | 10 |
7. redoable | 15 |
8. k2 | 16 |
9. vistered-little-1.6a | 16 |
10. wp-multiflex-3 | 18 |
¿Como saber si soy vulnerable?
Si quieres probar tu vulnerabilidad frente a este tipo de ataque tienes la posibilidad de probarlo mediante un cómodo sistema mediante el plugin wp-scanner.
- Añade (
<!-- wpscanner -->
) al código HTML de tu WordPress - Inserta la URL de tu blog en la url destinada a realizar el test.
Vulnerabilidades más típicas
Quizas la vulnerabilidad más común en nuestros themes suelen estar relacionadas con el buscador, ya que es una de las formas en las que podemos interactuar con la blog e insertar datos mediante el método GET
.
El fallo más común es el de no controlar los parámetros de entrada mediante el buscador. Los formularios de buscadores generalmente son de esta forma:
<form id="searchform" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Esto es vulnerable a un tipo de XSS bastánte simple, podemos probarlo en nuestro WordPress con esta simple URL.
http://tublog.com/?"><script>alert(1)</script>
Si nos muestra un alert en pantalla mostrandonos un 1, indica que somos vulnerables a este tipo de ataque. Y podemos solucionarlo de una forma muy fácil.
<form id="searchform" method="get" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
Usando la función htmlspecialchars()
de php que se encarga de convertir a carácteres especiales a entidades HTML, librandonos de este problema. Evidentemente sistemas similares a esto tambien requiren un toque de htmlspecialchars()
.
$s = ($_GET['s'])?$_GET['s']:"Buscar...";
<input type="text" name="s" value="<?php echo htmlspecialchars($s);" />
0 comentarios, 1 referencias
+
#