
Ferramenta automatizada de teste de segurança para o Salesforce Experience Cloud que descobre aplicações Aura mal configuradas, registos acessíveis e funcionalidades não autorizadas a partir de contextos de convidado e autenticados.
Este não é um produto oficialmente suportado pelo Google. Este projeto não é elegível para o Programa de Recompensas por Vulnerabilidades de Software de Código Aberto do Google.
aura-inspector é um canivete suíço para testes do Salesforce Experience Cloud. Ele facilita a descoberta de aplicações Salesforce Experience Cloud mal configuradas e automatiza grande parte do processo de teste. Para mais informações, consulte a postagem no blog da Mandiant: Auditing Salesforce Aura Data Exposure.
Algumas de suas funcionalidades incluem:
A ferramenta pode ser instalada com pipx usando o comando abaixo.
pipx install git+<URL>
A ferramenta requer Python 3 para executar e pip para descarregar as dependências. Recomendamos a criação de um ambiente virtual para instalar as dependências.
git clone <URL>
cd aura-inspector
virtualenv env
source ./env/bin/activate
pip3 install -r requirements.txt
O menu de ajuda pode ser invocado usando a flag -h, que fornece uma lista de configurações.
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
A ferramenta oferece uma variedade de opções que podem ser úteis em diferentes cenários. As seguintes cobrem algumas situações diferentes.
Usar a ferramenta na configuração padrão é tão simples como executar o seguinte comando. Isto executará todas as verificações de forma não autenticada e retornará o que é acessível a partir da perspetiva de um utilizador Convidado.
python3 aura_cli.py -u <URL>
A saída também revelará se existe uma funcionalidade de auto-registo que pode usar para criar uma conta. Se tiver a oportunidade de se registar na instância, executar a ferramenta a partir de um contexto autenticado provavelmente produzirá mais resultados.
Para executar a ferramenta num contexto autenticado, forneça o cookie SID usando o parâmetro -c ou deixe a ferramenta analisar este e outros parâmetros fornecendo um ficheiro com o conteúdo de um pedido arbitrário ao endpoint aura numa sessão autenticada.
python3 aura_cli.py -r <AURA_REQUEST_FILE>
Uma única instância pode ter várias aplicações personalizadas alojadas nela. Isso pode ser tipicamente identificado se vir algo como /<custom-app-name>/s no caminho. Nesse caso, recomendamos encontrar todas as aplicações e especificá-las usando o parâmetro --app, pois a saída pode diferir significativamente. Também é aconselhável tentar executar a ferramenta contra a aplicação predefinida "/" se houver alguma aplicação personalizada alojada na instância.