Translated ['src/pentesting-web/rsql-injection.md'] to pt

This commit is contained in:
Translator 2025-04-15 00:02:11 +00:00
parent d8291da7c5
commit d3ed8ab58e

View File

@ -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