From c89dac741b11b377b0c1865a59234fcae0e79f35 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 15 Apr 2025 00:02:14 +0000 Subject: [PATCH] Translated ['src/pentesting-web/rsql-injection.md'] to sr --- src/pentesting-web/rsql-injection.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/pentesting-web/rsql-injection.md b/src/pentesting-web/rsql-injection.md index 1c08db686..e5c45ae7a 100644 --- a/src/pentesting-web/rsql-injection.md +++ b/src/pentesting-web/rsql-injection.md @@ -7,7 +7,7 @@ ## RSQL Injection ## Šta je RSQL? -RSQL je jezik upita dizajniran za parametarsko filtriranje ulaza u RESTful API-ima. Zasnovan na FIQL (Feed Item Query Language), koji je prvobitno definisao Mark Nottingham za upitivanje Atom feed-ova, RSQL se izdvaja svojom jednostavnošću i sposobnošću da izrazi složene upite na kompaktan i URI-kompatibilan način preko HTTP-a. Ovo ga čini odličnim izborom kao opšti jezik upita za pretraživanje REST krajnjih tačaka. +RSQL je jezik upita dizajniran za parametarsko filtriranje unosa u RESTful API-ima. Zasnovan na FIQL (Feed Item Query Language), koji je prvobitno definisao Mark Nottingham za upitivanje Atom feed-ova, RSQL se izdvaja svojom jednostavnošću i sposobnošću da izrazi složene upite na kompaktan i URI-kompatibilan način preko HTTP-a. Ovo ga čini odličnim izborom kao opšti jezik upita za pretraživanje REST krajnjih tačaka. ## Pregled RSQL Injection je ranjivost u web aplikacijama koje koriste RSQL kao jezik upita u RESTful API-ima. Slično [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection) i [LDAP Injection](https://owasp.org/www-community/attacks/LDAP_Injection), ova ranjivost se javlja kada RSQL filteri nisu pravilno sanitizovani, omogućavajući napadaču da ubaci zlonamerne upite kako bi pristupio, izmenio ili obrisao podatke bez autorizacije. @@ -26,7 +26,7 @@ Ako aplikacija ne validira ispravno korisnički unos, napadač bi mogao da manip Ili čak iskoristiti za ekstrakciju osetljivih informacija pomoću Boolean upita ili ugnježdenih podupita. ## Rizici -- **Izlaganje osetljivih podataka:** Napadač može da dohvati informacije koje ne bi trebale biti dostupne. +- **Izloženost osetljivih podataka:** Napadač može da dohvati informacije koje ne bi trebale biti dostupne. - **Modifikacija ili brisanje podataka:** Injekcija filtera koji menjaju zapise u bazi podataka. - **Povećanje privilegija:** Manipulacija identifikatorima koji dodeljuju uloge kroz filtere kako bi se prevarila aplikacija pristupom sa privilegijama drugih korisnika. - **Izbegavanje kontrola pristupa:** Manipulacija filterima za pristup ograničenim podacima. @@ -87,8 +87,8 @@ Ovi parametri pomažu u optimizaciji API odgovora: | `fields[resource]` | Definiše koje polja da vrati u odgovoru | `/api/v2/users?fields[users]=id,name,email` | | `search` | Izvodi fleksibilniju pretragu | `/api/v2/posts?search=technology` | -## Izdavanje informacija i enumeracija korisnika -Sledeći zahtev prikazuje endpoint za registraciju koji zahteva parametar email kako bi proverio da li postoji neki korisnik registrovan sa tim email-om i vratio true ili false u zavisnosti od toga da li postoji u bazi podataka: +## Curjenje informacija i enumeracija korisnika +Sledeći zahtev prikazuje endpoint za registraciju koji zahteva parametar email kako bi proverio da li postoji neki korisnik registrovan sa tim emailom i vratio true ili false u zavisnosti od toga da li postoji u bazi podataka: ### Zahtev ``` GET /api/registrations HTTP/1.1 @@ -209,7 +209,7 @@ Access-Control-Allow-Origin: * } ``` ## Izbegavanje autorizacije -U ovom scenariju, počinjemo od korisnika sa osnovnom ulogom i u kojem nemamo privilegovane dozvole (npr. administrator) da pristupimo listi svih korisnika registrovanih u bazi podataka: +U ovom scenariju, počinjemo od korisnika sa osnovnom ulogom i u kojem nemamo privilegovane dozvole (npr. administrator) za pristup listi svih korisnika registrovanih u bazi podataka: ### Zahtev ``` GET /api/users HTTP/1.1 @@ -238,7 +238,7 @@ Vary: Access-Control-Request-Method Vary: Access-Control-Request-Headers Access-Control-Allow-Origin: * ``` -Ponovo koristimo filtre i specijalne operatore koji će nam omogućiti alternativni način da dobijemo informacije o korisnicima i izbegnemo kontrolu pristupa. Na primer, filtriramo *korisnike* koji sadrže slovo “*a*” u svom korisničkom *ID*-u: +Ponovo koristimo filtre i specijalne operatore koji će nam omogućiti alternativni način da dobijemo informacije o korisnicima i izbegnemo kontrolu pristupa. Na primer, filtriramo one *korisnike* koji sadrže slovo “*a*” u svom korisničkom *ID*-u: ### Request ``` GET /api/users?filter[users]=id=in=(*a*) HTTP/1.1 @@ -458,10 +458,10 @@ Access-Control-Allow-Origin: * }, { ....... ``` -## Impersonacija ili Nepouzdane Direktne Reference na Objekte (IDOR) +## Impersonacija ili Nesigurne Direktne Reference na Objekte (IDOR) Pored korišćenja `filter` parametra, moguće je koristiti i druge parametre kao što je `include` koji omogućava uključivanje određenih parametara u rezultat (npr. jezik, država, lozinka...). -U sledećem primeru, prikazane su informacije o našem korisničkom profilu: +U sledećem primeru, informacije o našem korisničkom profilu su prikazane: ### Zahtev ``` GET /api/users?include=language,country HTTP/1.1