An attacker injects malicious content into an application's DTD in an attempt to produce a negative technical impact. DTDs are used to describe how XML documents are processed. Certain malformed DTDs (for example, those with excessive entity expansion as described in CAPEC 197) can cause the XML parsers that process the DTDs to consume excessive resources resulting in resource depletion.
Description
Attack Execution Flow
Step 1
Explore[Survey the target] Using a browser or an automated tool, an attacker records all instances of web services to process XML requests.
Use an automated tool to record all instances of URLs to process XML requests.
Use a browser to manually explore the website and analyze how the application processes XML requests.
[Survey the target] Utilizzando un browser o uno strumento automatizzato, un attaccante registra tutte le istanze di servizi web per elaborare richieste XML.
Utilizza uno strumento automatizzato per registrare tutte le istanze di URL per elaborare richieste XML.
Utilizza un browser per esplorare manualmente il sito web e analizzare come l'applicazione elabora le richieste XML.
Attack Techniques
-
Use an automated tool to record all instances of URLs to process XML requests.
-
Use a browser to manually explore the website and analyze how the application processes XML requests.IT: Utilizza uno strumento automatizzato per registrare tutte le istanze di URL al fine di elaborare le richieste XML.
Step 2
Explore[Determine use of XML with DTDs] Examine application input to identify XML input that leverage the use of one or more DTDs.
Examine any available documentation for the application that discusses expected XML input.
Exercise the application using XML input with and without a DTD specified. Failure without DTD likely indicates use of DTD.
[Determinare l'uso di XML con DTD] Esamina l'input dell'applicazione per identificare XML che sfruttano l'uso di uno o più DTD.
Verifica eventuale documentazione disponibile dell'applicazione che discuta l'input XML previsto.
Esegui l'applicazione utilizzando input XML con e senza DTD specificato. Un fallimento senza DTD probabilmente indica l'uso di DTD.
Attack Techniques
-
Examine any available documentation for the application that discusses expected XML input.
-
Exercise the application using XML input with and without a DTD specified. Failure without DTD likely indicates use of DTD.IT: Esamina eventuali documentazioni disponibili per l'applicazione che trattano l'input XML previsto.
Step 3
Exploit[Craft and inject XML containg malicious DTD payload]
Inject XML expansion attack that creates a Denial of Service impact on the targeted server using its DTD.
Inject XML External Entity (XEE) attack that can cause the disclosure of confidential information, execute abitrary code, create a Denial of Service of the targeted server, or several other malicious impacts.
[Creazione e iniezione di payload XML contenente DTD dannoso]
Iniezione di attacco di espansione XML che crea un impatto di Denial of Service sul server mirato utilizzando il suo DTD.
Iniezione di attacco XML External Entity (XEE) che può causare la divulgazione di informazioni riservate, l'esecuzione di codice arbitrario, la creazione di un Denial of Service sul server mirato, o diversi altri impatti dannosi.
Attack Techniques
-
Inject XML External Entity (XEE) attack that can cause the disclosure of confidential information, execute abitrary code, create a Denial of Service of the targeted server, or several other malicious impacts.
-
Inject XML expansion attack that creates a Denial of Service impact on the targeted server using its DTD.IT: Attacco di iniezione XML External Entity (XEE) che può provocare la divulgazione di informazioni riservate, l'esecuzione di codice arbitrario, la creazione di un Denial of Service del server target o altri molteplici impatti dannosi.
Mitigations
Design: Sanitize Incoming Dtds To Prevent Excessive Expansion Or Other Actions That Could Result In Impacts Like Resource Depletion.
Implementation: Disallow The Inclusion Of Dtds As Part Of Incoming Messages.
Implementation: Use Xml Parsing Tools That Protect Against Dtd Attacks.
Consequences
Consequence Information
{'impacts': [], 'impacts_translate': [], 'scopes': [], 'scopes_translate': []}