Skip to main content
  1. Blogposts/

Wsdl: kartan till webbtjänstens hemligheter 🗺️ 🍔

·710 words·4 mins· loading · · ·
Rasmus
Author
Rasmus
Att dela en ide eller två kan vara bra för hjärnan
Table of Contents

Du står framför en server – en digital ö med okända vatten. Kanske har du en känsla av att något döljer sig under ytan. En endpoint här, en parameter där… Men hur hittar man riktiga skatten? Det är som att leta efter en dörr i mörkret – tills du hittar kartan. WSDL är den där guldklimpen som visar exakt var dörrarna sitter, hur de öppnas, och vilka monster som väntar innanför. Låt oss tända facklan. 🔦


När XML Blir En Skattkarta 🏴‍☠️
#

WSDL är webbtjänstens sätt att viska: “Här är alla mina hemligheter.” Tänk dig en restaurangmeny där varje rätt inte bara har ett namn, utan också en detaljerad beskrivning av ingredienser, tillagningsmetod och hur du beställer. Eller en Ikea-montageanvisning som visar både vilka skruvar som behövs och var du köper dem. Det är WSDL – en teknisk manual skriven i XML som avslöjar:

  • Vilka operationer tjänsten kan utföra (t.ex. “Hämta kunddata” eller “Starta raket” 🚀)
  • Var den finns (som en GPS-koordinat för tjänsten)
  • Hur man pratar med den (vilket format meddelandena måste ha)

Men här är kruxet: många utvecklare glömmer att WSDL-filer ibland är som hemliga tunnlar bakom brandväggar. De ligger gömd i mappar som /wsdl eller aktiveras genom att lägga till ?wsdl i en URL. Som att hitta en dold knapp i en bokhylla. 📚


🧭 WSDL:s Struktur – En Guide för Upptäcktsresande
#

Roten av allt: <wsdl:definitions> Det här är kartans ram. Här deklareras namnområden – som att säga “den här kartan täcker Skattkammarön, inte Neverland”. Inuti finns alla andra delar, strukturerade som kapitel i en bok.

<wsdl:types>: Datatypernas Språk Här definieras vilka sorts brev du kan skicka. Till exempel ett LoginRequest som kräver username och password – som att skriva ett kuvert med rätt adressformat. ✉️

<wsdl:message>: Meddelandens Dans Varje operation har två danspartner: ett SoapIn-meddelande (det du skickar) och ett SoapOut-meddelande (det du får tillbaka). Tänk en brevväxling där varje brev måste ha exakt rätt frimärke.

<wsdl:binding>: Protokollets Regelbok Hur ska meddelandena paketeras? Använder vi SOAP över HTTP, som ett brev i ett kuvert? Eller något annat? Här anges även soapAction – en hemlig handskakning som säger “jag vet hur man pratar med den här tjänsten”. 🤝

<wsdl:service>: Slutstationens Adress Hittar du <soap:address location="http://localhost:80/wsdl"/>? Grattis, du har hittat tjänstens fysiska läge – som en pirat som ser land på horisonten. ⚓


🔐 Dolda Portar och Farliga Operationer
#

Exemplet avslöjade två farliga operationer:

  1. Login(username, password)
  2. ExecuteCommand(cmd)

Det här är som att hitta en lapp med texten “lösenordet är under dörrmattan” bredvid en övergiven dator. 🖥️ En WSDL-fil med ExecuteCommand är en inbjudan till katastrof – som att ha en fjärrkontroll till en robot utan lösenord.

Så hittar du dessa kartor:

  • Directory fuzzing: Skicka ut en armé av robotar (t.ex. dirb eller gobuster) som knackar på varje dörr och lyssnar efter ekot av en tom mapp.
  • Parameter fuzzing: Testa kombinationer som ?wsdl, ?disco, eller /api/example.wsdl. Det är som att prova alla nycklar på ett gammalt nyckelring. 🗝️

Lyckat fynd: En klient som en gång hittade http://10.10.10.10:3002/wsdl?wsdl – en fullständig manual till en oskyddad webbtjänst.


🎨 Konsten att Fuzza Fram WSDL
#

Verktyg är penslar, tekniken är konsten.

  • dirb: En bred borste som täcker stora ytor snabbt.
  • ffuf: En fin pensel för detaljerade parameterkombinationer.
  • Tips: Börja med vanliga sökvägar som /wsdl, /webservice, eller api/v1?wsdl.

Tänk på fuzzing som att sjunga mot en bergvägg – vissa toner (sökvägar) ger ekon (svar) som avslöjar dolda grottor. 🎶 Ju fler toner du testar, desto större chans att hitta en ingång.


Din Nästa Uppdrag, Om Du Vågar… 🚀
#

WSDL-filer är som kartor i en cyberpunk-roman – de kan leda dig till guld eller göra att du hamnar i en fälla. Så här börjar du:

  1. Sätt upp en labbmiljö där du kan testa fuzzing mot en säker målserver.
  2. Lär dig läsa WSDL-filer som en poet läser dikter – leta efter ord som Execute, Admin, eller Command.
  3. Experimentera med SOAP-requests i verktyg som Postman eller Burp Suite.

Glöm inte: Varje WSDL-fil du hittar är en berättelse. Kanske är det en tragisk historia om en utvecklare som glömde stänga dörren – eller en saga om hur du räddade dagen genom att hitta en säkerhetsbrist. 🌌

![[bild.png]]

Vad väntar du på? Det finns kartor där ute som väntar på att bli upptäckta. 🧭