Az Static Web Apps
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Static Web Apps Basiese Inligting
Azure Static Web Apps is ’n wolkdienste vir die aanbied van statische web apps met outomatiese CI/CD vanaf repositories soos GitHub. Dit bied globale inhoudsaflewering, serverless agtergronde, en ingeboude HTTPS, wat dit veilig en skaalbaar maak. Tog, selfs al word die diens “statisch” genoem, beteken dit nie dat dit heeltemal veilig is nie. Risiko’s sluit verkeerd geconfigureerde CORS, onvoldoende outentisering, en inhoudsmanipulasie in, wat apps aan aanvalle soos XSS en datalekke kan blootstel as dit nie behoorlik bestuur word nie.
Ontplooiing Outentisering
Tip
Wanneer ’n Statische App geskep word, kan jy die ontplooiing outentigingsbeleid tussen Ontplooiingstoken en GitHub Actions werkvloei kies.
- Ontplooiingstoken: ’n Token word gegenereer en gebruik om die ontplooiingsproses te outentiseer. Enigeen met hierdie token is genoeg om ’n nuwe weergawe van die app te ontplooi. ’n Github Action word outomaties ontplooi in die repo met die token in ’n geheim om ’n nuwe weergawe van die app te ontplooi elke keer as die repo opgedateer word.
- GitHub Actions werkvloei: In hierdie geval word ’n baie soortgelyke Github Action ook in die repo ontplooi en die token word ook in ’n geheim gestoor. Hierdie Github Action het egter ’n verskil, dit gebruik die
actions/github-script@v6aksie om die IDToken van die repository te kry en dit te gebruik om die app te ontplooi. - Selfs al word in albei gevalle die aksie
Azure/static-web-apps-deploy@v1met ’n token in dieazure_static_web_apps_api_tokenparam gebruik, is ’n willekeurige token met ’n geldige formaat soos12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345net genoeg om die app te ontplooi aangesien die outentisering met die IDToken in diegithub_id_tokenparam gedoen word.
Web App Basiese Outentisering
Dit is moontlik om ’n wagwoord te konfigureer om toegang tot die Web App te verkry. Die webkonsol laat toe om dit te konfigureer om slegs staging omgewings of beide staging en die produksie omgewing te beskerm.
So lyk ’n wagwoord beskermde web app op die tyd van skryf:

Dit is moontlik om te sien of enige wagwoord gebruik word en watter omgewings beskerm word met:
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"
However, this won’t show the password in clear text, just something like: "password": "**********************".
### Routes and Roles
Routes definieer hoe inkomende HTTP versoeke hanteer word binne ’n statiese webtoepassing. Geconfigureer in die staticwebapp.config.json lêer, beheer hulle URL herskrywing, herleidings, toegangbeperkings, en rolgebaseerde outorisering, wat behoorlike hulpbronhantering en sekuriteit verseker.
Some example:
{
"routes": [
{
"route": "/",
"rewrite": "/index.html"
},
{
"route": "/about",
"rewrite": "/about.html"
},
{
"route": "/api/*",
"allowedRoles": ["authenticated"]
},
{
"route": "/admin",
"redirect": "/login",
"statusCode": 302
},
{
"route": "/google",
"redirect": "https://google.com",
"statusCode": 307
}
],
"navigationFallback": {
"rewrite": "/index.html",
"exclude": ["/api/*", "/assets/*"]
}
}
Let op hoe dit moontlik is om ’n pad met ’n rol te beskerm, dan sal gebruikers moet autentiseer by die app en daardie rol toegeken moet word om toegang tot die pad te verkry. Dit is ook moontlik om uitnodigings te skep wat spesifieke rolle aan spesifieke gebruikers toeken wat via EntraID, Facebook, GitHub, Google, Twitter aanmeld, wat nuttig kan wees om voorregte binne die app te verhoog.
Tip
Let daarop dat dit moontlik is om die App so te konfigureer dat veranderings aan die
staticwebapp.config.jsonlêer nie aanvaar word nie. In hierdie geval mag dit nie genoeg wees om net die lêer van Github te verander nie, maar ook om die instelling in die App te verander.
Die staging URL het hierdie formaat: https://<app-subdomain>-<PR-num>.<region>.<res-of-app-domain> soos: https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net
Snippets
Dit is moontlik om HTML-snippets binne ’n statiese web app te stoor wat binne die app gelaai sal word. Dit kan gebruik word om kwaadwillige kode in die app in te voeg, soos ’n JS-kode om geloofsbriewe te steel, ’n keylogger… Meer inligting in die voorregte verhoging afdeling.
Managed Identities
Azure Static Web Apps kan gekonfigureer word om managed identities te gebruik, egter, soos genoem in this FAQ word hulle slegs ondersteun om geheime uit Azure Key Vault vir autentisering doeleindes te onttrek, nie om toegang tot ander Azure hulpbronne te verkry nie.
Vir meer inligting kan jy ’n Azure-gids vind oor hoe om ’n vault geheim in ’n statiese app te gebruik in https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
Enumeration
# 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 current snippets
az rest --method GET \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/trainingdemo/snippets?api-version=2022-03-01"
# 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"
# Check connected backends
az staticwebapp backends show --name <name> --resource-group <res-group>
Voorbeelde om Web Apps te genereer
Jy kan ’n mooi voorbeeld vind om ’n web app te genereer in die volgende skakel: https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github
- Fork die repository https://github.com/staticwebdev/react-basic/generate na jou GitHub-rekening en noem dit
my-first-static-web-app - Skep ’n Static Web App in die Azure-portaal deur die Github-toegang te konfigureer en die voorheen geforkte nuwe repository te kies
- Skep dit, en wag ’n paar minute, en kyk na jou nuwe bladsy!
Privilege Escalation en Post Exploitation
Alle inligting oor privilege escalation en post exploitation in Azure Static Web Apps kan in die volgende skakel gevind word:
Verwysings
- https://learn.microsoft.com/en-in/azure/app-service/overview
- https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

