Med Graph
My startup is launching the next big patient portal, using the hottest new tech! Check it out with our guest account: Demo:TUCTF. We're still in beta, but it's so secure we already have users! Note: This challenge requires no bruteforcing or intense scanning of the application.
Web Exploitation
Autor do writeup: @jackskelt
O desafio consiste em um Insecure Direct Object Reference (IDOR) no GraphQL. Após acessar o site e se autenticar com as credenciais de visitante fornecidos, é possível identificar uma requisição para um endpoint de GraphQL, passando uma query para obter os dados do usuário.

Podemos então tentar rodar uma query de introspecção para entender um pouco mais do schema do banco de dados. Utilizei essa do PayloadAllTheThings.
Após rodar a query de introspecção, podemos pegar o resultado e passar no GraphQL Visualizer para obter um resultado visual da relação entre as tabelas. Logo podemos perceber que há o campo password
para o PacientType
e DoctorType
.
Podemos então tentar mandar uma query com os campos de senha no usuário e doutor.
Como resultado, o servidor nos retorna o hash da senha do usuário atual e do doutor.
O hash é um SHA-256
, podemos utilizar o John the Ripper
com a wordlist do rockyou.txt
para achar a senha do doutor.
Obtemos que a senha é madjac
. Assim podemos logar com a conta Ivy:madjac
, obtendo a flag.

Atualizado