Van die dokumentasie af:Azure App-diens is 'n HTTP-gebaseerde diens vir die gasheer van webtoepassings, REST API's en mobiele agterkante. Jy kan ontwikkel in jou gunsteling taal, of dit .NET, .NET Core, Java, Ruby, Node.js, PHP of Python is. Toepassings loop en skaal maklik op beide Windows- en Linux-gebaseerde omgewings.
Elke toepassing loop binne 'n sandput, maar isolasie hang af van die App-diensplanne
Toepassings in die Free- en Shared-vlakke loop op gedeelde VM's
Toepassings in die Standard- en Premium-vlakke loop op toegewyde VM's
Let daarop dat geen van hierdie isolasies ander algemene webkwesbaarhede (soos lêeroplaai of inspuitings) voorkom nie. En as 'n bestuursidentiteit gebruik word, kan dit in staat wees om sy toestemmings te kompromitteer.
Opname
# List webappsazwebapplist## Less informationazwebapplist--query"[].{hostName: defaultHostName, state: state, name: name, resourcegroup: resourceGroup}"# Get access restrictionsazwebappconfigaccess-restrictionshow--resource-group<res-group>-n<name># Remove access restrictionsazwebappconfigaccess-restrictionremove--resource-group<res-group>-n<name>--rule-name<rule-name># Get snapshotsazwebappconfigsnapshotlist--resource-group<res-group>-n<name># Restore snapshotazwebappconfigsnapshotrestore-g<res-group>-n<name>--time2018-12-11T23:34:16.8388367# Restart webappazwebapprestart--name<name>--resource-group<res-group>
# Get App Services and Function AppsGet-AzWebApp# Get only App ServicesGet-AzWebApp|?{$_.Kind-notmatch"functionapp"}
```bash #!/bin/bash
Get all App Service and Function Apps
Define Azure subscription ID
azure_subscription="your_subscription_id"
Log in to Azure
az login
Select Azure subscription
az account set --subscription $azure_subscription
Get all App Services in the specified subscription
list_app_services=$(az appservice list --query "[].{appServiceName: name, group: resourceGroup}" -o tsv)
Iterate over each App Service
echo "$list_app_services" | while IFS=$'\t' read -r appServiceName group; do
if [ "$service_type" == "functionapp" ]; then echo "Function App Name: $appServiceName" fi done
#### Kry geloofsbriewe & kry toegang tot die webapp-kode
Om toegang te kry tot die webapp-kode en geloofsbriewe te verkry, kan jy die volgende stappe volg:
1. Identifiseer die webapp se URL of domeinnaam.
2. Voer 'n DNS-opsoek uit om die IP-adres van die webapp te verkry.
3. Skandeer die webapp vir enige bekende kwesbaarhede of swak konfigurasies.
4. Indien die webapp 'n openbare bronkode-repo het, soos GitHub, kan jy probeer om die bronkode te bekom deur die repo te kloon of te aflaai.
5. As die webapp 'n databasis gebruik, kan jy probeer om toegang tot die databasis te verkry deur SQL-injeksie of ander databasis-aanvalle.
6. As die webapp 'n foutiewe lêerhantering het, kan jy probeer om toegang tot die lêerstelsel te verkry deur lêerpadmanipulasie of ander lêerhanteringsaanvalle.
7. As die webapp 'n beheerpaneel het, soos phpMyAdmin, kan jy probeer om toegang tot die beheerpaneel te verkry deur die standaardgebruikersnaam en -wagwoord te raai of deur 'n aanval op die beheerpaneel uit te voer.
8. As die webapp 'n foutiewe sessiehantering het, kan jy probeer om 'n sessie-oorkaping aan te wend om toegang tot die webapp as 'n gevalideerde gebruiker te verkry.
9. As die webapp 'n foutiewe toegangsbeheer het, kan jy probeer om toegang tot beperkte areas of funksies van die webapp te verkry deur toegangsbeheeromseiling of ander toegangsbeheeraanvalle.
Dit is belangrik om te onthou dat jy slegs hierdie stappe op 'n webapp mag uitvoer indien jy die wettige toestemming het om dit te doen, soos deur 'n eienaar van die webapp of 'n bevoegde outoriteit.
```bash
# Get connection strings that could contain credentials (with DBs for example)
az webapp config connection-string list --name <name> --resource-group <res-group>
## Check how to use the DBs connection strings in the SQL page
# Get credentials to access the code and DB credentials if configured.
az webapp deployment list-publishing-profiles --resource-group <res-group> -n <name>
# Get git URL to access the code
az webapp deployment source config-local-git --resource-group <res-group> -n <name>
# Access/Modify the code via git
git clone 'https://<username>:<password>@name.scm.azurewebsites.net/repo-name.git'
## In my case the username was: $nameofthewebapp and the password some random chars
## If you change the code and do a push, the app is automatically redeployed
Toegang tot die Docker-houer met die webtoepassing via ssh:
# Get ssh sessionazwebappcreate-remote-connection--subscription<SUBSCRIPTION-ID>--resource-group<RG-NAME>-n<APP-SERVICE-NAME>## If successfull you will get a message such as:#Verifying if app is running....#App is running. Trying to establish tunnel connection...#Opening tunnel on port: 39895#SSH is available { username: root, password: Docker! }## So from that machine ssh into that port (you might need generate a new ssh session to the jump host)sshroot@127.0.0.1-p39895
Funksieprogramme Basiese Inligting
Azure Funksieprogramme is 'n serverlose oplossing wat jou toelaat om minder kode te skryf, minder infrastruktuur te onderhou, en kostes te bespaar. In plaas daarvan om bekommerd te wees oor die implementering en onderhoud van bedieners, voorsien die wolk-infrastruktuur al die opgedateerde hulpbronne wat nodig is om jou programme te laat loop.
In die Azure-paneel word die integrasie tussen Azure Funksieprogramme en Azure API-bestuur gefasiliteer, wat dit moontlik maak om HTTP-trigger funksie-eindpunte as REST API's bloot te stel. Die API's wat op hierdie manier blootgestel word, word beskryf deur middel van 'n OpenAPI-definisie, wat 'n standaard, taalonafhanklike koppelvlak vir RESTful API's bied.
Verder kan 'n Funksieprogram dalk sekere eindpunte hê wat 'n sekere vlak van outentisering vereis, soos "admin" of "anoniem". 'n Aanvaller kan probeer om toegang te verkry tot die anoniem toegelate eindpunte om die beperkings te omseil en toegang te verkry tot sensitiewe data of funksionaliteit.