Direkt zum Hauptbereich

EsPReSSO - A good morning starts with coffee!

In this posts I describe the tool, I wrote for my Bachelor thesis at the Chair for Network and Data Security, with support of Context Information Security Ltd.. EsPReSSO is a apronym for "Extension for Recognition and Processing of Single Sing on Protocols". The basic idea behind EsPReSSO is to automate standard tasks to detect and classify the Single Sign-On (SSO) Protocols OpenID, BrowserID, SAML, OAuth, OpenID-Connect, Facebook Connect and Microsoft Account. The tool is integrate with PortSwigger's HTTP Proxy, Burp Suite. Furthermore EsPReSSO integrates the WS-Attacker, to attack SAML services semi-automated or manually.

EsPReSSO consist of two core components, the Scanner and the Attacker.

EsPReSSO Scanner


The SSO authentication process consists of a complex sequence of HTTP messages with different GET and POST parameters. During the analysis of the HTTP traffic of modern browsers important SSO messages are mixed with countless irrelevant messages like, advertisement messages or AJAX requests from other open tabs. In order to identify SSO messages we have to distinguish, at first, between OAuth based protocols, like OpenID Connect, Microsoft Account and Facebook Connect, and not OAuth based protocols like SAML, OpenID and BrowserID.
The latter of these protocols appeared to be easy to classify, due to their unique parameters. In contrary, the detection OAuth-Family protocols was not trivial. The similarities between the protocol flows made it hard to identify every protocol properly.
To simplify this analysis, EsPReSSO attempts to analyse and highlight SSO request send by the browser. The results can be reviewed in an extra history designed for SSO protocols as well as Burp Suite's built-in HTTP proxy history. To evaluate the single SSO messages better, EsPReSSO integrates a SAML, JSON and JWT (JSON Web Token) editor.

EsPReSSO Attacker


Together with the SAML editor EsPReSSO integrates the famous WS-Attacker, of the Chair for Network and Data Security, to manipulate request during the interception with Burp Suite. At the moment two attacks are implemented, XML Signature Wrapping and XML Signature Faking. With the first kind, it is possible to choose from over 200 different attack vectors. These attack vectors are automatically retrieved from a predefined setup. The user can choose and fine tune all of them before the modification is applied to the original message.
With the Signature Faking attack, a new signature will be computed for the given assertion.


EsPReSSO is based on Christian Mainka's 'BurpSSOExtension' and replaces it in its repository. Fork the project on GitHub and help us to develop an awesome tool.
Or use our Extension with Burps BApp Store.

Authors of this Post

This post was written by Tim Guenther and reviewed by Christian Mainka and Vladislav Mladenov.
Tim's Bachelor Thesis can be found at https://www.nds.rub.de/teaching/theses/espresso-ba/

Beliebte Posts aus diesem Blog

How To Spoof PDF Signatures

One year ago, we received a contract as a PDF file. It was digitally signed. We looked at the document - ignoring the "certificate is not trusted" warning shown by the viewer - and asked ourselfs:

"How do PDF signatures exactly work?"

We are quite familiar with the security of message formats like XML and JSON. But nobody had an idea, how PDFs really work. So we started our research journey.

Today, we are happy to announce our results. In this blog post, we give an overview how PDF signatures work and on top, we reveal three novel attack classes for spoofing a digitally signed PDF document. We present our evaluation of 22 different PDF viewers and show 21 of them to be vulnerable. We additionally evaluated 8 online validation services and found 6 to be vulnerable.

In cooperation with the BSI-CERT, we contacted all vendors, provided proof-of-concept exploits, and helped them to fix the issues and three generic CVEs for each attack class were issued: CVE-2018-16042

DTD Cheat Sheet

When evaluating the security of XML based services, one should always consider DTD based attack vectors, such as XML External Entities (XXE) as,for example, our previous post XXE in SAML Interfaces demonstrates.

In this post we provide a comprehensive list of different DTD attacks.

The attacks are categorized as follows:
Denial-of-Service AttacksClassic XXEAdvanced XXEServer-Side Requst Forgery (SSRF)XIncludeXSLT

Practical Dictionary Attack on IPsec IKE

We found out that in contrast to public knowledge, the Pre-Shared Key (PSK) authentication method in main mode of IKEv1 is susceptible to offline dictionary attacks. This requires only a single active Man-in-the-Middle attack. Thus, if low entropy passwords are used as PSKs, this can easily be broken.