# GCP - App Engine Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

## `App Engine`

Per informazioni su App Engine consulta:

{{#ref}}
../gcp-services/gcp-app-engine-enum.md
{{#endref}}

### `appengine.memcache.addKey` | `appengine.memcache.list` | `appengine.memcache.getKey` | `appengine.memcache.flush`

Con questi permessi è possibile:

- Aggiungere una chiave
- Elencare le chiavi
- Recuperare una chiave
- Eliminare

> [!CAUTION]
> Tuttavia, **non sono riuscito a trovare alcun modo per accedere a queste informazioni dalla cli**, solo dalla **web console** dove è necessario conoscere il **Key type** e il **Key name**, oppure dall'**app engine running app**.
>
> Se conosci modi più semplici per usare questi permessi, invia una Pull Request!

### `logging.views.access`

Con questo permesso è possibile **vedere i log dell'App**:
```bash
gcloud app logs tail -s <name>
```
### Eliminazione di servizi e versioni

I permessi `appengine.versions.delete`, `appengine.versions.list` e `appengine.services.list` consentono di gestire e cancellare versioni specifiche di un'applicazione App Engine, il che può influire sul traffico se è suddiviso o se viene rimossa l'unica versione stabile. Nel frattempo, i permessi `appengine.services.delete` e `appengine.services.list` consentono di elencare e cancellare interi servizi — un'azione che interrompe immediatamente tutto il traffico e la disponibilità delle versioni associate.
```bash
gcloud app versions delete <VERSION_ID>
gcloud app services delete <SERVICE_NAME>
```
### Leggi il codice sorgente

Il codice sorgente di tutte le versioni e dei servizi è **memorizzato nel bucket** con il nome **`staging.<proj-id>.appspot.com`**. Se hai write access puoi leggere il codice sorgente e cercare **vulnerabilities** e **sensitive information**.

### Modifica il codice sorgente

Modifica il codice sorgente per rubare le credentials se vengono inviate o per eseguire un defacement web attack.

{{#include ../../../banners/hacktricks-training.md}}
