Salesforce
Reconocimiento
Si la aplicación hace uso de componentes Aura, se pueden explotar potenciales vulnerabilidades asociadas al uso de esta tecnología.
Rutas comunes:
Cadenas comunes. En caso de que no se cuente con esas rutas, se puede intentar identificar si se usa Aura consultando las rutas visibles desde la aplicación y buscando, por ejemplo, las siguientes cadenas comunes de Aura:
La presencia de estos elementos sugiere que la aplicación utiliza el framework Aura.
Enumeración de objetos
Los objetos pueden ser enumerados modificando el parámetro message
por el siguiente payload:
En este caso, no es necesario codificar (URL encoding) el payload en el parámetro message
para enviarlo en la petición.
Se pueden extraer los objetos personalizados debido a que la cadena termina con __c
, por lo que, usando el siguiente comando, se puede obtener la lista de objetos:
La lista completa de objetos en salesforce se puede consultar en:
https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_list.htm
Si se quiere obtener la lista actualizada de objetos de salesforce, puedes usar tu IA de confianza para extraer la información con el siguiente prompt:
Esto dará una lista como la siguiente:
Enumeración de registros de objetos
Con intruder (Burp Suite) es posible automatizar la obtención de información de cada uno de los objetos.
Se copia la lista en la sección de "Payloads" de intruder, seleccionando la opción de "Simple list", y se modifica el parámetro message
de la petición de la siguiente forma:
Ejemplo de json de la respuesta:
Si se copia el json de la respuesta, es posible filtrar con jd
el resultado obtenido. Por ejemplo:
Obtención de identificadores de registros:
Si se quiere identificar cuáles son los caracteres que varían en los identificadores para posteriormente realizar un ataque de fuerza bruta para obtener identificadores no conocidos, se puede usar el siguiente comando:
Ejemplo de salida:
Además, los identificadores tienen un patrón propio de Salesforce que indica el tipo de objeto:
https://help.salesforce.com/s/articleView?id=000385203&type=1
Vulnerabilidades
Insecure Direct Object Reference
Acceso a información de objetos no autorizados, por ejemplo:
Intentar cambiar el
recordId
por otro válido. Ejemplo:recordId: "0015g00000A7T3AAK"
→ Usuario ArecordId: "0015g00000B5T7BBL"
→ Usuario B
Aunque se pueda acceder, hay que verificar que realmente sea información que no deba estar accesible para el usuario.
Exposición de información sensible (leaks)
Los parámetros aura.context
(base64) y aura.token
(jwt) están codificados en urlencode y base64, por lo que, se puede decodificar el contenido de los mismos y buscar información sensible que pueda estar expuesta.
Referencias
Última actualización
¿Te fue útil?