Vulnerabilidades comunes de plugins en WordPress Parte 1 de 2

Los plugins facilitan la ejecución de tareas administrativas o de publicación en los sitios web con WordPress, pero también pueden ser objeto de abuso por parte de terceros con intenciones maliciosas. Algunas de las vulnerabilidades comunes a los que están expuestos los plugins de WordPress se presentan a continuación.

a. Visualización de archivos arbitrarios.
b. Carga de archivos arbitrarios.
c. Inyecciones SQL.
d. Escalada de privilegios.
e. Evaluación remota de código.
f. Secuencia de Comandos en Sitios Cruzados (XSS).
g. Falsificación de Peticiones en Sitios Cruzados (CSRF).

a. Visualización de archivos arbitrarios.
Nombre en inglés: Arbitrary file viewing
¿Por qué es inseguro?
Permite a un tercero remoto no autorizado tener acceso a cualquier archivo de un servidor web, esto podría incluir la visualización de archivos de configuración que contengan credenciales de acceso, servicios utilizados, versiones instaladas, información sensible relacionada con la base de datos, entre otros ajustes. Tener acceso remoto a la visualización de archivos de configuración le brinda información útil a un atacante sobre el servidor web, facilitando la fase de reconocimiento e identificación del sistema objetivo.
¿Cómo se soluciona o mitiga?
Para evitar que un tercero no autorizado tenga acceso a los archivos de configuración es necesario que todos los directorios y archivos del servidor tengan sus respectivos permisos que garanticen que solo los usuarios autorizados puedan acceder a los mismos. Los archivos deben ser clasificados por el administrador del servidor web, permitiendo la visualización de elementos como noticias, publicaciones, documentación y similares, y restringiendo el acceso del resto de los archivos del servidor.

Para mayor información revisar en la documentación oficial de WordPress. https://wordpress.org/support/article/hardening-wordpress/

b. Carga de archivos arbitrarios.
Nombre en inglés: Arbitrary file upload
¿Por qué es inseguro?
La carga de cualquier tipo de archivos en un servidor web permite que un atacante abuse de la funcionalidad al subir archivos de configuración modificados a conveniencia, cambiando credenciales de acceso o cargando código personalizado que le brinde control total administrativo remoto mediante una webshell o puerta trasera.
¿Cómo se soluciona o mitiga?
Al ajustar los respectivos permisos de los directorios y archivos del servidor web se puede limitar el permiso de escritura solo para usuarios autorizados y de determinadas direcciones IP de origen para tener un mejor control.

Para mayor información revisar la sección de “Permiso de Archivos” según la estructura web de WordPress en https://wordpress.org/support/article/hardening-wordpress/
Para deshabilitar la ejecución de código PHP revisar pasos en sección “PHP exploits” en https://www.malcare.com/blog/wordpress-security-vulnerabilities/

c. Inyección SQL.
Nombre en inglés: SQL injection (SQLi)
¿Por qué es inseguro?
La inyección de Lenguaje de Consulta Estructurado (SQL por sus siglas en inglés) y de comandos arbitrarios en general, permite a un atacante remoto la ejecución de instrucciones que podría revelar el contenido de una base de datos, su modificación, denegación de servicio o incluso ejecución de comandos a nivel del sistema operativo del servidor web.
¿Cómo se soluciona o mitiga?
Se deben implementar filtros que permitan la validación de entrada de datos en el servidor web, limitando el uso de determinados caracteres especiales, comandos específicos y cantidad máxima de caracteres por consulta.

Para mayor información revisar sección “Inyección” en https://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf

d. Escalada de privilegios.
Nombre en inglés: Privilege escalation.
¿Por qué es inseguro?
Un tercero no autorizado que pueda tener acceso a algún tipo de usuario en el sitio web podría escalar al usuario administrador y obtener mayores privilegios, tomando el control administrativo del sitio web.
¿Cómo se soluciona o mitiga?
Algunas versiones de WordPress han presentado vulnerabilidades que permitían la escalada de privilegios a través de la evasión de restricciones en algunos tipos de publicaciones (POST) mediante entradas especialmente diseñadas, la corrección de esta vulnerabilidad se logra mediante la actualización de versión de WordPress.

Para mayor información sobre esta vulnerabilidad y las versiones de WordPress vulnerables, revisar CVE-2018-20152.
Para información oficial sobre actualizaciones de WordPress, revisar https://wordpress.org/support/article/updating-wordpress/

Para continuar leyendo sobre las vulnerabilidades comunes de los plugins en WordPress revisar la parte 2 del artículo.

Referencias:
https://wordpress.org/support/article/hardening-wordpress/
https://www.malcare.com/blog/wordpress-security-vulnerabilities/
https://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf
https://wordpress.org/support/article/updating-wordpress/