Mittwoch, 3. Juli 2019

Testing SAML Endpoints for XML Signature Wrapping Vulnerabilities

A lot can go wrong when validating SAML messages. When auditing SAML endpoints, it's important to look out for vulnerabilities in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 signature validation logic. XML Signature Wrapping (XSW) against SAML is an attack where manipulated SAML message is submitted in an attempt to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 endpoint validate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 signed parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message -- which were correctly validated -- while processing a different attacker-generated part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message as a way to extract cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication statements. Because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker can arbitrarily forge SAML assertions which are accepted as valid by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vulnerable endpoint, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact can be severe. [1,2,3]

Testing for XSW vulnerabilities in SAML endpoints can be a tedious process, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 auditor needs to not only know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 details of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various XSW techniques, but also must handle a multitude of repetitive copy-and-paste tasks and apply cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate encoding onto each message. The latest revision of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSW-Attacker module in our BurpSuite extension EsPReSSo helps to make this testing process easier, and even comes with a semi-automated mode. Read on to learn more about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new release! 

 SAML XSW-Attacker

After a signed SAML message has been intercepted using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Burp Proxy and shown in EsPReSSO, you can open cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSW-Attacker by navigating to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SAML tab and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Attacker tab.  Select Signature Wrapping from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drop down menu, as shown in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screenshot below:



To simplify its use, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSW-Attacker performs cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack in a two step process of initialization and execution, as reflected by its two tabs Init Attack and Execute Attack. The interface of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSW-Attacker is depicted below.
XSW-Attacker overview

The Init Attack tab displays cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current SAML message. To execute a signature wrapping attack, a payload needs to be configured in a way that values of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 originally signed message are replaced with values of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker's choice. To do this, enter cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of a text-node you wish to replace in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Current value text-field. Insert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 replacement value in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 text-field labeled New value and click cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Add button. Multiple values can be provided; however, all of which must be child nodes of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 signed element. Valid substitution pairs and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding XPath selectors are displayed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Modifications Table. To delete an entry from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 table, select cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entry and press `Del`, or use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right-click menu.

Next, click cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Generate vectors button - this will prepare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payloads accordingly and brings cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Execute Attack tab to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 front of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen.

At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 top of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Execute Attack tab, select one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pre-generated payloads. The structure of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 selected vector is explained in a shorthand syntax in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 text area below cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 selector.
The text-area labeled Attack vector is editable and can be used to manually fine-tune cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chosen payload if necessary. The button Pretty print opens up a syntax-highlighted overview of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current vector.
To submit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 manipulated SAML response, use Burp's Forward button (or Go, while in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Repeater).

Automating XSW-Attacker with Burp Intruder

Burp's Intruder tool allows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sending of automated requests with varying payloads to a test target and analyzes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 responses. EsPReSSO now includes a Payload Generator called XSW Payloads to facilitate when testing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XML processing endpoints for XSW vulnerabilities. The following paragraphs explain how to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 automated XSW attacker with a SAML response.

First, open an intercepted request in Burp's Intruder (e.g., by pressing `Ctrl+i`). For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack type, select Sniper. Open cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intruder's Positions tab, clear all payload positions but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XML message (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 `SAMLResponse` parameter, in our example). Note: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSW-Attacker can only handle XML messages that contain exactly one XML Signature.
Next, switch to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Payloads tab and for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Payload Type, select Extension-generated. From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 newly added Select generator drop-down menu, choose XSW Payloads, as depicted in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screenshot below.



While still in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Payloads tab, disable cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 URL-encoding checkbox in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Payload Encoding section, since Burp Intruder deals with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encoding automatically and should suffice for most cases.
Click cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Start Attack button and a new window will pop up. This window is shown below and is similar to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSW Attacker's Init Attack tab.


Configure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload as explained in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 section above. In addition, a schema analyzer can be selected and checkboxes at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bottom of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 window allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tester to choose a specific encoding. However, for most cases cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 detected presets should be correct.

Click cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Start Attack button and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intruder will start sending each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pre-generated vectors to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configured endpoint. Note that this may result in a huge number of outgoing requests. To make it easier to recognize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 successful Signature Wrapping attacks, it is recommended to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intruder's Grep-Match functionality. As an example, consider adding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 replacement values from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Modifications Table as a Grep-Match rule in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intruder's Options tab. By doing so, a successful attack vector will be marked with a checkmark in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results table, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 response includes any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configure grep rules.

Credits

EsPReSSO's XSW Attacker is based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WS-Attacker [4] library by Christian Mainka and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original adoption for EsPReSSO has been implemented by Tim Güncá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r.
Our students Nurullah Erinola, Nils Engelberts and David Herring did a great job improving cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 execution of XSW and implementing a much better UI.

---

[1] On Breaking SAML - Be Whoever You Want to Be
[2] Your Software at My Service
[3] Se­cu­ri­ty Ana­ly­sis of XAdES Va­li­da­ti­on in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CEF Di­gi­tal Si­gna­tu­re Ser­vices (DSS)
[4] WS-Attacker

Beliebte Posts