Django
Reading time: 1 minute
{{#include /banners/hacktricks-training.md}}
Manipolazione della Cache per RCE
Il metodo di archiviazione della cache predefinito di Django è Python pickles, che può portare a RCE se l'input non attendibile viene de-pickled. Se un attaccante riesce a ottenere accesso in scrittura alla cache, può elevare questa vulnerabilità a RCE sul server sottostante.
La cache di Django è memorizzata in uno dei quattro luoghi: Redis, memoria, file, o un database. La cache memorizzata in un server Redis o in un database è la più probabile vettore di attacco (iniezione Redis e iniezione SQL), ma un attaccante potrebbe anche essere in grado di utilizzare la cache basata su file per trasformare una scrittura arbitraria in RCE. I manutentori hanno contrassegnato questo come un non-problema. È importante notare che la cartella dei file di cache, il nome della tabella SQL e i dettagli del server Redis varieranno in base all'implementazione.
Questo rapporto di HackerOne fornisce un ottimo esempio riproducibile di sfruttamento della cache di Django memorizzata in un database SQLite: https://hackerone.com/reports/1415436
{{#include /banners/hacktricks-training.md}}