mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
9 lines
1.6 KiB
Markdown
9 lines
1.6 KiB
Markdown
# Django
|
|
|
|
## Manipulacija kešom za RCE
|
|
Podrazumevani metod skladištenja keša u Djangou je [Python pickles](https://docs.python.org/3/library/pickle.html), što može dovesti do RCE ako se [neprovereni ulaz ne de-pikluje](https://media.blackhat.com/bh-us-11/Slaviero/BH_US_11_Slaviero_Sour_Pickles_Slides.pdf). **Ako napadač može da dobije pristup za pisanje u keš, može da eskalira ovu ranjivost na RCE na osnovnom serveru**.
|
|
|
|
Django keš se skladišti na jednom od četiri mesta: [Redis](https://github.com/django/django/blob/48a1929ca050f1333927860ff561f6371706968a/django/core/cache/backends/redis.py#L12), [memoriji](https://github.com/django/django/blob/48a1929ca050f1333927860ff561f6371706968a/django/core/cache/backends/locmem.py#L16), [fajlovima](https://github.com/django/django/blob/48a1929ca050f1333927860ff561f6371706968a/django/core/cache/backends/filebased.py#L16), ili [bazi podataka](https://github.com/django/django/blob/48a1929ca050f1333927860ff561f6371706968a/django/core/cache/backends/db.py#L95). Keš koji se skladišti na Redis serveru ili u bazi podataka su najverovatniji napadački vektori (Redis injekcija i SQL injekcija), ali napadač takođe može da iskoristi keš zasnovan na fajlovima da pretvori proizvoljno pisanje u RCE. Održavaoci su ovo označili kao neproblematično. Važno je napomenuti da će se folder sa keš fajlovima, ime SQL tabele i detalji Redis servera razlikovati u zavisnosti od implementacije.
|
|
|
|
Ovaj HackerOne izveštaj pruža odličan, reproduktivni primer eksploatacije Django keša koji se skladišti u SQLite bazi podataka: https://hackerone.com/reports/1415436
|