diff --git a/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md
index e9ba42281..51763f44e 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md
@@ -4,13 +4,18 @@
## Static Web Apps Basic Information
-Azure Static Web Apps è un servizio cloud per l'hosting di **app web statiche con CI/CD automatico da repository come GitHub**. Offre distribuzione globale dei contenuti, backend serverless e HTTPS integrato, rendendolo sicuro e scalabile. Tuttavia, i rischi includono CORS mal configurati, autenticazione insufficiente e manomissione dei contenuti, che possono esporre le app ad attacchi come XSS e data leakage se non gestiti correttamente.
+Azure Static Web Apps è un servizio cloud per l'hosting di **app web statiche con CI/CD automatico da repository come GitHub**. Offre distribuzione globale dei contenuti, backend serverless e HTTPS integrato, rendendolo sicuro e scalabile. Tuttavia, anche se il servizio è chiamato "statico", non significa che sia completamente sicuro. I rischi includono CORS mal configurati, autenticazione insufficiente e manomissione dei contenuti, che possono esporre le app ad attacchi come XSS e data leakage se non gestiti correttamente.
+
+### Deployment Authentication
> [!TIP]
-> Quando viene creata un'App Statica, puoi scegliere la **politica di autorizzazione al deployment** tra **Token di deployment** e **workflow di GitHub Actions**.
+> Quando viene creata un'App Statica, puoi scegliere la **politica di autorizzazione per il deployment** tra **Token di deployment** e **workflow di GitHub Actions**.
+- **Token di deployment**: Viene generato un token utilizzato per autenticare il processo di deployment. Chiunque con **questo token è sufficiente per distribuire una nuova versione dell'app**. Un **Github Action viene distribuito automaticamente** nel repo con il token in un segreto per distribuire una nuova versione dell'app ogni volta che il repo viene aggiornato.
+- **Workflow di GitHub Actions**: In questo caso, viene distribuito un Github Action molto simile nel repo e il **token è anche memorizzato in un segreto**. Tuttavia, questo Github Action ha una differenza, utilizza l'azione **`actions/github-script@v6`** per ottenere l'IDToken del repository e usarlo per distribuire l'app.
+- Anche se in entrambi i casi viene utilizzata l'azione **`Azure/static-web-apps-deploy@v1`** con un token nel parametro `azure_static_web_apps_api_token`, in questo secondo caso un token casuale con un formato valido come `12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345` è sufficiente per distribuire l'app poiché l'autorizzazione avviene con l'IDToken nel parametro `github_id_token`.
-### Web App Authentication
+### Web App Basic Authentication
È possibile **configurare una password** per accedere all'App Web. La console web consente di configurarla per proteggere solo gli ambienti di staging o sia gli ambienti di staging che quello di produzione.
@@ -18,7 +23,6 @@ Questo è come appare un'app web protetta da password al momento della scrittura
-
È possibile vedere **se viene utilizzata una password** e quali ambienti sono protetti con:
```bash
az rest --method GET \
@@ -26,9 +30,9 @@ az rest --method GET \
```
Tuttavia, questo **non mostrerà la password in chiaro**, solo qualcosa come: `"password": "**********************"`.
-### Routes
+### Routes & Roles
-Le route definiscono **come vengono gestite le richieste HTTP in arrivo** all'interno di un'app web statica. Configurate nel file **`staticwebapp.config.json`**, controllano la riscrittura degli URL, le redirezioni, le restrizioni di accesso e l'autorizzazione basata sui ruoli, garantendo una corretta gestione delle risorse e sicurezza.
+Le route definiscono **come vengono gestite le richieste HTTP in entrata** all'interno di un'app web statica. Configurate nel file **`staticwebapp.config.json`**, controllano la riscrittura degli URL, i reindirizzamenti, le restrizioni di accesso e l'autorizzazione basata sui ruoli, garantendo una corretta gestione delle risorse e sicurezza.
Alcuni esempi:
```json
@@ -58,7 +62,20 @@ Alcuni esempi:
}
}
```
-## Enumerazione
+Nota come sia possibile **proteggere un percorso con un ruolo**, quindi, gli utenti dovranno autenticarsi nell'app e ricevere quel ruolo per accedere al percorso. È anche possibile **creare inviti** che concedono ruoli specifici a utenti specifici che accedono tramite EntraID, Facebook, GitHub, Google, Twitter, il che potrebbe essere utile per elevare i privilegi all'interno dell'app.
+
+> [!TIP]
+> Nota che è possibile configurare l'App in modo che **le modifiche al file `staticwebapp.config.json`** non vengano accettate. In questo caso, potrebbe non essere sufficiente cambiare il file da Github, ma anche **cambiare l'impostazione nell'App**.
+
+L'URL di staging ha questo formato: `https://-..` come: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net`
+
+### Managed Identities
+
+Azure Static Web Apps può essere configurato per utilizzare **managed identities**, tuttavia, come menzionato in [questa FAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-), sono supportate solo per **estrarre segreti da Azure Key Vault per scopi di autenticazione, non per accedere ad altre risorse Azure**.
+
+Per ulteriori informazioni puoi trovare una guida di Azure su come utilizzare un segreto del vault in un'app statica su https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
+
+## Enumeration
```bash
# List Static Webapps
az staticwebapp list --output table
@@ -86,19 +103,24 @@ az rest --method GET \
## Once you have the database connection name ("default" by default) you can get the connection string with the credentials
az rest --method POST \
--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//databaseConnections/default/show?api-version=2021-03-01"
+
+# Check connected backends
+az staticwebapp backends show --name --resource-group
```
## Esempi per generare Web App
-Puoi trovare un bel esempio per generare un'app web nel seguente link: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github)
+Puoi trovare un bel esempio per generare un'app web al seguente link: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github)
1. Forka il repository https://github.com/staticwebdev/react-basic/generate nel tuo account GitHub e chiamalo `my-first-static-web-app`
2. Nel portale Azure crea una Static Web App configurando l'accesso a Github e selezionando il nuovo repository forkato in precedenza
3. Crealo, aspetta qualche minuto e controlla la tua nuova pagina!
-## Post Exploitation
+## Escalation dei privilegi e Post Exploitation
+
+Tutte le informazioni sull'escalation dei privilegi e sul post exploitation in Azure Static Web Apps possono essere trovate al seguente link:
{{#ref}}
-../az-privilege-escalation/az-static-web-apps-post-exploitation.md
+../az-privilege-escalation/az-static-web-apps-privesc.md
{{#endref}}
## Riferimenti