
Kit de ferramentas para testes de segurança automatizados em GraphQL
Graph Crawler é o kit de testes automatizados mais poderoso para qualquer endpoint GraphQL.
NOVO: Pode pesquisar endpoints para você usando a poderosa ferramenta Graphinder da Escape Technology. Basta apontá-lo para um domínio e adicionar a opção '-e' que o Graphinder fará enumeração de subdomínios e pesquisa em diretórios populares por endpoints GraphQL. Depois disso, o GraphCrawler assumirá e trabalhará em cada descoberta. Se o esquema não puder ser introspectado, você pode fornecê-lo como um arquivo json com a opção '-s'.
Ele percorrerá e verificará se a mutação está ativada, verificará por consultas sensíveis disponíveis, como usuários e arquivos, e também testará quaisquer consultas fáceis que encontrar para ver se a autenticação é necessária.
Se a introspecção não estiver ativada no endpoint, ele verificará se é um Apollo Server e então poderá executar o Clairvoyance para fazer força bruta e pegar as sugestões para tentar construir o esquema nós mesmos. (Veja o projeto Clairvoyance para mais detalhes sobre isso). Em seguida, ele classificará as descobertas de 1 a 10, sendo 10 o mais crítico.
Se você quiser se aprofundar no esquema, também pode usar o graphql-path-enum para procurar caminhos para certos tipos, como IDs de usuário, emails, etc.
Espero que isso economize tanto tempo para você quanto economizou para mim.
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
A opção de saída não é necessária e por padrão será gerada no arquivo schema.json 2. Como Docker Nota: Como o graphcrawler usa algumas opções que precisam de arquivos como entrada ou produzem saída, é aconselhável manter todos esses arquivos em um diretório de trabalho e montá-lo no caminho do contêiner /workspace. Toda a sua saída será salva nesse diretório montado
docker build -t graphcrawler:1.2 .
docker run -v /path_to_workspace:/workspace -it graphcrawler:1.2 -u https://test.com/graphql/api -o <filename> -a "<headers>"
Lista de palavras do google-10000-english