Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Η Γλώσσα Σημειώσεων Ασφαλείας (SAML)** επιτρέπει στους παρόχους ταυτότητας (IdP) να χρησιμοποιούνται για την αποστολή διαπιστευτηρίων εξουσιοδότησης στους παρόχους υπηρεσιών (SP), διευκολύνοντας την ενιαία είσοδο (SSO). Αυτή η προσέγγιση απλοποιεί τη διαχείριση πολλαπλών συνδέσεων επιτρέποντας τη χρήση ενός μόνο συνόλου διαπιστευτηρίων σε πολλαπλές ιστοσελίδες. Εκμεταλλεύεται το XML για τυποποιημένη επικοινωνία μεταξύ IdPs και SPs, συνδέοντας την αυθεντικοποίηση της ταυτότητας του χρήστη με την εξουσιοδότηση υπηρεσίας.
- **SAML** είναι προσαρμοσμένο γιανα παρέχει στις επιχειρήσεις μεγαλύτερο έλεγχο στην ασφάλεια σύνδεσης SSO.
- **OAuth** έχει σχεδιαστεί γιανα είναι πιο φιλικό προς κινητές συσκευές, χρησιμοποιεί JSON και είναι μια συνεργατική προσπάθεια από εταιρείες όπως η Google και η Twitter.
**Για περισσότερες λεπτομέρειες δείτε την πλήρη ανάρτηση από [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)**. Αυτή είναι μια περίληψη:
Σκεφτείτε το σενάριο όπου ένας χρήστης ζητά πρόσβαση σε έναν ασφαλή πόρο στο [https://shibdemo-sp1.test.edu/secure/](https://shibdemo-sp1.test.edu/secure/). Ο SP αναγνωρίζει την έλλειψη αυθεντικοποίησης και δημιουργεί ένα Αίτημα SAML:
- **ProtocolBinding**: Ορίζει τη μέθοδο μετάδοσης των μηνυμάτων πρωτοκόλλου SAML.
- **saml:Issuer**: Αναγνωρίζει την οντότητα που ξεκίνησε το αίτημα.
Following the SAML Request generation, the SP responds with a **302 redirect**, directing the browser to the IdP with the SAML Request encoded in the HTTP response's **Location** header. The **RelayState** parameter maintains the state information throughout the transaction, ensuring the SP recognizes the initial resource request upon receiving the SAML Response. The **SAMLRequest** parameter is a compressed and encoded version of the raw XML snippet, utilizing Deflate compression and base64 encoding.
You can find a [full SAML response here](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/). The key components of the response include:
- **ds:Signature**: Αυτή η ενότητα, μια XML Signature, διασφαλίζει την ακεραιότητα και την αυθεντικότητα του εκδότη της δήλωσης. Η SAML response στο παράδειγμα περιέχει δύο στοιχεία `ds:Signature`, ένα για το μήνυμα και το άλλο για τη δήλωση.
- **saml:Assertion**: Αυτή η ενότητα περιέχει πληροφορίες σχετικά με την ταυτότητα του χρήστη και πιθανώς άλλες ιδιότητες.
- **saml:Subject**: Καθορίζει το κύριο υποκείμενο όλων των δηλώσεων στη δήλωση.
- **saml:StatusCode**: Αντιπροσωπεύει την κατάσταση της λειτουργίας σε απάντηση στο αντίστοιχο αίτημα.
- **saml:Conditions**: Λεπτομέρειες για τις συνθήκες όπως η χρονική εγκυρότητα της δήλωσης και ο καθορισμένος Παροχέας Υπηρεσιών.
- **saml:AuthnStatement**: Επιβεβαιώνει ότι ο IdP αυθεντικοποίησε το υποκείμενο της δήλωσης.
- **saml:AttributeStatement**: Περιέχει χαρακτηριστικά που περιγράφουν το υποκείμενο της δήλωσης.
Following the SAML Response, the process includes a 302 redirect from the IdP. This leads to a POST request to the Service Provider's Assertion Consumer Service (ACS) URL. The POST request includes `RelayState` and `SAMLResponse` parameters. The ACS is responsible for processing and validating the SAML Response.
After the POST request is received and the SAML Response is validated, access is granted to the protected resource initially requested by the user. This is illustrated with a `GET` request to the `/secure/` endpoint and a `200 OK` response, indicating successful access to the resource.
XML Signatures are versatile, capable of signing an entire XML tree or specific elements within it. They can be applied to any XML Object, not just Response elements. Below are the key types of XML Signatures:
### Basic Structure of XML Signature
An XML Signature consists of essential elements as shown:
1.**Ενσωματωμένη Υπογραφή**: Αυτός ο τύπος υπογραφής είναι απόγονος της πηγής που υπογράφει, πράγμα που σημαίνει ότι η υπογραφή περιέχεται μέσα στην ίδια δομή XML με το υπογεγραμμένο περιεχόμενο.
3.**Αποσπασμένη Υπογραφή**: Αυτός ο τύπος είναι ξεχωριστός από το περιεχόμενο που υπογράφει. Η υπογραφή και το περιεχόμενο υπάρχουν ανεξάρτητα, αλλά διατηρείται μια σύνδεση μεταξύ των δύο.
Συμπερασματικά, οι Υπογραφές XML παρέχουν ευέλικτους τρόπους για την ασφάλιση εγγράφων XML, με κάθε τύπο να εξυπηρετεί διαφορετικές δομικές και ασφαλιστικές ανάγκες.
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.