<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
[**SAMLExtractor**](https://github.com/fadyosman/SAMLExtractor): Zana ambayo inaweza kuchukua URL au orodha ya URL na kutoa nyuma URL ya matumizi ya SAML.
Katika XML sehemu iliyosainiwa ya XML inahifadhiwa kumbukumbu, kisha uandishi wa nambari/uchambuzi unafanywa na saini huchunguzwa. Kimsingi uandishi wa nambari/uchambuzi huo haipaswi kubadilisha data lakini kulingana na hali hiyo, **data inayochunguzwa na data ya awali zinaweza kutofautiana**.
Katika **mashambulizi ya Kusainiwa kwa XML (XSW)**, wadukuzi hutumia udhaifu unaojitokeza wakati hati za XML zinapopitishwa kupitia hatua mbili tofauti: **uthibitishaji wa saini** na **wito wa kazi**. Mashambulizi haya yanahusisha kubadilisha muundo wa hati ya XML. Kwa usahihi, muhusika **huweka vipengele vilivyopigwa** ambavyo havidhoofishi uhalali wa Saini ya XML. Udanganyifu huu unalenga kuleta tofauti kati ya vipengele vinavyochambuliwa na **mantiki ya programu** na vile vilivyothibitishwa na **moduli ya uthibitishaji wa saini**. Kama matokeo, ingawa Saini ya XML inabaki kuwa halali kiufundi na kupita uthibitishaji, mantiki ya programu inachakata **vipengele vya udanganyifu**. Kwa hivyo, muhusika kimsingi anapita kinga ya **ulinzi wa uadilifu** na **uthibitisho wa asili** wa Saini ya XML, kuruhusu **uingizaji wa yaliyomo ya kupendelea** bila kugunduliwa.
Mashambulizi yafuatayo yanategemea [**chapisho hili la blogi**](https://epi052.gitlab.io/notes-to-self/blog/2019-03-13-how-to-test-saml-a-methodology-part-two/) **na** [**karatasi hii**](https://www.usenix.org/system/files/conference/usenixsecurity12/sec12-final91.pdf). Kwa hivyo angalia hizo kwa maelezo zaidi.
* **Athari**: Mthibitishaji anaweza kuchanganyikiwa kati ya "Jibu -> Kuthibitisha -> Mada" halali na "Jibu jipya la uovu -> Kuthibitisha -> Mada", ikisababisha masuala ya uadilifu wa data.
* **Mbinu**: Kipengele cha Vipanuzi kinaingizwa na Kuthibitisha iliyokopi kama mtoto.
* **Athari**: Hii inatumia mpango mdogo wa skimu ya Kipengele cha Vipanuzi kwa kuzidi hatua za kuzuia uthibitishaji wa skimu, hasa katika maktaba kama OpenSAML.
Unaweza kutumia nyongeza ya Burp [**SAML Raider**](https://portswigger.net/bappstore/c61cfa893bb14db4b01775554f7b802e) kuchambua ombi, kutumia shambulizi lolote la XSW unalochagua, na kulizindua.
Majibu ya SAML ni **hati za XML zilizopondwa na zilizofungwa kwa msingi wa base64** na zinaweza kuwa hatarini kwa mashambulizi ya XML External Entity (XXE). Kwa kubadilisha muundo wa XML wa Majibu ya SAML, wadukuzi wanaweza kujaribu kutumia udhaifu wa XXE. Hapa ndivyo mashambulizi kama hayo yanavyoweza kuonekana:
Unaweza pia kutumia Burp extension [**SAML Raider**](https://portswigger.net/bappstore/c61cfa893bb14db4b01775554f7b802e) kuzalisha POC kutoka ombi la SAML ili kufanya majaribio ya uwezekano wa mashimo ya XXE na mashimo ya SAML.
Transformations za Lugha ya Mtindo Inayoweza Kupanuliwa (XSLT) zinaweza kutumika kubadilisha hati za XML kuwa miundo mbalimbali kama HTML, JSON, au PDF. Ni muhimu kutambua kwamba **Transformations za XSLT hutekelezwa kabla ya uthibitisho wa saini ya kidijitali**. Hii inamaanisha kwamba shambulio linaweza kuwa na mafanikio hata bila saini halali; saini iliyojisaini au saini isiyofaa ni ya kutosha kuendelea.
Hapa unaweza kupata **POC** ya kuchunguza aina hii ya mashimo, kwenye ukurasa wa hacktricks uliotajwa mwanzoni mwa sehemu hii unaweza kupata mizigo ya data.
Unaweza pia kutumia Burp extension [**SAML Raider**](https://portswigger.net/bappstore/c61cfa893bb14db4b01775554f7b802e) kuzalisha POC kutoka kwa ombi la SAML ili kufanya majaribio ya uwezekano wa XSLT vulnerabilities.
**Kutenga Saini ya XML** inachunguza tabia ya utekelezaji wa SAML wakati Kipengele cha Saini haipo. Ikiwa kipengele hiki hakipo, **uthibitisho wa saini huenda usitokee**, ikifanya iwe hatarishi. Inawezekana kufanya majaribio haya kwa kubadilisha maudhui ambayo kawaida huthibitishwa na saini.
Unaweza pia kutumia Burp extension [**SAML Raider**](https://portswigger.net/bappstore/c61cfa893bb14db4b01775554f7b802e). Kukamata SAML Response na bonyeza `Ondoa Saini`. Kwa kufanya hivyo **vilevile** Vipengele vyote vya Saini vinatolewa.
Udanganyifu wa Cheti ni mbinu ya kufanya majaribio ikiwa **Mtoa Huduma (SP) anathibitisha ipasavyo kwamba Ujumbe wa SAML umesainiwa** na Mtoa Huduma aliyeaminika (IdP). Inahusisha kutumia **cheti kilichojisaini** kusaini SAML Response au Kuthibitisha, ambayo husaidia katika kutathmini mchakato wa uthibitisho wa uaminifu kati ya SP na IdP.
2. Ikiwa jibu lina saini, tuma cheti kwa SAML Raider Certs kwa kutumia kitufe cha `Tuma Cheti kwa SAML Raider Certs`.
3. Katika kichupo cha Vyeti vya SAML Raider, chagua cheti kilichoingizwa na bonyeza `Hifadhi na Jisaini mwenyewe` ili kuunda nakala iliyojisaini ya cheti cha awali.
4. Rudi kwenye ombi lililokamatwa katika Proxy ya Burp. Chagua cheti kipya kilichoingizwa kutoka kwenye menyu ya Saini ya XML.
5. Ondoa saini zilizopo na kitufe cha `Ondoa Saini`.
6. Saini ujumbe au kuthibitisha na cheti kipya kwa kutumia kitufe cha **`(Re-)Saini Ujumbe`** au **`(Re-)Saini Kuthibitisha`**, kama inavyofaa.
7. Peleka ujumbe uliosainiwa. Uthibitisho wa mafanikio unaonyesha kwamba SP inakubali ujumbe uliosainiwa na cheti chako kilichojisaini, kufunua mapungufu yanayowezekana katika mchakato wa uthibitisho wa ujumbe wa SAML.
## Kuchanganyikiwa kwa Mpokeaji wa Tokeni / Kuchanganyikiwa kwa Lengo la Mtoa Huduma <a href="#token-recipient-confusion" id="token-recipient-confusion"></a>
Kuchanganyikiwa kwa Mpokeaji wa Tokeni na Kuchanganyikiwa kwa Lengo la Mtoa Huduma kunahusisha kuangalia ikiwa **Mtoa Huduma anathibitisha ipasavyo mpokeaji anayetarajiwa wa jibu**. Kimsingi, Mtoa Huduma anapaswa kukataa jibu la uthibitisho ikiwa lilikuwa limekusudiwa kwa mtoa huduma tofauti. Elementi muhimu hapa ni **Mpokeaji** ambayo hupatikana ndani ya kipengele cha **SubjectConfirmationData** cha SAML Response. Kipengele hiki hufafanua URL inayoonyesha mahali Ambapo Kuthibitisha lazima itumwe. Ikiwa mpokeaji halisi hailingani na Mtoa Huduma aliyekusudiwa, Kuthibitisha inapaswa kufutwa.
Ili shambulio la Kuchanganyikiwa kwa Mpokeaji wa Tokeni wa SAML (SAML-TRC) liwezekane, hali fulani lazima zikutane. Kwanza, lazima kuwepo akaunti halali kwenye Mtoa Huduma (inayoitwa SP-Legit). Pili, Mtoa Huduma uliolengwa (SP-Target) lazima akubali alama kutoka kwa Mtoa Huduma huyo huyo wa Kitambulisho anayehudumia SP-Legit.
Mchakato wa shambulio ni wa moja kwa moja chini ya hali hizi. Kikao halisi kinaanzishwa na SP-Legit kupitia Mtoa Huduma wa Kitambulisho ulioshiriki. SAML Response kutoka kwa Mtoa Huduma wa Kitambulisho kwenda SP-Legit inakamatwa. SAML Response iliyokamatwa, ambayo kimsingi ilikuwa imekusudiwa kwa SP-Legit, kisha inaelekezwa kwa SP-Target. Mafanikio katika shambulio hili yanapimwa na SP-Target kukubali Kuthibitisha, kutoa ufikiaji wa rasilimali chini ya jina la akaunti linalotumiwa kwa SP-Legit.
Hii ilifunua kwamba parameter ya `base` inakubali URL. Kufikiria hili, wazo lilijitokeza la kubadilisha URL na `javascript:alert(123);` kujaribu kuanzisha shambulio la XSS (Cross-Site Scripting).
Zana ya [**SAMLExtractor**](https://github.com/fadyosman/SAMLExtractor) ilitumika kuchambua subdomains za `uberinternal.com` kwa udomauni unaoitumia maktaba ile ile. Baadaye, script ilibuniwa kushambulia ukurasa wa `oidauth/prompt`. Script hii huchunguza XSS (Cross-Site Scripting) kwa kuingiza data na kuangalia ikiwa inaonekana kwenye matokeo. Katika kesi ambapo data inaonekana, script huitambua ukurasa kama una kasoro.
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.