mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/rsql-injection.md'] to pt
This commit is contained in:
parent
d8291da7c5
commit
d3ed8ab58e
@ -10,7 +10,7 @@
|
||||
RSQL é uma linguagem de consulta projetada para filtragem parametrizada de entradas em APIs RESTful. Baseada no FIQL (Feed Item Query Language), originalmente especificada por Mark Nottingham para consultar feeds Atom, o RSQL se destaca por sua simplicidade e capacidade de expressar consultas complexas de forma compacta e compatível com URI sobre HTTP. Isso o torna uma excelente escolha como uma linguagem de consulta geral para busca em endpoints REST.
|
||||
|
||||
## Visão Geral
|
||||
A injeção de RSQL é uma vulnerabilidade em aplicações web que usam RSQL como linguagem de consulta em APIs RESTful. Semelhante à [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection) e [LDAP Injection](https://owasp.org/www-community/attacks/LDAP_Injection), essa vulnerabilidade ocorre quando os filtros RSQL não são devidamente sanitizados, permitindo que um atacante injetar consultas maliciosas para acessar, modificar ou excluir dados sem autorização.
|
||||
A injeção de RSQL é uma vulnerabilidade em aplicações web que usam RSQL como linguagem de consulta em APIs RESTful. Semelhante à [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection) e [LDAP Injection](https://owasp.org/www-community/attacks/LDAP_Injection), essa vulnerabilidade ocorre quando os filtros RSQL não são devidamente sanitizados, permitindo que um atacante injete consultas maliciosas para acessar, modificar ou excluir dados sem autorização.
|
||||
|
||||
## Como funciona?
|
||||
O RSQL permite que você construa consultas avançadas em APIs RESTful, por exemplo:
|
||||
@ -209,7 +209,7 @@ Access-Control-Allow-Origin: *
|
||||
}
|
||||
```
|
||||
## Evasão de autorização
|
||||
Neste cenário, começamos com um usuário com um papel básico e no qual não temos permissões privilegiadas (por exemplo, administrador) para acessar a lista de todos os usuários registrados no banco de dados:
|
||||
Neste cenário, começamos a partir de um usuário com um papel básico e no qual não temos permissões privilegiadas (por exemplo, administrador) para acessar a lista de todos os usuários registrados no banco de dados:
|
||||
### Requisição
|
||||
```
|
||||
GET /api/users HTTP/1.1
|
||||
@ -313,7 +313,7 @@ Access-Control-Allow-Origin: *
|
||||
................
|
||||
```
|
||||
## Escalada de Privilégios
|
||||
É muito provável encontrar certos endpoints que verificam os privilégios do usuário através de seu papel. Por exemplo, estamos lidando com um usuário que não possui privilégios:
|
||||
É muito provável encontrar certos endpoints que verificam os privilégios do usuário através de seu papel. Por exemplo, estamos lidando com um usuário que não tem privilégios:
|
||||
### Requisição
|
||||
```
|
||||
GET /api/companyUsers?include=role HTTP/1.1
|
||||
@ -458,7 +458,7 @@ Access-Control-Allow-Origin: *
|
||||
}, {
|
||||
.......
|
||||
```
|
||||
## Impersonar ou Referências Diretas a Objetos Inseguras (IDOR)
|
||||
## Impersonar ou Referências Diretas de Objetos Inseguras (IDOR)
|
||||
Além do uso do parâmetro `filter`, é possível usar outros parâmetros como `include`, que permite incluir no resultado certos parâmetros (por exemplo, idioma, país, senha...).
|
||||
|
||||
No exemplo a seguir, as informações do nosso perfil de usuário são mostradas:
|
||||
@ -515,7 +515,7 @@ Access-Control-Allow-Origin: *
|
||||
}]
|
||||
}
|
||||
```
|
||||
A combinação de filtros pode ser usada para evadir o controle de autorização e obter acesso aos perfis de outros usuários:
|
||||
A combinação de filtros pode ser usada para evitar o controle de autorização e obter acesso aos perfis de outros usuários:
|
||||
### Request
|
||||
```
|
||||
GET /api/users?include=language,country&filter[users]=id=='94***************' HTTP/1.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user