|
6 | 6 |
|
7 | 7 | * [Tools](#tools)
|
8 | 8 | * [Authentication Bypass](#authentication-bypass)
|
9 |
| - * [Invalid Signature](#invalid-signature) |
10 |
| - * [Signature Stripping](#signature-stripping) |
11 |
| - * [XML Signature Wrapping Attacks](#xml-signature-wrapping-attacks) |
12 |
| - * [XML Comment Handling](#xml-comment-handling) |
13 |
| - * [XML External Entity](#xml-external-entity) |
14 |
| - * [Extensible Stylesheet Language Transformation](#extensible-stylesheet-language-transformation) |
| 9 | + * [Invalid Signature](#invalid-signature) |
| 10 | + * [Signature Stripping](#signature-stripping) |
| 11 | + * [XML Signature Wrapping Attacks](#xml-signature-wrapping-attacks) |
| 12 | + * [XML Comment Handling](#xml-comment-handling) |
| 13 | + * [XML External Entity](#xml-external-entity) |
| 14 | + * [Extensible Stylesheet Language Transformation](#extensible-stylesheet-language-transformation) |
| 15 | +* [References](#references) |
| 16 | + |
15 | 17 |
|
16 | 18 | ## Tools
|
17 | 19 |
|
18 |
| -- [SAML Raider - Burp Extension](https://github.com/SAMLRaider/SAMLRaider) |
19 |
| -- [SAML Support - ZAP Addon](https://www.zaproxy.org/docs/desktop/addons/saml-support/) |
| 20 | +- [CompassSecurity/SAMLRaider](https://github.com/SAMLRaider/SAMLRaider) - SAML2 Burp Extension. |
| 21 | +- [ZAP Addon/SAML Support](https://www.zaproxy.org/docs/desktop/addons/saml-support/) - Allows to detect, show, edit, and fuzz SAML requests. |
| 22 | + |
20 | 23 |
|
21 | 24 | ## Authentication Bypass
|
22 | 25 |
|
@@ -67,21 +70,21 @@ Example of SAML assertion where `NameID=admin` without signature.
|
67 | 70 |
|
68 | 71 | XML Signature Wrapping (XSW) attack, some implementations check for a valid signature and match it to a valid assertion, but do not check for multiple assertions, multiple signatures, or behave differently depending on the order of assertions.
|
69 | 72 |
|
70 |
| -- XSW1 – Applies to SAML Response messages. Add a cloned unsigned copy of the Response after the existing signature. |
71 |
| -- XSW2 – Applies to SAML Response messages. Add a cloned unsigned copy of the Response before the existing signature. |
72 |
| -- XSW3 – Applies to SAML Assertion messages. Add a cloned unsigned copy of the Assertion before the existing Assertion. |
73 |
| -- XSW4 – Applies to SAML Assertion messages. Add a cloned unsigned copy of the Assertion within the existing Assertion. |
74 |
| -- XSW5 – Applies to SAML Assertion messages. Change a value in the signed copy of the Assertion and adds a copy of the original Assertion with the signature removed at the end of the SAML message. |
75 |
| -- XSW6 – Applies to SAML Assertion messages. Change a value in the signed copy of the Assertion and adds a copy of the original Assertion with the signature removed after the original signature. |
76 |
| -- XSW7 – Applies to SAML Assertion messages. Add an “Extensions” block with a cloned unsigned assertion. |
77 |
| -- XSW8 – Applies to SAML Assertion messages. Add an “Object” block containing a copy of the original assertion with the signature removed. |
| 73 | +- **XSW1**: Applies to SAML Response messages. Add a cloned unsigned copy of the Response after the existing signature. |
| 74 | +- **XSW2**: Applies to SAML Response messages. Add a cloned unsigned copy of the Response before the existing signature. |
| 75 | +- **XSW3**: Applies to SAML Assertion messages. Add a cloned unsigned copy of the Assertion before the existing Assertion. |
| 76 | +- **XSW4**: Applies to SAML Assertion messages. Add a cloned unsigned copy of the Assertion within the existing Assertion. |
| 77 | +- **XSW5**: Applies to SAML Assertion messages. Change a value in the signed copy of the Assertion and adds a copy of the original Assertion with the signature removed at the end of the SAML message. |
| 78 | +- **XSW6**: Applies to SAML Assertion messages. Change a value in the signed copy of the Assertion and adds a copy of the original Assertion with the signature removed after the original signature. |
| 79 | +- **XSW7**: Applies to SAML Assertion messages. Add an “Extensions” block with a cloned unsigned assertion. |
| 80 | +- **XSW8**: Applies to SAML Assertion messages. Add an “Object” block containing a copy of the original assertion with the signature removed. |
78 | 81 |
|
79 | 82 |
|
80 | 83 | In the following example, these terms are used.
|
81 | 84 |
|
82 |
| -- FA: Forged Assertion |
83 |
| -- LA: Legitimate Assertion |
84 |
| -- LAS: Signature of the Legitimate Assertion |
| 85 | +- **FA**: Forged Assertion |
| 86 | +- **LA**: Legitimate Assertion |
| 87 | +- **LAS**: Signature of the Legitimate Assertion |
85 | 88 |
|
86 | 89 | ```xml
|
87 | 90 | <SAMLResponse>
|
@@ -186,15 +189,14 @@ Picture from [http://sso-attacks.org/XSLT_Attack](http://sso-attacks.org/XSLT_At
|
186 | 189 |
|
187 | 190 | ## References
|
188 | 191 |
|
189 |
| -- [SAML Burp Extension - ROLAND BISCHOFBERGER - JULY 24, 2015](https://blog.compass-security.com/2015/07/saml-burp-extension/) |
190 |
| -- [The road to your codebase is paved with forged assertions - @ilektrojohn - March 13, 2017](http://www.economyofmechanism.com/github-saml) |
191 |
| -- [SAML_Security_Cheat_Sheet.md - OWASP](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/SAML_Security_Cheat_Sheet.md) |
192 |
| -- [On Breaking SAML: Be Whoever You Want to Be - Juraj Somorovsky, Andreas Mayer, Jorg Schwenk, Marco Kampmann, and Meiko Jensen](https://www.usenix.org/system/files/conference/usenixsecurity12/sec12-final91-8-23-12.pdf) |
193 |
| -- [Making Headlines: SAML - March 19, 2018 - Torsten George](https://blog.centrify.com/saml/) |
194 |
| -- [Vulnerability Note VU#475445 - 2018-02-27 - Carnegie Mellon University](https://www.kb.cert.org/vuls/id/475445/) |
195 |
| -- [ORACLE WEBLOGIC - MULTIPLE SAML VULNERABILITIES (CVE-2018-2998/CVE-2018-2933) - Denis Andzakovic - Jul 18, 2018](https://pulsesecurity.co.nz/advisories/WebLogic-SAML-Vulnerabilities) |
196 |
| -- [Truncation of SAML Attributes in Shibboleth 2 - 2018-01-15 - redteam-pentesting.de](https://www.redteam-pentesting.de/de/advisories/rt-sa-2017-013/-truncation-of-saml-attributes-in-shibboleth-2) |
197 |
| -- [Attacking SSO: Common SAML Vulnerabilities and Ways to Find Them - March 7th, 2017 - Jem Jensen](https://blog.netspi.com/attacking-sso-common-saml-vulnerabilities-ways-find/) |
198 |
| -- [How to Hunt Bugs in SAML; a Methodology - Part I - @epi052](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/) |
199 |
| -- [How to Hunt Bugs in SAML; a Methodology - Part II - @epi052](https://epi052.gitlab.io/notes-to-self/blog/2019-03-13-how-to-test-saml-a-methodology-part-two/) |
200 |
| -- [How to Hunt Bugs in SAML; a Methodology - Part III - @epi052](https://epi052.gitlab.io/notes-to-self/blog/2019-03-16-how-to-test-saml-a-methodology-part-three/) |
| 192 | +- [Attacking SSO: Common SAML Vulnerabilities and Ways to Find Them - Jem Jensen - March 7, 2017](https://blog.netspi.com/attacking-sso-common-saml-vulnerabilities-ways-find/) |
| 193 | +- [How to Hunt Bugs in SAML; a Methodology - Part I - Ben Risher (@epi052) - March 7, 2019](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/) |
| 194 | +- [How to Hunt Bugs in SAML; a Methodology - Part II - Ben Risher (@epi052) - March 13, 2019](https://epi052.gitlab.io/notes-to-self/blog/2019-03-13-how-to-test-saml-a-methodology-part-two/) |
| 195 | +- [How to Hunt Bugs in SAML; a Methodology - Part III - Ben Risher (@epi052) - March 16, 2019](https://epi052.gitlab.io/notes-to-self/blog/2019-03-16-how-to-test-saml-a-methodology-part-three/) |
| 196 | +- [On Breaking SAML: Be Whoever You Want to Be - Juraj Somorovsky, Andreas Mayer, Jorg Schwenk, Marco Kampmann, and Meiko Jensen - August 23, 2012](https://www.usenix.org/system/files/conference/usenixsecurity12/sec12-final91-8-23-12.pdf) |
| 197 | +- [Oracle Weblogic - Multiple SAML Vulnerabilities (CVE-2018-2998/CVE-2018-2933) - Denis Andzakovic - July 18, 2018](https://pulsesecurity.co.nz/advisories/WebLogic-SAML-Vulnerabilities) |
| 198 | +- [SAML Burp Extension - Roland Bischofberger - July 24, 2015](https://blog.compass-security.com/2015/07/saml-burp-extension/) |
| 199 | +- [SAML Security Cheat Sheet - OWASP - February 2, 2019](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/SAML_Security_Cheat_Sheet.md) |
| 200 | +- [The road to your codebase is paved with forged assertions - Ioannis Kakavas (@ilektrojohn) - March 13, 2017](http://www.economyofmechanism.com/github-saml) |
| 201 | +- [Truncation of SAML Attributes in Shibboleth 2 - redteam-pentesting.de - January 15, 2018](https://www.redteam-pentesting.de/de/advisories/rt-sa-2017-013/-truncation-of-saml-attributes-in-shibboleth-2) |
| 202 | +- [Vulnerability Note VU#475445 - Garret Wassermann - February 27, 2018](https://www.kb.cert.org/vuls/id/475445/) |
0 commit comments