mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-13 21:36:23 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# Az - Static Web Apps
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Información Básica sobre Aplicaciones Web Estáticas
|
||||
|
||||
Azure Static Web Apps es un servicio en la nube para alojar **aplicaciones web estáticas con CI/CD automático desde repositorios como GitHub**. Ofrece entrega de contenido global, backends sin servidor y HTTPS integrado, lo que lo hace seguro y escalable. Sin embargo, los riesgos incluyen CORS mal configurado, autenticación insuficiente y manipulación de contenido, lo que puede exponer las aplicaciones a ataques como XSS y filtración de datos si no se gestionan adecuadamente.
|
||||
|
||||
> [!TIP]
|
||||
> Cuando se crea una Aplicación Estática, puedes elegir la **política de autorización de despliegue** entre **Token de despliegue** y **flujo de trabajo de GitHub Actions**.
|
||||
|
||||
|
||||
### Autenticación de la Aplicación Web
|
||||
|
||||
Es posible **configurar una contraseña** para acceder a la Aplicación Web. La consola web permite configurarla para proteger solo los entornos de staging o tanto el de staging como el de producción.
|
||||
|
||||
Así es como, en el momento de escribir, se ve una aplicación web protegida por contraseña:
|
||||
|
||||
<figure><img src="../../../images/azure_static_password.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
Es posible ver **si se está utilizando alguna contraseña** y qué entornos están protegidos con:
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--url "/subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.Web/staticSites/<app-name>/config/basicAuth?api-version=2024-04-01"
|
||||
```
|
||||
Sin embargo, esto **no mostrará la contraseña en texto claro**, solo algo como: `"password": "**********************"`.
|
||||
|
||||
### Rutas
|
||||
|
||||
Las rutas definen **cómo se manejan las solicitudes HTTP entrantes** dentro de una aplicación web estática. Configuradas en el **`staticwebapp.config.json`** archivo, controlan la reescritura de URL, redirecciones, restricciones de acceso y autorización basada en roles, asegurando un manejo adecuado de recursos y seguridad.
|
||||
|
||||
Algunos ejemplos:
|
||||
```json
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"route": "/",
|
||||
"rewrite": "/index.html"
|
||||
},
|
||||
{
|
||||
"route": "/about",
|
||||
"rewrite": "/about.html"
|
||||
},
|
||||
{
|
||||
"route": "/api/*",
|
||||
"allowedRoles": ["authenticated"]
|
||||
},
|
||||
{
|
||||
"route": "/admin",
|
||||
"redirect": "/login",
|
||||
"statusCode": 302
|
||||
}
|
||||
],
|
||||
"navigationFallback": {
|
||||
"rewrite": "/index.html",
|
||||
"exclude": ["/api/*", "/assets/*"]
|
||||
}
|
||||
}
|
||||
```
|
||||
## Enumeración
|
||||
```bash
|
||||
# List Static Webapps
|
||||
az staticwebapp list --output table
|
||||
|
||||
# Get Static Webapp details
|
||||
az staticwebapp show --name <name> --resource-group <res-group> --output table
|
||||
|
||||
# Get appsettings
|
||||
az staticwebapp appsettings list --name <name>
|
||||
|
||||
# Get env information
|
||||
az staticwebapp environment list --name <name>
|
||||
az staticwebapp environment functions --name <name>
|
||||
|
||||
# Get API key
|
||||
az staticwebapp secrets list --name <name>
|
||||
|
||||
# Get invited users
|
||||
az staticwebapp users list --name <name>
|
||||
|
||||
# Get database connections
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/databaseConnections?api-version=2021-03-01"
|
||||
|
||||
## 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/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/databaseConnections/default/show?api-version=2021-03-01"
|
||||
```
|
||||
## Ejemplos para generar aplicaciones web
|
||||
|
||||
Puedes encontrar un buen ejemplo para generar una aplicación web en el siguiente enlace: [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. Haz un fork del repositorio https://github.com/staticwebdev/react-basic/generate a tu cuenta de GitHub y nómbralo `my-first-static-web-app`
|
||||
2. En el portal de Azure, crea una Aplicación Web Estática configurando el acceso a GitHub y seleccionando el nuevo repositorio previamente bifurcado
|
||||
3. Créalo, espera unos minutos y ¡verifica tu nueva página!
|
||||
|
||||
## Post Explotación
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-static-web-apps-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Referencias
|
||||
|
||||
- [https://learn.microsoft.com/en-in/azure/app-service/overview](https://learn.microsoft.com/en-in/azure/app-service/overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user