# GCP - App Engine Post Exploitation

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

## `App Engine`

App Engine に関する情報は以下を参照してください：

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

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

これらの権限により、次のことが可能です：

- キーを追加する
- キーを一覧表示する
- キーを取得する
- キーを削除する

> [!CAUTION]
> ただし、私は **couldn't find any way to access this information from the cli**、**web console** からのみアクセスでき、そこで **Key type** と **Key name** を知る必要があります、または a**pp engine running app** からアクセスします。
>
> これらの権限を使うより簡単な方法をご存知であれば、Pull Request を送ってください！

### `logging.views.access`

この権限があれば **アプリのログを見る** ことが可能です：
```bash
gcloud app logs tail -s <name>
```
### サービスとバージョンの削除

`appengine.versions.delete`、`appengine.versions.list`、および `appengine.services.list` の権限は、App Engine アプリケーションの特定のバージョンを管理・削除することを許可します。トラフィックが分割されている場合や唯一の安定版が削除された場合に、トラフィックに影響を与える可能性があります。一方で、`appengine.services.delete` と `appengine.services.list` の権限はサービス全体の一覧表示および削除を許可し、これは関連するバージョンの可用性と全トラフィックを即座に中断する操作です。
```bash
gcloud app versions delete <VERSION_ID>
gcloud app services delete <SERVICE_NAME>
```
### ソースコードの閲覧

すべてのバージョンおよびサービスのソースコードは **bucket に格納されています**。名前は **`staging.<proj-id>.appspot.com`** です。そこに対する書き込み権限があれば、ソースコードを読み、**脆弱性**や**機密情報**を検索できます。

### ソースコードの改変

送信されているcredentialsを盗むためにソースコードを改変したり、defacement web attackを実行したりします。

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