
Automatisiertes Sicherheitstest-Tool für Salesforce Experience Cloud, das falsch konfigurierte Aura-Anwendungen, zugängliche Datensätze und unbefugte Funktionalitäten aus Gast- und authentifizierten Kontexten entdeckt.
Dies ist kein offiziell unterstütztes Google-Produkt. Dieses Projekt ist nicht für das Google Open Source Software Vulnerability Rewards Program berechtigt.
aura-inspector ist ein Schweizer Taschenmesser für das Testen von Salesforce Experience Cloud. Es hilft dabei, falsch konfigurierte Salesforce Experience Cloud-Anwendungen zu entdecken und automatisiert einen Großteil des Testprozesses. Weitere Informationen finden Sie im Mandiant-Blogbeitrag: Auditing Salesforce Aura Data Exposure.
Einige seiner Funktionen umfassen:
Das Tool kann mit pipx mit dem folgenden Befehl installiert werden.
pipx install git+<URL>
Das Tool benötigt Python 3 und pip zum Herunterladen der Abhängigkeiten. Wir empfehlen, eine virtuelle Umgebung zu erstellen, um die Abhängigkeiten zu installieren.
git clone <URL>
cd aura-inspector
virtualenv env
source ./env/bin/activate
pip3 install -r requirements.txt
Das Hilfemenü kann mit dem Flag -h aufgerufen werden, das eine Liste der Konfigurationen bereitstellt.
python3 aura_cli.py -h
usage: python3 aura_cli.py [-h] [-u URL] [-c COOKIES] [-o OUTPUT_DIR] [-l OBJECT_LIST] [-d] [-v] [-p PROXY] [-k] [-a] [--app APP] [--aura AURA] [--context CONTEXT] [--token TOKEN] [--no-gql] [-r AURA_REQUEST_FILE]
options:
-h, --help show this help message and exit
-u, --url URL Root URL of Salesforce application to audit
-c, --cookies COOKIES
Cookies after authenticating to Salesforce application
-o, --output-dir OUTPUT_DIR
Output directory
-l, --object-list OBJECT_LIST
Pull records only the provided objects. Comma separated list of objects.
-d, --debug Print debug information
-v, --verbose Print verbose information
-p, --proxy PROXY Proxy requests
-k, --insecure Ignore invalid TLS certificates
--app APP Provide the target salesforce app's path (e.g: /myApp), the script will try to detect it if not provided
--aura AURA Provide the target salesforce aura's path (e.g: /aura), the script will try to detect it if not provided
--context CONTEXT Provide a context to be used as aura.context in POST requests, the script will use a dummy one if not provided
--token TOKEN Provide an aura token to be used as aura.token in POST requests, the script will use a dummy one if not provided
--no-gql Do not check for GraphQL capability and do not use it
--no-banner Do not display banner
-r, --aura-request-file AURA_REQUEST_FILE
Provide a request file to an /aura endpoint
Das Tool bietet eine Vielzahl von Optionen, die in verschiedenen Szenarien nützlich sein können. Die folgenden decken einige verschiedene Situationen ab.
Die Verwendung des Tools in der Standardkonfiguration ist so einfach wie das Ausführen des folgenden Befehls. Dieser führt alle Prüfungen ohne Authentifizierung durch und gibt zurück, was aus der Perspektive eines Gastbenutzers zugänglich ist.
python3 aura_cli.py -u <URL>
Die Ausgabe zeigt auch an, ob es eine Selbstregistrierungsfunktion gibt, mit der Sie ein Konto erstellen können. Wenn Sie die Möglichkeit haben, sich auf der Instanz zu registrieren, wird die Ausführung des Tools aus einem authentifizierten Kontext wahrscheinlich mehr Ergebnisse liefern.
Um das Tool in einem authentifizierten Kontext auszuführen, geben Sie entweder das SID-Cookie mit dem Parameter -c an oder lassen Sie das Tool diese und andere Parameter für Sie parsen, indem Sie eine Datei mit dem Inhalt einer beliebigen Anfrage an den Aura-Endpunkt in einer authentifizierten Sitzung bereitstellen.
python3 aura_cli.py -r <AURA_REQUEST_FILE>
Eine einzelne Instanz kann mehrere benutzerdefinierte Apps hosten. Dies ist typischerweise erkennbar, wenn Sie so etwas wie /<custom-app-name>/s im Pfad sehen. Wenn dies der Fall ist, empfehlen wir, alle Apps zu finden und sie mit dem Parameter --app anzugeben, da die Ausgabe erheblich abweichen kann. Es wird auch empfohlen, das Tool gegen die Standard-App "/" zu versuchen, falls auf der Instanz benutzerdefinierte Apps gehostet werden.