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 pl
This commit is contained in:
parent
78858c5657
commit
4d6e90ab1e
@ -39,11 +39,11 @@ Or even take advantage to extract sensitive information with Boolean queries or
|
||||
| `,` / `or` | Logiczny operator **OR**. Filtruje wiersze, gdzie *przynajmniej jeden* warunek jest *prawdziwy*| `/api/v2/myTable?q=columnA==valueA,columnB==valueB` |
|
||||
| `==` | Wykonuje zapytanie **równości**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* dokładnie równe są *queryValue* | `/api/v2/myTable?q=columnA==queryValue` |
|
||||
| `=q=` | Wykonuje zapytanie **wyszukiwania**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* zawierają *queryValue* | `/api/v2/myTable?q=columnA=q=queryValue` |
|
||||
| `=like=` | Wykonuje zapytanie **podobieństwa**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* są podobne do *queryValue* | `/api/v2/myTable?q=columnA=like=queryValue` |
|
||||
| `=in=` | Wykonuje zapytanie **w**. Zwraca wszystkie wiersze z *myTable*, gdzie *columnA* zawiera *valueA* LUB *valueB* | `/api/v2/myTable?q=columnA=in=(valueA, valueB)` |
|
||||
| `=out=` | Wykonuje zapytanie **wykluczenia**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* nie są ani *valueA*, ani *valueB* | `/api/v2/myTable?q=columnA=out=(valueA,valueB)` |
|
||||
| `!=` | Wykonuje zapytanie *nie równości*. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* nie są równe *queryValue* | `/api/v2/myTable?q=columnA!=queryValue` |
|
||||
| `=notlike=` | Wykonuje zapytanie **nie podobieństwa**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* nie są podobne do *queryValue* | `/api/v2/myTable?q=columnA=notlike=queryValue` |
|
||||
| `=like=` | Wykonuje zapytanie **jak**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* są podobne do *queryValue* | `/api/v2/myTable?q=columnA=like=queryValue` |
|
||||
| `=in=` | Wykonuje zapytanie **in**. Zwraca wszystkie wiersze z *myTable*, gdzie *columnA* zawiera *valueA* LUB *valueB* | `/api/v2/myTable?q=columnA=in=(valueA, valueB)` |
|
||||
| `=out=` | Wykonuje zapytanie **wyklucz**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* nie są ani *valueA*, ani *valueB* | `/api/v2/myTable?q=columnA=out=(valueA,valueB)` |
|
||||
| `!=` | Wykonuje zapytanie *nie równa się*. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* nie są równe *queryValue* | `/api/v2/myTable?q=columnA!=queryValue` |
|
||||
| `=notlike=` | Wykonuje zapytanie **nie jak**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* nie są podobne do *queryValue* | `/api/v2/myTable?q=columnA=notlike=queryValue` |
|
||||
| `<` & `=lt=` | Wykonuje zapytanie **mniejsze niż**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* są mniejsze niż *queryValue* | `/api/v2/myTable?q=columnA<queryValue` <br> `/api/v2/myTable?q=columnA=lt=queryValue` |
|
||||
| `=le=` & `<=` | Wykonuje zapytanie **mniejsze niż** lub **równe**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* są mniejsze lub równe *queryValue* | `/api/v2/myTable?q=columnA<=queryValue` <br> `/api/v2/myTable?q=columnA=le=queryValue` |
|
||||
| `>` & `=gt=` | Wykonuje zapytanie **większe niż**. Zwraca wszystkie wiersze z *myTable*, gdzie wartości w *columnA* są większe niż *queryValue* | `/api/v2/myTable?q=columnA>queryValue` <br> `/api/v2/myTable?q=columnA=gt=queryValue` |
|
||||
@ -65,7 +65,7 @@ Or even take advantage to extract sensitive information with Boolean queries or
|
||||
**Uwaga**: Tabela oparta na informacjach z aplikacji [**rsql-parser**](https://github.com/jirutka/rsql-parser).
|
||||
|
||||
## Wyciek informacji i enumeracja użytkowników
|
||||
Następujące zapytanie pokazuje punkt końcowy rejestracji, który wymaga parametru email, aby sprawdzić, czy istnieje jakikolwiek użytkownik zarejestrowany pod tym adresem email i zwrócić wartość prawda lub fałsz w zależności od tego, czy istnieje w bazie danych:
|
||||
Następujące zapytanie pokazuje punkt końcowy rejestracji, który wymaga parametru email, aby sprawdzić, czy istnieje jakikolwiek użytkownik zarejestrowany pod tym adresem e-mail i zwrócić wartość prawda lub fałsz w zależności od tego, czy istnieje w bazie danych:
|
||||
### Zapytanie
|
||||
```
|
||||
GET /api/registrations HTTP/1.1
|
||||
@ -215,7 +215,7 @@ Vary: Access-Control-Request-Method
|
||||
Vary: Access-Control-Request-Headers
|
||||
Access-Control-Allow-Origin: *
|
||||
```
|
||||
Ponownie korzystamy z filtrów i specjalnych operatorów, które pozwolą nam na alternatywny sposób uzyskania informacji o użytkownikach i ominięcia kontroli dostępu. Na przykład, filtruj według tych *użytkowników*, którzy zawierają literę “*a*” w swoim *ID* użytkownika:
|
||||
Ponownie wykorzystujemy filtry i specjalne operatory, które pozwolą nam na alternatywny sposób uzyskania informacji o użytkownikach i ominięcia kontroli dostępu. Na przykład, filtruj według tych *użytkowników*, którzy zawierają literę “*a*” w swoim *ID* użytkownika:
|
||||
### Request
|
||||
```
|
||||
GET /api/users?filter[users]=id=in=(*a*) HTTP/1.1
|
||||
@ -435,11 +435,11 @@ Access-Control-Allow-Origin: *
|
||||
}, {
|
||||
.......
|
||||
```
|
||||
## Podszywanie się lub Niebezpieczne Bezpośrednie Odwołania do Obiektów (IDOR)
|
||||
## Impersonacja lub Niebezpieczne Bezpośrednie Odwołania do Obiektów (IDOR)
|
||||
Oprócz użycia parametru `filter`, możliwe jest użycie innych parametrów, takich jak `include`, który pozwala na uwzględnienie w wyniku określonych parametrów (np. język, kraj, hasło...).
|
||||
|
||||
W następującym przykładzie pokazane są informacje o naszym profilu użytkownika:
|
||||
### Request
|
||||
W poniższym przykładzie pokazane są informacje o naszym profilu użytkownika:
|
||||
### Żądanie
|
||||
```
|
||||
GET /api/users?include=language,country HTTP/1.1
|
||||
Host: localhost:3000
|
||||
|
Loading…
x
Reference in New Issue
Block a user