Skip to main content

WordPress Role Based Database Connection Strings

WordPress Role Based Database Connection Strings


Una aplicaci�n web, o un framework CMS como WordPress, utiliza un repositorio de datos en un motor de bases de datos, en concreto MySQL. Para eso, durante el proceso de instalaci�n se crea un usuario del motor de bases de datos que es el que tiene el control de todas las tablas dentro de la base de datos y puede hacer con ellas lo que le plazca. Es decir, puede insertar, modificar o borrar registros en todas y cada una de las tablas sin ninguna limitaci�n.

Figura 1: Role-Based Database Connection Strings

Las acciones que ese usuario de MySQL realiza dentro de ellas, como por ejemplo dar de alta un nuevo registro mediante una instrucci�n INSERT que represente a un nuevo usuario del CMS, est�n limitadas por el c�digo de la propia aplicaci�n, es decir, el c�digo PHP del motor WordPress

Esta es una situaci�n muy habitual en todas las aplicaciones web, y en especial en la mayor�a de los frameworks de Internet, y tiene implicaciones en la seguridad porque, si un atacante es capaz de encontrar un bug de SQL Injection en cualquiera de los c�digos de WordPress, ya sea en el core del framework, en un plugin o en un tema, implicar�a directamente el control de todas las tablas y su contenido que est�n en MySQL. En la charla de Hardening Wordpress Like a Hacker lo explico en detalle.


Figura 2: Hardening WordPres like a Hacker

Esto se debe a que WordPress no utiliza un sistema de Role-Based DB Connection Strings, es decir, que todos los usuarios de WordPesss - ya sea un usuario an�nimo o el administrador - utilizan la misma cuenta de MySQL en la cadena de conexi�n para ejecutar las consultas SQL, algo que deber�a evitarse en un entorno fortificado.

De esto ya os habl� hace tiempo, y aunque lo suyo es que cada usuario de la aplicaci�n web tuviera su representaci�n en un usuario de la base de datos, a veces por gesti�n de cuentas vol�tiles, por licencias en algunos modelos de venta de algunos motores de base de datos, por la implicaci�n que cuentas del motor puedan tener dentro del resto del sistema inform�tico - por ejemplo, motores integrados en Active Directory - o por complejidad en el desarrollo no se hace.  En esos casos, habr�a que dise�ar un modelo de Role-Based Database Connection Strings.

En el gr�fico que os pintaba en el art�culo de hace unos a�os, os hablaba de que se deber�an reconocer los roles principales de la aplicaci�n, en este caso del motor de WordPress, y crear un usuario en MySQL por cada uno de esos roles. Despu�s, se deber�an entregar permisos sobre las tablas a cada uno de esos usuarios teniendo en cuenta que solo deber�an tener acceso a lo estrictamente necesario para el cumplimiento de su rol.

Figura 3: Esquema de Role-Based Database Connections

Despu�s, cuando se produce el proceso de login de un usuario de WordPress en el framework, el sistema debe ser capaz de reconocer su rol en WordPress y ejecutar las consultas SQL al motor MySQL con una DB Connection que haya utilizado el usuario adecuado de su rol, consiguiendo limitar el impacto que pueda tener un posible bug de SQL Injection que fuera descubierto en un plugin, un tema o en el core del sistema.

Figura 4: Cuando sea un usuario loggado se utiliza un usuario privilegiado en MySQL

Como prueba de concepto, en los art�culos de WordPress in Paranoid Mode nosotros hicimos una modificaci�n al sistema de conexiones a la base de datos para que el framework diferenciara algo muy b�sico: Entre un usuario de WordPress que ha hecho login, y un visitante an�nimo que no ha hecho login en WordPress.

Figura 5: Cuando sea un usuario an�nimo se utiliza un usuario sin privilegios en MySQL

De esta forma, cuando se lance una consulta al motor MySQL esta utilizar� un usuario distinto de MySQL, siendo el segundo un usuario sin ning�n privilegio de INSERT, UPDATE o DELETE en las tablas que WordPress utiliza en MySQL.

Figura 6: Definici�n de distintas cadenas de conexi�n

El funcionamiento es muy sencillo, cuando se va a realizar la conexi�n a MySQL desde WordPress, miramos a ver si el usuario est� logado o no en el framework y se elige uno u otro usuario de MySQL para tirar la cadena de conexi�n.

Figura 7: Comprobaci�n de si usuario est� logado o no en la PoC

Toda la informaci�n la ten�is en el paper y en los diferentes art�culos que he ido recogido, pero este v�deo de aqu� os ense�a c�mo funciona en nuestra prueba de concepto.


Figura 7: WordPress Role-Based Database Connection Strings to MySQL

Para que teng�is toda la informaci�n disponible, os dejo aqu� la lista de recursos sobre Hacking, Hardening y Seguridad en WordPress que he ido publicando en el �ltimo tiempo por aqu�.

[Libro] M�xima Seguridad en WordPress
[Libro] Hardening GNU/Linux
[Paper] WordPress in Paranoid Mode (Parte 1)
[Paper] WordPress in Paranoid Mode (Parte 2)
[V�deo] Proteger WordPress con Latch
[V�deo] Proteger WordPress con Latch Cloud TOTP
[V�deo] MyWordPress in Paranoid Mode (conferencia Chema Alonso)
[V�deo] MyWordPress in Paranoid Mode (ElevenPaths Talks de Pablo Gonz�lez)
[V�deo] Ejemplo de uso de Latch en WordPress
[V�deo] WordPress Demo XSS en WP-UserAgent
[V�deo] Hardening WordPress like a Hacker
[BlogPost] My WordPress in Paranoid Mode
[BlogPost] M�xima Seguridad en WordPress
[BlogPost] Hackear un WordPress con Network Packet Manipulation
[BlogPost] Fortificar comunicaci�n entre WordPress y MySQL
[BlogPost] WordPress Latch Enforcement
[BlogPost] WordPress: Role-Based Database Connection Strings
[BlogPost] WordPress a�n m�s seguro con Latch Lock After Request
[BlogPost] Fortificar WordPress frente a ataques de fuerza bruta
[BlogPost] Ataques (al coraz�n) de tu WordPress
[BlogPost] C�mo robarle las contrase�as a los administradores de WordPress
[BlogPost] Agrupar el control de varios WordPress con un solo Latch
[BlogPost] WordPress: Time-Based XSPA (Cross-Site Port Attack)
[BlogPost] C�mo deber�a ser un WordPress un poco m�s seguro
[BlogPost] WPHardening: Automatizar fortificaci�n de WordPress
[BlogPost] Protege los borradores de los art�culos de tu WordPress
[BlogPost] Registro de cuentas en WordPress p�blicos
[BlogPost] Riesgos en la ejecuci�n de tareas de Cron
[BlogPost] WordPres: XSS en plugin WP-UserAgent
[BlogPost] Listar los plugins de WordPress en un pentest
[BlogPost] WordPress: SQL Injection en Scarcity Builder Plugin


Saludos Malignos!


download file now

download
alternative link download

Popular posts from this blog

Mini Militia ReAL DuAL WiELD MOD 3 06 by ARSHAD

Mini Militia ReAL DuAL WiELD MOD 3 06 by ARSHAD Most of my friends and sites visitors request me to create a Dual Wield MOD + Pro pack... I DONE IT......... Features:- � Propack Unlocked � Unlimited Ammo OR Bullets � ReAL DuAL WiELD MOD ( Bugs fixed now its working) � No Reload � One shot Kill ( 4 Bullets per shot ) � Unlimited Boost � Unlimited Bombs � No one can see u in Solo Play Mod Screenshots:- Click below for Download Use Chrome or other default browser for download this mod Dont Use Uc Mini Wait 5 seconds and Skip ad download  file  now

Mini Militia MEGA MOD 3 0 27 by Arshad KMODS

Mini Militia MEGA MOD 3 0 27 by Arshad KMODS New MEGA MOD 3.0.27... � 4X Time To Refill Health :- ?If You Injured by Gun/Bomb Then Your Life Refill/Recharge In 4X. � Die Only By Guns:- ?Bombs Will Not Harm For You. � High Range Of Bullets:- ?All Guns Rage Is Increased. � Sniper Zoom:- ?All Weapons Have 7X Zoom. � Laser Sight:- ?All Weapons Have Laser Sight. � Dual Wield MOD:- ?Now You Can Take Any Weapon As Dual Weapon , Like Taking Rocket Launcher With Sniper Or Double Barrel With A Fire Sprayer Or With Same Weapons (Example :- AK47 With Another AK47) Too. ?Sometimes It Will Freeze The Game While Playing In Quick Play MOD. � Unlimited Flying Power :- ?Unlimited Boost. � Disabled Gravity :- ?You Will Float On Air Like Lunacy. � One Shot Mega MOD:- ?9 Bullets PerShot. � Unlimited Ammo Or Bullets :- ?Your Guns Will Get Unlimited Number Of Bullets. ?Now You Can Switch Weapons And Throw Grenades. ?You Want Freezes Or Crashes In Quick Play Or Online MOD. ?The Zero Ammo In Lan-Wifi MOD Is Al...

Mini Militia IRON MAN MOD

Mini Militia IRON MAN MOD Download Mini Militia IRON MAN MOD Features :- � Pro pack Unlock � Unlimited Boost � Unlimited Bomb � One shot death (4 bullets per shot) � Unlimited Ammo or Bullets � No Reload � No one can see u in Solo Play mod � HD backgrounds � Modded Guns � New Music � You Can see other players life � In multiplayer mod you get Commander in Chiefs Batch � Different IRON MAN suitwith different colors combination � Blue bars are now green � Invisible Avatar ( only work if you chose invisible avatar ) Click below for download Wait 5 seconds and Skip AD Note:-       If any one not find Iron Man Avatars pls read this.. If any one not find do this steps 1) Open Mini Militias this mod 2) Go to Setting 3) Chose Configure (  3rd Option ) 4) Now OFF HI-RES GFX ( 4th Option ) 5) Restart Game 6) Done!!! Enjoy Mini Militia Iron Man MOD!!!!!!! Screenshots?? Share maximum......?????????????? download  file  now