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.
|
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
|
## 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?
|
## Como funciona?
|
||||||
O RSQL permite que você construa consultas avançadas em APIs RESTful, por exemplo:
|
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
|
## 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
|
### Requisição
|
||||||
```
|
```
|
||||||
GET /api/users HTTP/1.1
|
GET /api/users HTTP/1.1
|
||||||
@ -313,7 +313,7 @@ Access-Control-Allow-Origin: *
|
|||||||
................
|
................
|
||||||
```
|
```
|
||||||
## Escalada de Privilégios
|
## 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
|
### Requisição
|
||||||
```
|
```
|
||||||
GET /api/companyUsers?include=role HTTP/1.1
|
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...).
|
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:
|
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
|
### Request
|
||||||
```
|
```
|
||||||
GET /api/users?include=language,country&filter[users]=id=='94***************' HTTP/1.1
|
GET /api/users?include=language,country&filter[users]=id=='94***************' HTTP/1.1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user