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 it
This commit is contained in:
parent
f75066b7e6
commit
01b946a01c
@ -7,10 +7,10 @@
|
|||||||
## RSQL Injection
|
## RSQL Injection
|
||||||
|
|
||||||
## Cos'è RSQL?
|
## Cos'è RSQL?
|
||||||
RSQL è un linguaggio di query progettato per il filtraggio parametrizzato degli input nelle API RESTful. Basato su FIQL (Feed Item Query Language), originariamente specificato da Mark Nottingham per interrogare i feed Atom, RSQL si distingue per la sua semplicità e la capacità di esprimere query complesse in modo compatto e conforme agli URI su HTTP. Questo lo rende un'ottima scelta come linguaggio di query generale per la ricerca degli endpoint REST.
|
RSQL è un linguaggio di query progettato per il filtraggio parametrizzato degli input nelle API RESTful. Basato su FIQL (Feed Item Query Language), specificato originariamente da Mark Nottingham per interrogare i feed Atom, RSQL si distingue per la sua semplicità e la capacità di esprimere query complesse in modo compatto e conforme agli URI su HTTP. Questo lo rende un'ottima scelta come linguaggio di query generale per la ricerca degli endpoint REST.
|
||||||
|
|
||||||
## Panoramica
|
## Panoramica
|
||||||
L'RSQL Injection è una vulnerabilità nelle applicazioni web che utilizzano RSQL come linguaggio di query nelle API RESTful. Simile a [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection) e [LDAP Injection](https://owasp.org/www-community/attacks/LDAP_Injection), questa vulnerabilità si verifica quando i filtri RSQL non sono adeguatamente sanitizzati, consentendo a un attaccante di iniettare query dannose per accedere, modificare o eliminare dati senza autorizzazione.
|
L'iniezione RSQL è una vulnerabilità nelle applicazioni web che utilizzano RSQL come linguaggio di query nelle API RESTful. Simile a [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection) e [LDAP Injection](https://owasp.org/www-community/attacks/LDAP_Injection), questa vulnerabilità si verifica quando i filtri RSQL non sono adeguatamente sanitizzati, consentendo a un attaccante di iniettare query dannose per accedere, modificare o eliminare dati senza autorizzazione.
|
||||||
|
|
||||||
## Come funziona?
|
## Come funziona?
|
||||||
RSQL consente di costruire query avanzate nelle API RESTful, ad esempio:
|
RSQL consente di costruire query avanzate nelle API RESTful, ad esempio:
|
||||||
@ -125,7 +125,7 @@ Content-Length: 85
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Sebbene ci si aspetti un `/api/registrations?email=<emailAccount>`, è possibile utilizzare i filtri RSQL per tentare di enumerare e/o estrarre informazioni sugli utenti attraverso l'uso di operatori speciali:
|
Sebbene ci si aspetti un `/api/registrations?email=<emailAccount>`, è possibile utilizzare filtri RSQL per tentare di enumerare e/o estrarre informazioni sugli utenti attraverso l'uso di operatori speciali:
|
||||||
### Request
|
### Request
|
||||||
```
|
```
|
||||||
GET /api/registrations?filter[userAccounts]=email=='test@test.com' HTTP/1.1
|
GET /api/registrations?filter[userAccounts]=email=='test@test.com' HTTP/1.1
|
||||||
@ -209,7 +209,7 @@ Access-Control-Allow-Origin: *
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
## Evasione dell'autorizzazione
|
## Evasione dell'autorizzazione
|
||||||
In questo scenario, partiamo da un utente con un ruolo base e nel quale non abbiamo permessi privilegiati (ad es. amministratore) per accedere all'elenco di tutti gli utenti registrati nel database:
|
In questo scenario, partiamo da un utente con un ruolo di base e nel quale non abbiamo permessi privilegiati (ad es. amministratore) per accedere all'elenco di tutti gli utenti registrati nel database:
|
||||||
### Richiesta
|
### Richiesta
|
||||||
```
|
```
|
||||||
GET /api/users HTTP/1.1
|
GET /api/users HTTP/1.1
|
||||||
@ -348,7 +348,7 @@ Access-Control-Allow-Origin: *
|
|||||||
"data": []
|
"data": []
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Utilizzando determinati operatori, potremmo enumerare gli utenti amministratori:
|
Utilizzando determinati operatori potremmo enumerare gli utenti amministratori:
|
||||||
### Richiesta
|
### Richiesta
|
||||||
```
|
```
|
||||||
GET /api/companyUsers?include=role&filter[companyUsers]=user.id=='94****************************' HTTP/1.1
|
GET /api/companyUsers?include=role&filter[companyUsers]=user.id=='94****************************' HTTP/1.1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user