• Diensten
    • Pentest
    • Netwerk Pentest
    • Website Security Check
    • WebShepherd
    • Phishing Campagne
    • Mystery Guest
    • Vulnerability Management
    • Incident Response
    • Quickscan
  • NetCaptain
  • Kennisbank
  • Partners
    • MSP
  • Over ons
    • Contact
    • Waarom CyberAnt
    • Kennisgroep Cyber Security
    • Nieuws
    • Vacatures
  • Inloggen
  • NL
    • EN
  • Menu Menu

XXE: Entity injection aanvallen

Met entity injection aanvallen kunnen applicaties aangevallen worden en datalekken veroorzaken. Dit gebeurd wanneer de XML parser onjuist geconfigureerd is. De meest gevaarlijke variant is XXE, wat staat voor XML eXternal Entity injection. Hierbij kunnen externe resources opgehaald worden, zoals willekeurige bestanden van de server of van andere locaties binnen het netwerk.

Wat is XML

XML (eXtendable Markup Language) is een taal die gebruikt wordt om data gestructureerd op te slaan. Het formaat hiervan is vooraf afgesproken, en is daardoor voor mens en machine te begrijpen. XML wordt op verschillende manieren toegepast, bijvoorbeeld om een browser te vertellen hoe deze pagina is opgebouwd. Een voorbeeld van een XML bestand ziet er als volgt uit:

John Doe
1
Groningen University

Het schoolsysteem kan een mogelijkheid bieden om nieuwe studenten te uploaden middels een XML-bestand. Gebruikers ervan kunnen het bovenstaande voorbeeld opslaan als een studenten.xml bestand. Na het uploaden kan het schoolsysteem het XML-bestand uitlezen en bevragen als een database. Dit zorgt ervoor dat XML zeer geschikt is om gestructureerde data uit te wisselen.

Wat zijn entities

Het XML-formaat ondersteund ook variabelen. Binnen XML wordt zo’n variabele een “entity” genoemd. Stel alle studenten komen van dezelfde school en om te voorkomen dat er 1.000 keer “Cyber University” getypt moet worden, kan het volgende gedaan worden:

John Doe
1
&school;

Bovenaan wordt nu de entity “school” aangemaakt, en deze wordt in het document gebruikt.

External entities

Het kan nog handiger: als de tekst “Cyber University” in een los bestand wordt aangeleverd, zodat het XML-bestand niet meer aangepast hoeft te worden, dan kan de naam ook extern ingeladen worden. Dit kan bijvoorbeeld vanaf een webadres of een lokaal ander bestand. Dit wordt “external entities” genoemd, ook wel bekend als XXE.

]>

John Doe
1
&school;

In het bovenstaande voorbeeld wordt de inhoud van het bestand “school.txt” uitgelezen en gebruikt. Dit is uiteraard handig, maar kan ook een beveiligingsprobleem opleveren. Als het XML-bestand namelijk ingeladen wordt op een server, dan kan er op deze manier bestanden uitgelezen worden die op de server staan. Stel, er staat in dezelfde map een bestand genaamd “passwords.config”, dan is het op deze manier mogelijk de wachtwoorden van de server af te halen, of bijvoorbeeld configuratiebestanden zoals het /etc/passwd bestand. Dit zou een enorm datalek kunnen veroorzaken!

Entity expansions

Een ander probleem wat op kan treden is “entity expansion”. Hiermee is het niet zo zeer mogelijk data stelen, maar wel de server onbereikbaar te maken. Een bekend voorbeeld hiervan is de “billion laughs attack”. Deze staat hieronder:












]>
&lol9;
Wat hier gebeurd is dat er een entity gemaakt wordt met de waarde “lol”. Vervolgens wordt er een nieuwe waarde gemaakt, met 10x de waarde van de entity. Het resultaat is nu dus “lollollollollollol lollollollol”. Dit proces wordt herhaald, totdat de entity lol9 een miljard keer het woord lol bevat. Aangezien een letter 1 byte in het geheugen neemt, neemt de laatste entity 3 miljard bytes in beslag, wat 3GB is. Dit is een enorme aanslag op de resources van de server, aangezien het resultaat niet alleen in het geheugen gezet moet worden, maar ook samengesteld moet worden. De meeste servers zullen hierdoor vastlopen, en mocht de server het overleven dan is de aanval eenvoudig op te schalen door een paar regels extra toe te voegen.

Voorkomen

Er is niet een standaard manier om entity injection en de billion laughs aanval te voorkomen. De meeste XML-parsers kennen wel een instelling die deze mogelijkheid uit kan schakelen. Raadpleeg daarom de handleiding.

Entity injection komt vaak voor in grotere softwarepakketten en maatwerksoftware. Tijdens een pentest controleert CyberAnt hierop.

Deel dit artikel
  • Delen op Facebook
  • Delen op X
  • Delen op WhatsApp
  • Delen op LinkedIn
  • Delen via e-mail

Zoeken

Search Search

Recente berichten

  • Pin of geen pin: de afweging rond certificate pinning in mobiele apps
  • TrapDoor supply-chain-aanval steelt wachtwoorden van ontwikkelaars
  • Magecart aanval maakt 8,8 miljoen slachtoffers wereldwijd
  • Opnieuw malware aangetroffen in VS Code Extensies
  • Grootschalige aanval op populaire npm-packages: miljoenen websites en apps mogelijk getroffen

CyberAnt is ISO gecertificeerd

Iso gecertificeerd

Tags

.DS Store anti-virus AWS broken access control clickjacking Cryptographic Failures cyberaanval CyberAnt Cybercrime cybercriminelen CyberRisk Cyber Security Datalek Entity injection Etisch Hacker Hacker Insecure Design Instellingen AWS ISO 9001 ISO 27001 IT Infrastructuur beschermen malware Mass Assignment aanval NetCaptain NetCat shell upgraden Netgear ProSAFE switches Open web application Security project Owasp path traversal penetration test pentest Ransomeware aanval Ransomware Responsible Disclosure secure coding Security Audit Security audits Security Misconfiguration Server-side request forgery (SSRF) Social Engineering SQL Injection supply chain attack Veilige webshop vulnerability management web applicatie scanning
CyberAnt is ISO gecertificeerd

Diensten

  • Pentest
  • Netwerk Pentest
  • NetCaptain
  • Website Security Check
  • WebShepherd
  • Phishing Campagne
  • Mystery Guest
  • Incident Response

Cyberant

  • Waarom CyberAnt
  • Partners
  • Kennisbank
  • Nieuws
  • Over ons

Contact

Marconiweg 1
3899 BR Zeewolde

info@cyberant.com
+31 (0)85 047 1590

© Copyright - CyberAnt 2024
  • Link naar Facebook
  • Link naar LinkedIn
  • Link naar Mail
Link naar: CVE-2016-7941 – XSS in Netgear ProSAFE switches Link naar: CVE-2016-7941 – XSS in Netgear ProSAFE switches CVE-2016-7941 – XSS in Netgear ProSAFE switchesNetgear ProSAFE switchesCyberAnt.com Link naar: Wat is clickjacking? Link naar: Wat is clickjacking? clickjackingCyberAnt.comWat is clickjacking?
Scroll naar bovenzijde Scroll naar bovenzijde Scroll naar bovenzijde

Deze site maakt gebruik van cookies. Door verder te surfen op de site gaat u akkoord met ons gebruik van cookies.

Accepteer instellingenVerberg de mededeling enkelInstellingen

Cookie en privacy instellingen



Hoe wij cookies gebruiken

We kunnen vragen om cookies op uw apparaat te plaatsen. We gebruiken cookies om ons te laten weten wanneer u onze websites bezoekt, hoe u met ons omgaat, om uw gebruikerservaring te verrijken en om uw relatie met onze website aan te passen.

Klik op de verschillende rubrieken voor meer informatie. U kunt ook enkele van uw voorkeuren wijzigen. Houd er rekening mee dat het blokkeren van sommige soorten cookies van invloed kan zijn op uw ervaring op onze websites en de services die we kunnen bieden.

Essentiële Website Cookies

Deze cookies zijn strikt noodzakelijk om u diensten aan te bieden die beschikbaar zijn via onze website en om sommige functies ervan te gebruiken.

Omdat deze cookies strikt noodzakelijk zijn om de website te leveren, heeft het weigeren ervan invloed op het functioneren van onze site. U kunt cookies altijd blokkeren of verwijderen door uw browserinstellingen te wijzigen en alle cookies op deze website geforceerd te blokkeren. Maar dit zal u altijd vragen om cookies te accepteren/weigeren wanneer u onze site opnieuw bezoekt.

We respecteren volledig als u cookies wilt weigeren, maar om te voorkomen dat we u telkens opnieuw vragen vriendelijk toe te staan om een cookie daarvoor op te slaan. U bent altijd vrij om u af te melden of voor andere cookies om een betere ervaring te krijgen. Als u cookies weigert, zullen we alle ingestelde cookies in ons domein verwijderen.

We bieden u een lijst met opgeslagen cookies op uw computer in ons domein, zodat u kunt controleren wat we hebben opgeslagen. Om veiligheidsredenen kunnen we geen cookies van andere domeinen tonen of wijzigen. U kunt deze controleren in de beveiligingsinstellingen van uw browser.

Overige externe diensten

We gebruiken ook verschillende externe services zoals Google Webfonts, Google Maps en externe videoproviders. Aangezien deze providers persoonlijke gegevens zoals uw IP-adres kunnen verzamelen, kunt u ze hier blokkeren. Houd er rekening mee dat dit de functionaliteit en het uiterlijk van onze site aanzienlijk kan verminderen. Wijzigingen zijn pas effectief zodra u de pagina herlaadt

Google Webfont Instellingen:

Google Maps Instellingen:

Google reCaptcha instellingen:

Vimeo en Youtube video's insluiten:

Privacybeleid

U kunt meer lezen over onze cookies en privacy-instellingen op onze Privacybeleid-pagina.

Privacyverklaring
Accepteer instellingenVerberg de mededeling enkel