
Автоматизированный инструмент тестирования безопасности для Salesforce Experience Cloud, который обнаруживает неправильно настроенные приложения Aura, доступные записи и несанкционированную функциональность из контекстов гостевого и аутентифицированного доступа.
Это не официально поддерживаемый продукт Google. Этот проект не участвует в Программе вознаграждений за уязвимости в открытом исходном коде Google.
aura-inspector — это швейцарский нож для тестирования Salesforce Experience Cloud. Он помогает выявлять неправильно настроенные приложения Salesforce Experience Cloud, а также автоматизирует большую часть процесса тестирования. Для получения дополнительной информации обратитесь к статье блога Mandiant: Аудит раскрытия данных Salesforce Aura.
Некоторые из его функций включают:
Инструмент можно установить с помощью pipx, используя команду ниже.
pipx install git+<URL>
Для работы инструмента требуется Python 3 и pip для загрузки зависимостей. Рекомендуется создать виртуальное окружение для установки зависимостей.
git clone <URL>
cd aura-inspector
virtualenv env
source ./env/bin/activate
pip3 install -r requirements.txt
Справочное меню можно вызвать с помощью флага -h, который предоставляет список конфигураций.
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
Инструмент предлагает множество опций, которые могут быть полезны в различных сценариях. Ниже описаны несколько различных ситуаций.
Использование инструмента в стандартной конфигурации так же просто, как выполнение следующей команды. Это запустит все проверки в неаутентифицированном режиме и вернет то, что доступно с точки зрения гостевого пользователя.
python3 aura_cli.py -u <URL>
Вывод также покажет, есть ли функция самостоятельной регистрации, которую вы можете использовать для создания учетной записи. Если у вас есть возможность зарегистрироваться на экземпляре, запуск инструмента из аутентифицированного контекста, вероятно, даст больше результатов.
Чтобы запустить инструмент в аутентифицированном контексте, либо укажите cookie SID с помощью параметра -c, либо позвольте инструменту самостоятельно разобрать этот и другие параметры, предоставив файл с содержимым произвольного запроса к эндпоинту aura в аутентифицированной сессии.
python3 aura_cli.py -r <AURA_REQUEST_FILE>
Один экземпляр может содержать несколько пользовательских приложений. Обычно это можно определить, если в пути встречается что-то вроде /<custom-app-name>/s в пути. В таком случае рекомендуется найти все приложения и указать их с помощью параметра --app, так как вывод может существенно различаться. Также рекомендуется попробовать запустить инструмент для приложения по умолчанию "/", если на экземпляре размещены какие-либо пользовательские приложения.