{"id":135,"date":"2023-06-03T14:57:48","date_gmt":"2023-06-03T12:57:48","guid":{"rendered":"https:\/\/www.fabriziogiancola.eu\/?p=135"},"modified":"2023-09-01T10:44:22","modified_gmt":"2023-09-01T08:44:22","slug":"burp-suite","status":"publish","type":"post","link":"https:\/\/www.fabriziogiancola.eu\/index.php\/2023\/06\/03\/burp-suite\/","title":{"rendered":"Exploiting Authentication and Access Control Mechanisms with Burp Suite"},"content":{"rendered":"\n<p class=\"has-medium-font-size\">Exploiting Authentication and Access Control Mechanisms with <a rel=\"noreferrer noopener\" href=\"https:\/\/portswigger.net\/burp\" target=\"_blank\">Burp Suite<\/a>.<\/p>\n\n\n\n<p>In questo articolo ho raccolto in maniera pi\u00f9 o meno ordinata alcuni appunti presi durante il relativo corso seguito su <a rel=\"noreferrer noopener\" href=\"https:\/\/hakin9.org\/\" target=\"_blank\">Hakin9<\/a>, alla cui piattaforma rimando per il materiale necessario.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Note sulla Burp Suite Community Edition.<\/strong><\/p>\n\n\n\n<p>\u00c8 stata utilizzata la versione Community Edition e attese le limitazioni imposte dalla da tale versione, occorre installare alcune&nbsp; estensioni. Nel tab Extender\/BAppStore cercare e installare \u201c<em>Turbo Intruder<\/em>\u201d e&nbsp;\u201c<em>JWT Editor<\/em>\u201d.<\/p>\n\n\n\n<p>In Proxy\/HTTPhistory viene mostrata l\u2019interazione con sito: request\/response<br>In Target\/Scope aggiungere in \u201c<em>Include in scope<\/em>\u201d l\u2019url del sito target in modo tale da visualizzare solo quello e non eventualmente altro contenuto web visitato. Quindi in Proxy\/HTTPhistory cliccare sulla riga dei filtri e spuntare \u201c<em>Show only in-scope items<\/em>\u201d.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>User Enumeration.<\/strong><\/p>\n\n\n\n<p>Con Burp Suite professional: clic tasto destro del mouse sulla riga nell\u2019HTTPhistory (host\/method\/url \u2026) quindi \u201c<em>Send to Intruder<\/em>\u201d e poi tab Intruder.<\/p>\n\n\n\n<p>Con Burp Suite CE: tasto dx, \u201c<em>Extensions&gt;Turbo Intruder&gt;Send turbo intruder<\/em>\u201d.<\/p>\n\n\n\n<p>Dopo aver tentato il login con credenziali errate, nella finestra \u201cHTTPhistory\u201d seleziono la riga che ha come metodo \u201cPOST\u201d (ed ha anche i parametri) e invio a \u201c<em>Intruder<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6-1024x521.png\" alt=\"\" class=\"wp-image-559\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-6.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nella finestra \u201c<em>Raw<\/em>\u201d di Intruder sostituisco il valore assegnato a \u201c<em>username<\/em>\u201d con l\u2019operatore %s, al quale verranno passati gli username elencati nella lista \u201cusers\u201d mediante il ciclo for:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1-1024x521.png\" alt=\"\" class=\"wp-image-560\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Dall\u2019elenco prodotto dal risultato \u00e8 possibile notare che l\u2019utente \u201c<em>cathy<\/em>\u201d ha i campi \u201cWords\u201d e \u201c<em>Length<\/em>\u201d differenti dal resto degli username, questo significa che la pagina di login ha risposto in maniera diversa per questo utente, probabilmente perch\u00e9 \u00e8 un username valido:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1-1024x521.png\" alt=\"\" class=\"wp-image-561\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nalla finestra \u201cRaw\u201d assegno a username il nome \u201ccathy\u201d, mentre a password l\u2019operatore %s e modifico il ciclo for in modo tale che a \u201c%s\u201d vengano passati gli elementi della lista \u201cpasswords\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1-1024x521.png\" alt=\"\" class=\"wp-image-562\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Dall\u2019elenco del risultato \u00e8 possibile notare che la password \u201c<em>1337ing<\/em>\u201d ha valore \u201c<em>Word<\/em>\u201d e \u201c<em>Lengh<\/em>\u201d differenti, a significare che \u00e8 la password corretta per l\u2019utente \u201c<em>cathy<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1-1024x521.png\" alt=\"\" class=\"wp-image-563\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Infatti, inserendo le credenziali \u201ccathy\u201d e \u201c<em>1337ing<\/em>\u201d, ottengo l\u2019accesso.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Brute Force Evasion.<\/strong><\/p>\n\n\n\n<p>Nel tab Proxy ci sono le finestre \u201cRequest\u201d e \u201c Response\u201d, poich\u00e9 in queste non possiamo scrivere&nbsp; per modificarne il contenuto (Request) e verificarne l\u2019esito (Response), viene usato il \u201c<em>Repeater<\/em>\u201d<\/p>\n\n\n\n<p>Tasto dx mouse sulla riga in HTTPhistory e \u201c<em>Send to Repeater<\/em>\u201d e verr\u00e0 attivato il relativo tab.<\/p>\n\n\n\n<p>In alto a sinistra compare un numero, che si raccomanda di cambiare per avere traccia delle modifiche con un doppio clic, ad esempio in \u201c<em>Brute-force evasion<\/em>\u201d se stiamo tentando un attacco brute force.<\/p>\n\n\n\n<p>Uno dei possibili utilizzi \u00e8 quello di superare il ban temporaneo quando si tenta di fare login per un certo numero di volte con credenziali errate.<\/p>\n\n\n\n<p>Nella finestra \u201cRequest\u201d di Repeater si pu\u00f2 modificare il codice inserendo ad esempio la riga \u201c<em>X-Forwarded-For: 192.168.12.92<\/em>\u201d nella quale si fornisce un IP fittizio da modificare raggiunto il numero dei tentativi concessi:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"374\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2.png\" alt=\"\" class=\"wp-image-240\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2.png 828w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-300x136.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-768x347.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Sulla finestra \u201c<em>Request<\/em>\u201d tasto dx del muose &gt; \u201c<em>Extensions&gt;Turbo Intruder&gt;Send turbo intruder<\/em>\u201d, andiamo a modificare l\u2019html sostituendo le ultime cifre dell\u2019IP con l\u2019operatore di formattazione <strong>%s<\/strong> e assegnando a <strong>username=%s<\/strong>, mentre con lo script di Python li gestiremo mediante un ciclo for:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3.png\" alt=\"\" class=\"wp-image-242\" style=\"width:628px;height:293px\" width=\"628\" height=\"293\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3.png 902w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-300x140.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-768x359.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e cos\u00ec anche per le passwords:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4.png\" alt=\"\" class=\"wp-image-246\" style=\"width:629px;height:298px\" width=\"629\" height=\"298\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4.png 903w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-300x142.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-768x364.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p><strong>Note:<\/strong> oltre a \u201c<em>X-Forwarded-For:<\/em>\u201d, \u201c<em>X-Forwarded-By:<\/em>\u201d \u201c<em>X-Real-IP:<\/em>\u201d, \u201c<em>X-Forwarded-Host:<\/em>\u201d<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Dopo aver tentato il login con credenziali errate, nella finestra \u201cHTTPhistory\u201d seleziono la riga che ha come metodo \u201cPOST\u201d (ed ha anche i parametri) e invio a \u201c<em>Intruder<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7-1024x521.png\" alt=\"\" class=\"wp-image-568\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-7.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nella finestra \u201c<em>Raw<\/em>\u201d di Intruder sostituisco il valore assegnato a \u201c<em>username<\/em>\u201d con l\u2019operatore %s, al quale verranno passati gli username elencati nella lista \u201cusers\u201d mediante il ciclo for:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2-1024x521.png\" alt=\"\" class=\"wp-image-569\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-2.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Purtroppo dopo aver lanciato lo script non ottengo nessuna informazione utile a causa dell\u2019<mark style=\"background-color:#1a1a1a\" class=\"has-inline-color has-white-color\">IP-based block protection<\/mark>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2-1024x521.png\" alt=\"\" class=\"wp-image-570\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-2.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Per aggirare l\u2019 <em>IP-based block protection<\/em> dalla finestra \u201cHTTPhistory\u201d invio la precedente riga (quella con URL del login e con metodo \u201cPOST\u201d) al \u201c<em>Repeater<\/em>\u201d che mi permetter\u00e0 di modificare il codice html nella&nbsp; finestra \u201cRaw\u201d di \u201cRequest\u201d. Posso cos\u00ec bypassare la protezione utilizzando l\u2019assegnazione a \u201c<em>X-Real-IP:<\/em>\u201d di un indirizzo IP fittizio. Poi premo \u201cSend\u201d per inviare la richiesta e poi invio a \u201c<em>Intruder<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1-1024x521.png\" alt=\"\" class=\"wp-image-571\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ora modifico le ultime cifre dell\u2019IP appena inserito con l\u2019operatore %s e il valore assegnato a username sempre con l\u2019operatore %s, in questo modo con il ciclo for posso inviare oltre i valori della lista \u201cusers\u201d anche valori numerici (in questo caso in un intervallo da 0 a 100) come ultime cifre dell\u2019indirizzo IP; questo mi permetter\u00e0 di avere ad ogni richiesta di login un IP differente e quindi bypassare l\u2019 <em>IP-based block protection<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1-1024x521.png\" alt=\"\" class=\"wp-image-572\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Infatti, ora riesco a bypassare la protezione sull\u2019IP e posso notare che l\u2019utente \u201c<em>anonymous<\/em>\u201d ha valori \u201cWords\u201d e \u201c<em>Length<\/em>\u201d differenti dagli altri username:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2-1024x521.png\" alt=\"\" class=\"wp-image-573\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-2.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Modifico script, nella finestra \u201cRaw\u201d assegno a username il nome \u201c<em>anonymous<\/em>\u201d, mentre a password l\u2019operatore %s e modifico il ciclo for in modo tale che a \u201c%s\u201d vengano passati gli elementi della lista \u201cpasswords\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1-1024x521.png\" alt=\"\" class=\"wp-image-575\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>L\u2019esecuzione dello script mostra che la password \u201c<em>unknown<\/em>\u201d ha valori \u201cWords\u201d e \u201c<em>Length<\/em>\u201d differenti dagli altri a significare che abbiamo trovato la password per l\u2019utente \u201c<em>anonymous<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1-1024x521.png\" alt=\"\" class=\"wp-image-576\" style=\"width:630px;height:320px\" width=\"630\" height=\"320\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1-1024x521.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1-300x153.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1-768x390.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1-1536x781.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1-1200x610.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-1.png 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Utilizzando le credenziali cos\u00ec ottenute, riesco ad eseguire l\u2019accesso correttamente alla pagina.<\/p>\n\n\n\n<p><strong>Wordlist:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/danielmiessler\/SecLists\" target=\"_blank\">https:\/\/github.com\/danielmiessler\/SecLists<\/a> (lista di dizionari gi\u00e0 pronti)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/Mebus\/cupp\" target=\"_blank\">https:\/\/github.com\/Mebus\/cupp<\/a> (per creare il proprio dizionario)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/sc0tfree\/mentalist\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/sc0tfree\/mentalist<\/a><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/LandGrey\/pydictor\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/LandGrey\/pydictor<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>MFA Brute Force.<\/strong><\/p>\n\n\n\n<p>MFA: autenticazione multi fattore. Esempio in cui il login richiede oltre a utente e password anche l\u2019inserimento di un codice:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5.png\" alt=\"\" class=\"wp-image-252\" style=\"width:627px;height:224px\" width=\"627\" height=\"224\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-300x107.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-768x275.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Dall\u2019analisi del codice della pagina, appuriamo che il l\u2019MFA richiede un codice numerico di 4 cifre e quindi modifico lo script come segue: <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6.png\" alt=\"\" class=\"wp-image-255\" style=\"width:630px;height:306px\" width=\"630\" height=\"306\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6.png 905w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-300x146.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-768x374.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>L\u2019esecuzione del brute force trova il codice MFA corretto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7.png\" alt=\"\" class=\"wp-image-258\" style=\"width:630px;height:361px\" width=\"630\" height=\"361\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7.png 902w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-300x172.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-768x441.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ottenendo cos\u00ec l\u2019accesso.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>MFA No Restrictions.<\/strong> <\/p>\n\n\n\n<p>Provo ad accedere alla pagine \u201c<em>\/admin<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-1.png\" alt=\"\" class=\"wp-image-262\" style=\"width:630px;height:236px\" width=\"630\" height=\"236\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-1.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-1-300x112.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-1-768x288.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e credenziali errate restituiscono \u201c<em>non autorizzato<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9.png\" alt=\"\" class=\"wp-image-264\" style=\"width:630px;height:170px\" width=\"630\" height=\"170\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-300x81.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-768x208.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10.png\" alt=\"\" class=\"wp-image-266\" style=\"width:630px;height:362px\" width=\"630\" height=\"362\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10.png 900w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-300x173.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-768x442.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Inserisco le credenziali di login \u201c<em>admin\/admin<\/em>\u201d e mi viene richiesto l\u2019MFA:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11.png\" alt=\"\" class=\"wp-image-268\" style=\"width:630px;height:205px\" width=\"630\" height=\"205\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11.png 900w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-300x98.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-768x250.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Attivo \u201c<em>Repeater<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/12.png\" alt=\"\" class=\"wp-image-271\" style=\"width:630px;height:233px\" width=\"630\" height=\"233\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/12.png 905w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/12-300x111.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/12-768x285.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Torno all\u2019HTTPhistory:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/13.png\" alt=\"\" class=\"wp-image-273\" style=\"width:630px;height:303px\" width=\"630\" height=\"303\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/13.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/13-300x145.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/13-768x370.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>noto che nel \u201c<em>Request<\/em>\u201d non ci sono cookie, mentre nel \u201c<em>Response<\/em>\u201d trovo un \u201c<em>Set-Cookie: session=<\/em>\u201d, questo sta a significare che il server web comunque sta mantenendo traccia della sessione.<\/p>\n\n\n\n<p>Copio la sessione col cookie:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/14.png\" alt=\"\" class=\"wp-image-275\" style=\"width:630px;height:212px\" width=\"630\" height=\"212\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/14.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/14-300x101.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/14-768x259.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e incollo nel \u201c<em>Request<\/em>\u201d del \u201c<em>Repeater<\/em>\u201d (<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-bright-red-color\">NB: va incollato nella Raw \u201c<em>Request<\/em>\u201d selezionando in HTTPhistory un URL prima che si acceda a \u201c<em>\/mfa<\/em>\u201d, cio\u00e8 in quello di \u201c<em>\/login<\/em>\u201d subito prima<\/mark>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/15.png\" alt=\"\" class=\"wp-image-277\" style=\"width:630px;height:235px\" width=\"630\" height=\"235\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/15.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/15-300x112.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/15-768x287.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>premo \u201c<em>Send<\/em>\u201d e nel \u201c<em>Response<\/em>\u201d avr\u00f2 \u201c<em>200 OK<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/16.png\" alt=\"\" class=\"wp-image-279\" style=\"width:630px;height:318px\" width=\"630\" height=\"318\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/16.png 879w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/16-300x152.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/16-768x388.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>cos\u00ec ho superato il MFA perch\u00e8 sono rimasto nella stessa sessione.&nbsp;<br>Tasto dx su \u201c<em>Request<\/em>\u201d e invio al browser \u201c<em>In original session<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/17.png\" alt=\"\" class=\"wp-image-282\" style=\"width:630px;height:336px\" width=\"630\" height=\"336\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/17.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/17-300x160.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/17-768x411.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Copio l\u2019url:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/18.png\" alt=\"\" class=\"wp-image-284\" style=\"width:630px;height:331px\" width=\"630\" height=\"331\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/18.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/18-300x158.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/18-768x404.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e incollo al posto dell\u2019url di richiesta MFA:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/19.png\" alt=\"\" class=\"wp-image-286\" style=\"width:630px;height:64px\" width=\"630\" height=\"64\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/19.png 846w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/19-300x31.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/19-768x79.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e ottengo l\u2019accesso bypassando l\u2019MFA.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Endpoint Enumeration<\/strong><\/p>\n\n\n\n<p>Accedendo con le corrette credenziali vengo indirizzato alla \u201c<em>dashboard<\/em>\u201d. Invio la pagina all\u2019Intruder:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-3.png\" alt=\"\" class=\"wp-image-584\" style=\"width:630px;height:476px\" width=\"630\" height=\"476\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-3.png 1022w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-3-300x227.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-3-768x581.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Sostituisco l\u2019endpoint \u201cdashboard\u201d con l\u2019operatore di conversione \u201c%s\u201d in modo da iterare i valori di una lista di endpoints:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-2-1024x557.png\" alt=\"\" class=\"wp-image-585\" style=\"width:630px;height:342px\" width=\"630\" height=\"342\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-2-1024x557.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-2-300x163.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-2-768x418.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-2-1200x652.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-2.png 1304w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ho filtrato i risultati affinch\u00e9 vengano esclusi quelli con status http 404. L\u2019esecuzione dello script mi permette di trovare come payload l\u2019endpoint \u201c<strong><em>.htaccess<\/em><\/strong>\u201d e un commento che dice \u201c<strong><em># Remember to add .htaccess on the \/sUp3r_s3cr3t_4dm1n<\/em><\/strong>\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-2-1024x606.png\" alt=\"\" class=\"wp-image-586\" style=\"width:630px;height:372px\" width=\"630\" height=\"372\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-2-1024x606.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-2-300x178.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-2-768x455.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-2-1200x710.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-2.png 1309w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nell\u2019URL della pagina, sostituisco l\u2019endpoint \u201c<strong>dashboard<\/strong>\u201d con \u201c<strong>sUp3r_s3cr3t_4dm1n<\/strong>\u201d e trovo il flag.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Origin-Based AC<\/strong><\/p>\n\n\n\n<p>Invio la pagina con method GET al repeater:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/20.png\" alt=\"\" class=\"wp-image-290\" style=\"width:630px;height:309px\" width=\"630\" height=\"309\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/20.png 897w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/20-300x147.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/20-768x378.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>E modifico il parametro di GET al fine di trovare una pagina valida:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/21.png\" alt=\"\" class=\"wp-image-291\" style=\"width:630px;height:281px\" width=\"630\" height=\"281\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/21.png 884w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/21-300x134.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/21-768x343.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Si potrebbe usare un dizionario gi\u00e0 pronto, tipo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/22.png\" alt=\"\" class=\"wp-image-294\" style=\"width:630px;height:306px\" width=\"630\" height=\"306\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/22.png 900w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/22-300x146.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/22-768x374.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Invio il Request al Turbo Intruder e modifico il RAW in modo che attraverso lo script invio i diversi \u201cendpoints\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/23.png\" alt=\"\" class=\"wp-image-297\" style=\"width:630px;height:311px\" width=\"630\" height=\"311\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/23.png 885w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/23-300x148.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/23-768x380.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Posso migliorare l\u2019output dello script, filtrando le risposte attraverso l\u2019esclusione delle \u201c404 NOT FOUND\u201d, allo scopo usiamo i \u201cDECORATOR\u201d, supportati da Turbo Intruder:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/24.png\" alt=\"\" class=\"wp-image-300\" style=\"width:630px;height:326px\" width=\"630\" height=\"326\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/24.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/24-300x156.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/24-768x399.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nella fattispecie, scelgo il \u201c<em>FiltersStatus<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/25.png\" alt=\"\" class=\"wp-image-303\" style=\"width:630px;height:250px\" width=\"630\" height=\"250\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/25.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/25-300x119.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/25-768x305.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>E lo modifichiamo alla scopo che escluda le pagine \u201c404\u201d, ecco lo script completo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/26.png\" alt=\"\" class=\"wp-image-305\" style=\"width:630px;height:298px\" width=\"630\" height=\"298\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/26.png 867w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/26-300x142.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/26-768x364.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi \u201cAttack\u201d ed ecco la risposta:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/27.png\" alt=\"\" class=\"wp-image-307\" style=\"width:630px;height:293px\" width=\"630\" height=\"293\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/27.png 843w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/27-300x140.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/27-768x358.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Noto che col suffisso \u201c<em>admin<\/em>\u201d ho tentato l\u2019accesso ad una pagina alla quale non sono autorizzato, ci\u00f2 significa che la pagina esiste. Raffino l\u2019iterazione aggiungendo il suffisso \u201c<em>admin<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/28.png\" alt=\"\" class=\"wp-image-309\" style=\"width:630px;height:366px\" width=\"630\" height=\"366\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/28.png 876w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/28-300x174.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/28-768x446.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Rilancio lo script, ma purtroppo ottengo nuovamente una pagina alla quale non sono autorizzato accedere:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/29.png\" alt=\"\" class=\"wp-image-311\" style=\"width:630px;height:291px\" width=\"630\" height=\"291\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/29.png 873w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/29-300x139.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/29-768x355.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Provo un\u2019altra strada, accedo con le classiche credenziali: hakin9\/burpsuite:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/30.png\" alt=\"\" class=\"wp-image-313\" style=\"width:630px;height:267px\" width=\"630\" height=\"267\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/30.png 849w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/30-300x127.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/30-768x326.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Riesco ad accedere ma non ottengo <em>flag<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/31.png\" alt=\"\" class=\"wp-image-314\" style=\"width:630px;height:217px\" width=\"630\" height=\"217\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/31.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/31-300x104.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/31-768x265.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Allora mi sposto sul tab \u201cProxy\u201d e noto che vi \u00e8 una sessione cookie relativa all\u2019accesso appena ottenuto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/32.png\" alt=\"\" class=\"wp-image-315\" style=\"width:630px;height:317px\" width=\"630\" height=\"317\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/32.png 882w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/32-300x151.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/32-768x387.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi invio al \u201cRepeater\u201d, dove al posto di \u201c<em>dashboard<\/em>\u201d sostituisco \u201c<em>admin\/secret<\/em>\u201d, clicco su \u201cs<em>end<\/em>\u201d ed ottengo questa volta \u201c<em>Invalid referer<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/33.png\" alt=\"\" class=\"wp-image-317\" style=\"width:630px;height:300px\" width=\"630\" height=\"300\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/33.png 875w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/33-300x143.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/33-768x366.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Referer\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Referer<\/a><\/p>\n\n\n\n<p>Poich\u00e9 \u201cReferer\u201d tiene traccia anche della pagina da dove \u201cprovengo\u201d, aggiungo un \u201cReferer\u201d alla pagina \u201c<em>admin<\/em>\u201d che so che esiste, infatti invio con \u201c<em>Send<\/em>\u201d e ottengo \u201c200 OK\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/34.png\" alt=\"\" class=\"wp-image-320\" style=\"width:630px;height:279px\" width=\"630\" height=\"279\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/34.png 899w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/34-300x133.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/34-768x341.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi invio al browser:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/35.png\" alt=\"\" class=\"wp-image-321\" style=\"width:630px;height:318px\" width=\"630\" height=\"318\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/35.png 888w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/35-300x152.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/35-768x388.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/36.png\" alt=\"\" class=\"wp-image-322\" style=\"width:630px;height:231px\" width=\"630\" height=\"231\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/36.png 899w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/36-300x110.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/36-768x282.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Copio ed incollo il link al posto dell\u2019url della pagina e ottengo l\u2019accesso:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/37.png\" alt=\"\" class=\"wp-image-323\" style=\"width:630px;height:71px\" width=\"630\" height=\"71\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/37.png 825w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/37-300x34.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/37-768x87.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Origin\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Origin<\/a><\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>RBAC<\/strong> &#8211; <strong>Role Based Access Control<\/strong><\/p>\n\n\n\n<p>Invio la pagina di login iniziale all\u2019Intruder:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/38.png\" alt=\"\" class=\"wp-image-328\" style=\"width:630px;height:387px\" width=\"630\" height=\"387\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/38.png 897w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/38-300x185.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/38-768x473.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi aggiungo l\u2019operatore di conversione %s per iterare fra le varie pagine (endpoint enumeration):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/39.png\" alt=\"\" class=\"wp-image-330\" style=\"width:630px;height:361px\" width=\"630\" height=\"361\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/39.png 881w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/39-300x172.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/39-768x441.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>In questo caso per\u00f2 ottengo un risultato diverso dai precedenti, intanto un codice di stato 302. Si tratta di un<a href=\"https:\/\/www.serverplan.com\/blog\/codici-di-stato-http\/\"> codice status HTTP<\/a> della pagina web che indica lo spostamento temporaneo della risorsa. Come tutti gli status code 3XX si riferisce a un <strong>cambiamento<\/strong> di indirizzo della pagina. Ma mentre il redirect 301 si riferisce a un reindirizzamento permanente \u2013 la pagina non esiste pi\u00f9 e sposto su un nuovo<a href=\"https:\/\/www.serverplan.com\/blog\/indirizzo-url\/\"> URL<\/a> \u2013 con la condizione<strong> HTTP 302<\/strong> c\u2019\u00e8 un cambio momentaneo. Che presuppone un ritorno alla condizione precedente. Possiamo dire che un <strong>reindirizzamento 302 <\/strong>\u00e8 una modifica temporanea che porta gli utenti verso una nuova risorsa per un periodo limitato, fino a quando il reindirizzamento non viene rimosso del tutto.Infatti, come indicato dai \u201c<em>Location<\/em>\u201d, il reindirizzamento \u00e8 verso \u201c\/m3\/v2\/\u201d, ovvero la pagina iniziale di login.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/40.png\" alt=\"\" class=\"wp-image-331\" style=\"width:630px;height:361px\" width=\"630\" height=\"361\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/40.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/40-300x172.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/40-768x441.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Provo a sfruttare questa caratteristica accedendo con le credenziali \u201c<em>hakin9\/burpsuite<\/em>\u201d e una volta stabilita una sessione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/41.png\" alt=\"\" class=\"wp-image-333\" style=\"width:630px;height:217px\" width=\"630\" height=\"217\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/41.png 899w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/41-300x104.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/41-768x266.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>sostituisco \u201c<em>dashboard<\/em>\u201d con \u201c<em>admin<\/em>\u201d e ottengo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/42.png\" alt=\"\" class=\"wp-image-335\" style=\"width:630px;height:210px\" width=\"630\" height=\"210\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/42.png 753w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/42-300x100.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>\u2026 questo mi permette di sfruttare il \u201c<em>roleID<\/em>\u201d, quindi nvio la pagina al \u201c<em>Repeater<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/43.png\" alt=\"\" class=\"wp-image-336\" style=\"width:630px;height:371px\" width=\"630\" height=\"371\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/43.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/43-300x177.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/43-768x453.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>quindi \u201c<em>Send<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/44.png\" alt=\"\" class=\"wp-image-337\" style=\"width:630px;height:275px\" width=\"630\" height=\"275\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/44.png 900w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/44-300x131.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/44-768x335.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Aggiungo dopo \u201c<em>admin<\/em>\u201d <strong>?roleId=<\/strong> seguito dall\u2019ID che si solito \u00e8 un numero, per esempio \u201c0\u201d restituisce un \u201c<em>Invalid role ID<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/45.png\" alt=\"\" class=\"wp-image-339\" style=\"width:630px;height:318px\" width=\"630\" height=\"318\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/45.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/45-300x152.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/45-768x388.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Invio il tutto all\u2019Intruder:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/46.png\" alt=\"\" class=\"wp-image-340\" style=\"width:630px;height:318px\" width=\"630\" height=\"318\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/46.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/46-300x152.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/46-768x388.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi programmo un attacco a brurteforce al roleId e filtro escludendo le risposte http con status 401:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/47.png\" alt=\"\" class=\"wp-image-341\" style=\"width:630px;height:381px\" width=\"630\" height=\"381\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/47.png 881w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/47-300x181.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/47-768x465.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>ed ecco la risposta:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/48.png\" alt=\"\" class=\"wp-image-342\" style=\"width:630px;height:318px\" width=\"630\" height=\"318\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/48.png 830w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/48-300x151.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/48-768x388.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ora possio chiedere la relativa sessione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/49.png\" alt=\"\" class=\"wp-image-344\" style=\"width:630px;height:384px\" width=\"630\" height=\"384\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/49.png 866w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/49-300x183.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/49-768x468.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e copiarla nella pagina di admin, oppure inserire direttamente il roleId individuato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/50.png\" alt=\"\" class=\"wp-image-345\" style=\"width:630px;height:92px\" width=\"630\" height=\"92\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/50.png 801w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/50-300x44.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/50-768x112.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e trovare il flag.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Insecure Deserialization<\/strong><\/p>\n\n\n\n<p>La deserializzazione non sicura si verifica quando i dati controllabili dall\u2019utente vengono \u201c<em>deserializzati<\/em>\u201d da un sito web. Ci\u00f2 consente potenzialmente a un utente malintenzionato di manipolare oggetti serializzati per passare dati dannosi nel codice dell\u2019applicazione. \u00c8 persino possibile sostituire un oggetto serializzato con un oggetto di una classe completamente diversa.<\/p>\n\n\n\n<p>Accedo con le classiche credenziali e noto che oltre al cookie di sessione ho quello relativo all\u2019user:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/51.png\" alt=\"\" class=\"wp-image-349\" style=\"width:630px;height:355px\" width=\"630\" height=\"355\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/51.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/51-300x169.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/51-768x434.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Se ricarico la pagina, trovo quel cookie user anche nel \u201c<em>Request<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/52.png\" alt=\"\" class=\"wp-image-351\" style=\"width:630px;height:391px\" width=\"630\" height=\"391\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/52.png 899w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/52-300x186.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/52-768x477.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Cerchiamo di capire cosa sono queste stringhe. Invio la pagina all\u2019Intruder, quindi sostituisco l\u2019endpoint \u201c<em>dashboard<\/em>\u201d con l\u2019operatore di conversione %s al quale passare i valori della lista \u201c<em>endpoints<\/em>\u201d e filtro i risultati escludendo HTTP Status 404:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/53.png\" alt=\"\" class=\"wp-image-353\" style=\"width:630px;height:360px\" width=\"630\" height=\"360\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/53.png 885w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/53-300x172.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/53-768x439.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ed ecco il risultato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/54.png\" alt=\"\" class=\"wp-image-354\" style=\"width:630px;height:323px\" width=\"630\" height=\"323\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/54.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/54-300x154.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/54-768x394.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>mando la stessa pagina al \u201c<em>Repeater<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/55.png\" alt=\"\" class=\"wp-image-355\" style=\"width:630px;height:150px\" width=\"630\" height=\"150\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/55.png 887w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/55-300x72.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/55-768x184.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Se invio \u201c<em>Send<\/em>\u201d con endpoint \u201c<em>dashboard<\/em>\u201d, ovviamente la pagina funziona:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/56.png\" alt=\"\" class=\"wp-image-356\" style=\"width:630px;height:344px\" width=\"630\" height=\"344\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/56.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/56-300x164.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/56-768x421.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e funziona anche se sostituisco con \u201c<em>admin<\/em>\u201d, infatti la pagina mi restituisce un http status \u201c<em>UNAUTHORIZED<\/em>\u201d. Notiamo due cose, per\u00f2: l\u2019uso del linguaggio di programmazione Python e che il cookie user non \u00e8 cambiato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/57.png\" alt=\"\" class=\"wp-image-357\" style=\"width:630px;height:292px\" width=\"630\" height=\"292\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/57.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/57-300x139.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/57-768x356.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Perci\u00f2 provo a intervenire su quel cookie utente. Noto che modificando ottengo un 500 INTERNAL SERVER ERROR a causa di una stringa in codifica base64 non valida:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/58.png\" alt=\"\" class=\"wp-image-358\" style=\"width:630px;height:315px\" width=\"630\" height=\"315\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/58.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/58-300x150.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/58-768x384.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>\u00c8 possibile manipolare le stringhe per operazioni di codifica e decodifica codificate  direttamente in Burp Suite attraverso le funzioni chre troviamo nel tab \u201c<em>Decoder<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/59.png\" alt=\"\" class=\"wp-image-359\" style=\"width:630px;height:149px\" width=\"630\" height=\"149\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/59.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/59-300x71.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/59-768x182.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Oppure usare la libreria \u201c<em>pickle<\/em>\u201d di Python per serializzare\/deserializzare dato che che l\u2019applicazione usa appunto Python:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"653\" height=\"206\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/60.png\" alt=\"\" class=\"wp-image-361\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/60.png 653w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/60-300x95.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>decodifico il cookie user:<\/p>\n\n\n\n<p class=\"has-text-align-left\"><code>&gt;&gt;&gt; pickle.loads(base64.b64decode(\u2018.......\u2019))<\/code><\/p>\n\n\n\n<p>infatti restituisce esattemante l\u2019username:<\/p>\n\n\n\n<p class=\"has-text-align-left\"><code>{\u2018currente_user\u2019: \u2018hakin9\u2019}<\/code><\/p>\n\n\n\n<p>il risultato lo assegno al coockie:<\/p>\n\n\n\n<p><code>&gt;&gt;&gt; cookie = pickle.loads(base64.base64decode(\u2018.......\u2019))&nbsp;<\/code><\/p>\n\n\n\n<p>Quello che voglio ottenere \u00e8 la codifica di un altro utente, ovvero \u201c<em>admin<\/em>\u201d&nbsp; che possa garantire l\u2019accesso, quindi ne assegno il nome a <em>current_user<\/em>:<\/p>\n\n\n\n<p><code>&gt;&gt;&gt; current_user = {\u2018current_user\u2019: \u2018admin\u2019}<\/code><\/p>\n\n\n\n<p><code>&gt;&gt;&gt; base64.b64encode(pickle.dumps(current_user))<\/code><\/p>\n\n\n\n<p>ed ecco \u201c<em>admin<\/em>\u201d codificato in base64:<\/p>\n\n\n\n<p><em> <\/em><code>b \u2018....\u2019&nbsp;<\/code><\/p>\n\n\n\n<p>Quindi copio il valore tra gli apici e lo incollo sostituendo il precedente cookie user&nbsp; e con \u201c<em>send<\/em>\u201d posso verificare che la risposta mi da un HTTP 200 OK status:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/61.png\" alt=\"\" class=\"wp-image-371\" style=\"width:630px;height:285px\" width=\"630\" height=\"285\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/61.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/61-300x136.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/61-768x349.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Invio a browser:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/62.png\" alt=\"\" class=\"wp-image-373\" style=\"width:630px;height:264px\" width=\"630\" height=\"264\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/62.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/62-300x126.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/62-768x323.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Incollo il link nella pagina di accesso:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/63.png\" alt=\"\" class=\"wp-image-374\" style=\"width:630px;height:107px\" width=\"630\" height=\"107\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/63.png 717w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/63-300x51.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>E ottengo l\u2019accesso come admin e trovo il flag.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Forging JWT<\/strong><\/p>\n\n\n\n<p>I token Web JSON (JSON Web Tokens o JWT) sono uno standard aperto (RFC 7519) per la creazione di token di accesso sicuri e compatti. Vengono ampiamente utilizzati per l\u2019autenticazione e l\u2019autorizzazione in applicazioni web e API.<\/p>\n\n\n\n<p>Un token JWT \u00e8 una stringa codificata che consiste di tre sezioni separate da punti: l\u2019intestazione (header), il payload (contenuto) e la firma (signature). Ognuna di queste sezioni \u00e8 codificata in Base64 e pu\u00f2 essere facilmente decodificata per ottenere i dati contenuti all\u2019interno del token.<\/p>\n\n\n\n<p>L\u2019intestazione contiene informazioni sull\u2019algoritmo di firma utilizzato e il tipo di token. Il payload contiene le informazioni aggiuntive specifiche dell\u2019applicazione, come l\u2019identit\u00e0 dell\u2019utente, i diritti di accesso o altre informazioni pertinenti. La firma viene utilizzata per verificare l\u2019integrit\u00e0 del token e garantire che non sia stato manomesso.<\/p>\n\n\n\n<p>Un aspetto importante dei token JWT \u00e8 che sono stateless, ovvero tutte le informazioni necessarie per verificare l&#8217;autenticit\u00e0 e l\u2019autorizzazione sono contenute nel token stesso. Questo consente ai server di evitare di dover memorizzare lo stato del token o di eseguire query al database per ogni richiesta.<\/p>\n\n\n\n<p>I token JWT offrono diversi vantaggi, tra cui:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sicurezza: i token JWT possono essere firmati digitalmente utilizzando algoritmi crittografici, garantendo l\u2019integrit\u00e0 e l\u2019autenticit\u00e0 dei dati;<\/li>\n\n\n\n<li>portabilit\u00e0: i token JWT sono autocontenuti e possono essere trasportati facilmente come stringhe nei campi delle richieste HTTP o come dati in formato JSON;<\/li>\n\n\n\n<li>scalabilit\u00e0: i server possono verificare l\u2019autenticit\u00e0 dei token in modo efficiente senza dover accedere a un database o a una memoria condivisa;<\/li>\n\n\n\n<li>estensibilit\u00e0: \u00e8 possibile aggiungere campi personalizzati nel payload dei token per includere informazioni aggiuntive specifiche dell\u2019applicazione;<\/li>\n\n\n\n<li>interoperabilit\u00e0: JWT \u00e8 uno standard ampiamente adottato e supportato da numerosi linguaggi di programmazione e framework.<\/li>\n<\/ul>\n\n\n\n<p>Tuttavia, \u00e8 importante notare che i token JWT devono essere utilizzati correttamente e con precauzione. Alcuni aspetti da considerare includono la corretta gestione delle chiavi di firma, la scadenza dei token e l\u2019uso di connessioni sicure per trasmettere i token.<\/p>\n\n\n\n<p>In conclusione, i token JWT offrono un meccanismo flessibile e sicuro per l\u2019autenticazione e l\u2019autorizzazione nelle applicazioni web e API. Consentono l\u2019implementazione di flussi di autenticazione come OAuth 2.0 e forniscono un modo efficiente per trasportare e verificare le informazioni di autenticazione e autorizzazione tra le parti coinvolte.<\/p>\n\n\n\n<p><a href=\"https:\/\/jwt.io\/\">https:\/\/jwt.io\/<\/a> consente di decodificare, verificare e generare JWT.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/64.png\" alt=\"\" class=\"wp-image-379\" style=\"width:630px;height:365px\" width=\"630\" height=\"365\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/64.png 899w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/64-300x174.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/64-768x446.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Prima di accedere con le consuete credenziali, verifichiamo se sono abilitate le estensioni JWT:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/65.png\" alt=\"\" class=\"wp-image-380\" style=\"width:630px;height:227px\" width=\"630\" height=\"227\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/65.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/65-300x108.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/65-768x277.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>questo consentir\u00e0 di vedere evidenziate le richieste che utilizzano tali token:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/66.png\" alt=\"\" class=\"wp-image-381\" style=\"width:630px;height:337px\" width=\"630\" height=\"337\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/66.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/66-300x161.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/66-768x412.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Alcuni siti web usano il JWT per l\u2019autorizzazione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/67.png\" alt=\"\" class=\"wp-image-383\" style=\"width:630px;height:348px\" width=\"630\" height=\"348\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/67.png 882w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/67-300x166.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/67-768x425.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Se nell\u2019url della pagina sostituisco <em>dashboard <\/em>con <em>admin <\/em>ottengo come risultato \u201c<em>Unauthorized<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/68.png\" alt=\"\" class=\"wp-image-385\" style=\"width:630px;height:381px\" width=\"630\" height=\"381\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/68.png 896w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/68-300x182.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/68-768x465.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Invio allora quest\u2019ultima risposta al <em>repeater<\/em> e avendo l\u2019estensione JWT abilitata, trovo il tab \u201c<em>JSON Web Token<\/em>\u201d disponibile:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/69.png\" alt=\"\" class=\"wp-image-386\" style=\"width:630px;height:364px\" width=\"630\" height=\"364\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/69.png 822w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/69-300x174.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/69-768x445.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>dove trovo i dettagli del JWT:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/70.png\" alt=\"\" class=\"wp-image-387\" style=\"width:362px;height:447px\" width=\"362\" height=\"447\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/70.png 362w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/70-243x300.png 243w\" sizes=\"auto, (max-width: 362px) 85vw, 362px\" \/><\/figure>\n\n\n\n<p><br>Provo a cambiare lo \u201c<em>username<\/em>\u201d da <em>hakin9<\/em> a <em>admin<\/em>, quindi <em>send<\/em>&nbsp; e vediamo cosa succede:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/71.png\" alt=\"\" class=\"wp-image-389\" style=\"width:347px;height:411px\" width=\"347\" height=\"411\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/71.png 347w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/71-253x300.png 253w\" sizes=\"auto, (max-width: 347px) 85vw, 347px\" \/><\/figure>\n\n\n\n<p>Purtroppo restituisce un errore di \u201c<em>signature<\/em>\u201d perch\u00e8 \u00e8 fallita ovviamente la verifica della firma:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/72.png\" alt=\"\" class=\"wp-image-390\" style=\"width:630px;height:398px\" width=\"630\" height=\"398\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/72.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/72-300x190.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/72-768x486.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Provo a cancellare la firma:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/73.png\" alt=\"\" class=\"wp-image-392\" style=\"width:630px;height:254px\" width=\"630\" height=\"254\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/73.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/73-300x121.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/73-768x310.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e riusco a ottenere uno stato HTTP 200:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/74.png\" alt=\"\" class=\"wp-image-394\" style=\"width:630px;height:305px\" width=\"630\" height=\"305\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/74.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/74-300x145.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/74-768x372.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi chiedo la sessione browser:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/75.png\" alt=\"\" class=\"wp-image-396\" style=\"width:630px;height:302px\" width=\"630\" height=\"302\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/75.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/75-300x144.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/75-768x369.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>che una volta utilizzata mi dar\u00e0 accesso al flag.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Accedo con le consuete credenziali e sostituisco nell&#8217;url l&#8217;endpoint \u201c<em>dashboard<\/em>\u201d con \u201c<em>admin<\/em>\u201d, ma non ottengo l&#8217;accesso in quanto non autorizzato. Dall&#8217;HTTPhistory invio quest&#8217;ultima pagina al \u201c<em>Repeater<\/em>\u201d quindi apro la scheda \u201c<em>JSON Web Token<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-8-1024x710.png\" alt=\"\" class=\"wp-image-591\" style=\"width:630px;height:436px\" width=\"630\" height=\"436\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-8-1024x710.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-8-300x208.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-8-768x533.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-8-1200x833.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-8.png 1280w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Cambio il valore di \u201c<em>username<\/em>\u201d da \u201c<em>hakin9<\/em>\u201d a \u201c<em>admin<\/em>\u201d, quindi \u201c<em>Send<\/em>\u201d, ma ottengo un errore sulla validit\u00e0 della \u201c<em>firma<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-3-1024x710.png\" alt=\"\" class=\"wp-image-592\" style=\"width:630px;height:436px\" width=\"630\" height=\"436\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-3-1024x710.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-3-300x208.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-3-768x533.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-3-1200x833.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-3.png 1280w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Mi sposto nella scheda \u201c<em>Raw<\/em>\u201d e provo a eliminare la \u201c<em>firma<\/em>\u201d e ottengo un altro errore che mi dice che \u201c<em>Algorithm is not set to None<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-4-1024x710.png\" alt=\"\" class=\"wp-image-593\" style=\"width:630px;height:436px\" width=\"630\" height=\"436\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-4-1024x710.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-4-300x208.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-4-768x533.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-4-1200x833.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-4.png 1280w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Torno alla scheda \u201c<em>JSON Web Token<\/em>\u201d e cambio il valore di \u201c<em>alg<\/em>\u201d da \u201c<em>HS256<\/em>\u201d a \u201c<em>None<\/em>\u201d ottenendo cos\u00ec un HTTP 200 status OK:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-3-1024x710.png\" alt=\"\" class=\"wp-image-594\" style=\"width:630px;height:436px\" width=\"630\" height=\"436\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-3-1024x710.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-3-300x208.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-3-768x533.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-3-1200x833.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-3.png 1280w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi \u201c<em>Request in browser<\/em>\u201d &gt; \u201c<em>In original session<\/em>\u201d e l&#8217;url cos\u00ec ottentuto lo incollo sl posto di quello della pagina web e ottengo il flag.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Cracking Keys<\/strong><\/p>\n\n\n\n<p>Accedo con le solite credenziali, quindi nell\u2019url della pagina sostituisco <em>dashboard<\/em> con <em>admin<\/em> e ottengo come risposta \u201c<em>Unauthorized<\/em>\u201d.<br>Dal <em>Raw<\/em> del <em>Request<\/em> copio il JWT e lo uso con lo script python \u201c<em><a href=\"https:\/\/github.com\/ticarpi\/jwt_tool\" data-type=\"URL\" data-id=\"https:\/\/github.com\/ticarpi\/jwt_tool\">jwt_tool.py<\/a><\/em>\u201d (dove <strong>-C<\/strong> sta per cracking e <strong>-d<\/strong> per indicare quale dizionario da utilizzare):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/76-1.png\" alt=\"\" class=\"wp-image-399\" style=\"width:630px;height:340px\" width=\"630\" height=\"340\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/76-1.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/76-1-300x162.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/76-1-768x415.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>e ottengo \u201c<em>hidden<\/em>\u201d come valore di chiave corretto.<\/p>\n\n\n\n<p>Utilizzando <em>jwt.io<\/em> creo la firma corretta: assegno \u201c<em>admin<\/em>\u201d a \u201c<em>username<\/em>\u201d e \u201c<em>hidden<\/em>\u201d al campo \u201c<em>secret<\/em>\u201d, quindi copio il JWT cos\u00ec ottenuto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/77.png\" alt=\"\" class=\"wp-image-401\" style=\"width:629px;height:351px\" width=\"629\" height=\"351\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/77.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/77-300x168.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/77-768x430.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Torno su Burp Suite e invio la pagina con \u201c<em>admin<\/em>\u201d al Repeater, quindi sostituisco il JWT presente con quello appena calcolato e verifico con \u201c<em>send<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/78.png\" alt=\"\" class=\"wp-image-403\" style=\"width:630px;height:378px\" width=\"630\" height=\"378\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/78.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/78-300x180.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/78-768x461.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Questa volta lo status HTTP \u00e8 200 Ok, per cui richiedo la sessione browser:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/79.png\" alt=\"\" class=\"wp-image-404\" style=\"width:630px;height:232px\" width=\"630\" height=\"232\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/79.png 885w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/79-300x111.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/79-768x283.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>&nbsp;quindi incollo url nel browser e ottengo l&#8217;accesso.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Effettuato come la solito il login, invio la pagina al Turbo Intruder, quindi sostituisco \u201c<em>dashboard<\/em>\u201d con l&#8217;operatore di conversione \u201c<em>%s<\/em>\u201d al quale passo la lista degli \u201c<em>endpoint<\/em>\u201d e filtro i risultati per ottenere solo lo stato HTTP 404:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3-1024x483.png\" alt=\"\" class=\"wp-image-597\" style=\"width:630px;height:297px\" width=\"630\" height=\"297\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3-1024x483.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3-300x141.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3-768x362.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3-1536x724.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3-1200x566.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-3.png 1578w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"has-dark-gray-color has-white-background-color has-text-color has-background\">Il risultato dello script restituisce l&#8217;endpoint \u201c<em>admin<\/em>\u201d e come errore lo stato HTTP 401 UNAUTHORIZED dovuto a \u201c<em>Invalid role for accessing the admin page<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-2-1024x529.png\" alt=\"\" class=\"wp-image-600\" style=\"width:630px;height:325px\" width=\"630\" height=\"325\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-2-1024x529.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-2-300x155.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-2-768x397.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-2-1200x620.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-2.png 1459w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>&#8230; quindi devo cambiare il ruolo per l&#8217;utente \u201c<em>admin<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-2.png\" alt=\"\" class=\"wp-image-601\" style=\"width:630px;height:486px\" width=\"630\" height=\"486\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-2.png 987w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-2-300x232.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-2-768x593.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Per fare questo ho bisogno della chiave segreta necessaria per la \u201c<em>firma<\/em>\u201d, quindi utilizzo il \u201cj<em>wt_tool.py<\/em>\u201d per recuperarlo utilizzando il JWT dell&#8217;utente \u201c<em>hakin9<\/em>\u201d come input:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-4-1024x480.png\" alt=\"\" class=\"wp-image-602\" style=\"width:630px;height:295px\" width=\"630\" height=\"295\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-4-1024x480.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-4-300x140.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-4-768x360.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-4-1200x562.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-4.png 1277w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Copio il JWT e lo inserisco nel modulo di codifica del sito \u201c<em>jwt.io<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-2-1024x681.png\" alt=\"\" class=\"wp-image-604\" style=\"width:630px;height:418px\" width=\"630\" height=\"418\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-2-1024x681.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-2-300x200.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-2-768x511.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/9-2.png 1048w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi cambio il valore di \u201c<em>username<\/em>\u201d e \u201c<em>role<\/em>\u201d entrambi in \u201c<em>admin<\/em>\u201d e inserisco la chiave segreta \u201c<em>123NotAParticularyGreatSecret!!!<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-2-1024x595.png\" alt=\"\" class=\"wp-image-606\" style=\"width:630px;height:366px\" width=\"630\" height=\"366\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-2-1024x595.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-2-300x174.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-2-768x446.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-2-1200x697.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/10-2.png 1208w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Mando la pagina al \u201c<em>Repeater<\/em>\u201d e sostituisco il vecchio JWT con quello nuovo appena creato, poi \u201c<em>Send<\/em>\u201d e controllo di avere uno stato HTTP 200 OK:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-1-1024x839.png\" alt=\"\" class=\"wp-image-607\" style=\"width:630px;height:516px\" width=\"630\" height=\"516\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-1-1024x839.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-1-300x246.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-1-768x629.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/11-1.png 1033w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Richiedo la sessione originale nel browser e la incollo nell&#8217;url ottenendo cos\u00ec l&#8217;accesso voluto.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Implementation Flaws<\/strong><\/p>\n\n\n\n<p>Accedo con le solite credenziali e sostituisco \u201c<em>dashboard<\/em>\u201d con \u201c<em>admin<\/em>\u201d e anche in questo caso risulta che non sono autorizzato. Invio la pagina con \u201c<em>admin<\/em>\u201d al Repeater e apro il tab \u201c<em>JWT Web Token<\/em>\u201d, qui posso notare un altro tag nell\u2019header, ovvero il \u201c<em>kid<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/80.png\" alt=\"\" class=\"wp-image-407\" style=\"width:338px;height:441px\" width=\"338\" height=\"441\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/80.png 338w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/80-230x300.png 230w\" sizes=\"auto, (max-width: 338px) 85vw, 338px\" \/><\/figure>\n\n\n\n<p>L\u2019attestazione \u201ckid\u201d&#8217; (ID chiave) \u00e8 un\u2019attestazione facoltativa in un JSON Web Token (JWT) che viene utilizzata per identificare la chiave usata per firmare il JWT. Lo scopo dell\u2019attestazione \u201ckid\u201d \u00e8 consentire ai destinatari del JWT di determinare quale chiave \u00e8 stata utilizzata per firmare il token, in modo che possano cercare la chiave pubblica corrispondente e verificare la firma. Ci\u00f2 \u00e8 particolarmente utile quando sono in uso pi\u00f9 chiavi, ad esempio quando si ruotano le chiavi o si utilizzano chiavi diverse per scopi diversi.<\/p>\n\n\n\n<p>L\u2019attestazione \u201ckid\u201d \u00e8 inclusa nell\u2019intestazione JWT e il suo valore \u00e8 una stringa che identifica in modo univoco la chiave usata per firmare il token. Quando il destinatario di un JWT riceve il token, pu\u00f2 utilizzare l\u2019attestazione \u201ckid\u201d per cercare la chiave pubblica corrispondente alla chiave utilizzata per firmare il JWT e quindi utilizzare quella chiave pubblica per verificare la firma.<\/p>\n\n\n\n<p>\u00c8 importante notare che l\u2019attestazione \u201ckid\u201d \u00e8 facoltativa e non tutti i JWT la includeranno. Tuttavia, \u00e8 consigliabile includerla quando possibile, in quanto pu\u00f2 migliorare notevolmente la sicurezza e la facilit\u00e0 d\u2019uso dei JWT nelle applicazioni.<\/p>\n\n\n\n<p>Una possibile vulnerabilit\u00e0 relativa al \u201ckid\u201d \u00e8 che a volte pu\u00f2 indicare il percorso dove la chiave \u00e8 memorizzata all\u2019interno del server, infatti se copio il percorso e lo sostituisco ad \u201c<em>admin<\/em>\u201d nell\u2019url, otteniamo la chiave che ha generato il token:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/81.png\" alt=\"\" class=\"wp-image-409\" style=\"width:630px;height:220px\" width=\"630\" height=\"220\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/81.png 759w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/81-300x105.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/82.png\" alt=\"\" class=\"wp-image-410\" style=\"width:630px;height:409px\" width=\"630\" height=\"409\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/82.png 668w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/82-300x195.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Copio l\u2019intero JWT e lo incollo sul sito \u201c<em>jwt.io<\/em>\u201d, quindi modifico con \u201c<em>admin<\/em>\u201d lo \u201c<em>username<\/em>\u201d e nel campo \u201c<em>secret<\/em>\u201d inserisco il valore della chiave che ha generato il JWT:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/83.png\" alt=\"\" class=\"wp-image-412\" style=\"width:630px;height:352px\" width=\"630\" height=\"352\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/83.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/83-300x168.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/83-768x429.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>La firma \u00e8 stata verivicata, allora posso utilizzare il nuovo JWT cos\u00ec ottenuto al posto di quello presente nel \u201c<em>Raw<\/em>\u201d del \u201c<em>Repeater<\/em>\u201d, verifico con \u201c<em>send<\/em>\u201d e quindi richiedo le sessione browser:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/84.png\" alt=\"\" class=\"wp-image-414\" style=\"width:630px;height:348px\" width=\"630\" height=\"348\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/84.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/84-300x166.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/84-768x425.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Utilizzando l\u2019url cos\u00ec ottenuto guadagno l\u2019accesso.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>OAuth 2.0 <strong>and CSRF<\/strong><\/strong><\/p>\n\n\n\n<p>OAuth (Open Authorization) \u00e8 un protocollo di autorizzazione standardizzato che consente a un utente di concedere l\u2019accesso a una risorsa protetta a un\u2019applicazione di terze parti senza condividere le proprie credenziali di accesso.<\/p>\n\n\n\n<p>In altre parole, OAuth consente a un utente di autorizzare un\u2019applicazione di terze parti (ad esempio, un\u2019applicazione mobile o un\u2019applicazione web) ad accedere alle proprie informazioni senza dover fornire le proprie credenziali di accesso a questa applicazione. OAuth utilizza un token di accesso che viene concesso all\u2019applicazione di terze parti dall\u2019utente, con il quale l\u2019applicazione pu\u00f2 accedere alla risorsa protetta.<\/p>\n\n\n\n<p>Questo protocollo di autorizzazione \u00e8 ampiamente utilizzato per consentire l\u2019accesso a servizi web e API, come i social network (ad esempio Facebook, Twitter, LinkedIn) e i servizi di archiviazione cloud (ad esempio Google Drive, Dropbox). OAuth viene utilizzato anche per la federazione delle identit\u00e0 e per l\u2019autenticazione unica, consentendo all\u2019utente di utilizzare le proprie credenziali di accesso per accedere a pi\u00f9 servizi, senza dover effettuare l\u2019accesso separatamente per ciascun servizio.<\/p>\n\n\n\n<p>OAuth \u00e8 un protocollo aperto e standardizzato, il che significa che pu\u00f2 essere utilizzato da qualsiasi sviluppatore per integrare i propri servizi con altri servizi esistenti.<\/p>\n\n\n\n<p>Una volta caricata la pagina di login, notiamo nell\u2019HTTPhistory due diversi host: \u201c<em>h9burpsuite<\/em>\u201d e \u201c<em>oauth2.h9burpsuite<\/em>\u201d, quest\u2019ultimo relativo all\u2019autenticazione mediante il protocollo \u201c<em>oauth<\/em>\u201d appunto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/85.png\" alt=\"\" class=\"wp-image-418\" style=\"width:630px;height:304px\" width=\"630\" height=\"304\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/85.png 764w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/85-300x145.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Sono importanti nel \u201c<em>Raw<\/em>\u201d i valori relativi a \u201c<em>client_id<\/em>\u201d,&nbsp; \u201c<em>response_type=code<\/em>\u201d e \u201c<em>scope<\/em>\u201d come visto in precedenza.&nbsp;<br>Andata a buon fine l\u2019autenticazione, veniamo reindirizzati alla pagina di \u201c<em>h9burpsuite<\/em>\u201d, con il nuovo \u201c<em>code<\/em>\u201d ovvero il token d\u2019accesso:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/86.png\" alt=\"\" class=\"wp-image-420\" style=\"width:630px;height:284px\" width=\"630\" height=\"284\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/86.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/86-300x135.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/86-768x347.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Infatti se torno alla pagina principale e clicco sul login di ottengo l\u2019accesso senza immettere nuovamente le credenziali.<\/p>\n\n\n\n<p>Vediamo come poter sfruttare l\u2019oauth. Dapprima effettuo il logout, quindi di nuovo login e inserisco le credenziali, ma prima di inviare mi sposto su Burp Suite e dal tab \u201c<em>Intercept<\/em>\u201d abilito l\u2019 \u201c<em>Intercept on<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/87.png\" alt=\"\" class=\"wp-image-422\" style=\"width:630px;height:301px\" width=\"630\" height=\"301\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/87.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/87-300x143.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/87-768x367.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>solo a questo punto completo il login inviando le credenziali, vedre\u00f2 popolarsi la pagina \u201c<em>Raw<\/em>\u201d dell\u2019 \u201c<em>Intercept<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/88.png\" alt=\"\" class=\"wp-image-424\" style=\"width:630px;height:247px\" width=\"630\" height=\"247\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/88.png 875w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/88-300x118.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/88-768x302.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>A questo punto, sempre nella pagina dell\u2019 \u201c<em>Intercept<\/em>\u201d, cliccho su \u201c<em>Forward<\/em>\u201d e interagisco con la pagina web del login, ripeter\u00f2 le operazioni alcune volte finch\u00e8 non otterr\u00f2 una risposta con \u201c<em>code=&#8230;<\/em>\u201d. Quindi tasto destro e copiamo l\u2019URL.:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/89.png\" alt=\"\" class=\"wp-image-425\" style=\"width:630px;height:346px\" width=\"630\" height=\"346\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/89.png 888w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/89-300x165.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/89-768x422.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ora non andiamo pi\u00f9 avanti col \u201c<em>Forward<\/em>\u201d perch\u00e8 avrei un reindirizzamento alla pagina precedente, ovvero quella che richiede l\u2019accettazione della mail, ma clicco su \u201c<em>Drop<\/em>\u201d e interrompo l\u2019 \u201c<em>Intercept<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/90.png\" alt=\"\" class=\"wp-image-428\" style=\"width:630px;height:401px\" width=\"630\" height=\"401\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/90.png 861w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/90-300x191.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/90-768x490.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Posto su off l\u2019 \u201c<em>Intercept<\/em>\u201d, mio sposto sulla pagina web e nell\u2019URL cancello tutto quello che riguarda il precedente oauth:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/91.png\" alt=\"\" class=\"wp-image-429\" style=\"width:630px;height:72px\" width=\"630\" height=\"72\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/91.png 876w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/91-300x35.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/91-768x89.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nella nuova pagina di login, inserisco l\u2019URL precedentemente copiata e ottengo cos\u00ec l\u2019accesso.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Caricata la pagina , dall\u2019http history di Burp Suite, invio l\u2019URL al Turbo Intruder<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9-1024x550.png\" alt=\"\" class=\"wp-image-609\" style=\"width:630px;height:338px\" width=\"630\" height=\"338\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9-1024x550.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9-300x161.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9-768x413.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9-1536x825.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9-1200x645.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/1-9.png 1621w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Usando lo script, itero fra gli endpoints, filtrando i risultati affinch\u00e9 vengano escluse le pagine con http STATUS 404:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4-1024x581.png\" alt=\"\" class=\"wp-image-610\" style=\"width:630px;height:357px\" width=\"630\" height=\"357\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4-1024x581.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4-300x170.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4-768x435.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4-1536x871.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4-1200x680.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/2-4.png 1561w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ottengo come risultato positivo l\u2019endpoint \u201c<em>.well-known<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5-1024x566.png\" alt=\"\" class=\"wp-image-611\" style=\"width:630px;height:348px\" width=\"630\" height=\"348\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5-1024x566.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5-300x166.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5-768x424.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5-1536x848.png 1536w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5-1200x663.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/3-5.png 1559w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Invio al Repeater e verifico con \u201c<em>send<\/em>\u201d ottengo uno stato HTTP 200 OK, ma nessun\u2019altra informazione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-4.png\" alt=\"\" class=\"wp-image-614\" style=\"width:630px;height:298px\" width=\"630\" height=\"298\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-4.png 915w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-4-300x142.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/4-4-768x364.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Mediante Turbo Intruder, allora, ripeto nuovamente la stessa operazione sull\u2019endpoint appena trovato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-4-1024x588.png\" alt=\"\" class=\"wp-image-615\" style=\"width:630px;height:361px\" width=\"630\" height=\"361\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-4-1024x588.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-4-300x172.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-4-768x441.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-4-1200x689.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/5-4.png 1461w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Ed ottengo un nuovo endpoint positivo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-3-1024x624.png\" alt=\"\" class=\"wp-image-616\" style=\"width:630px;height:383px\" width=\"630\" height=\"383\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-3-1024x624.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-3-300x183.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-3-768x468.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-3-1200x731.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/6-3.png 1459w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Nel Repeater verifico con \u201c<em>send<\/em>\u201d e questa volta ho una risposta positiva ma con maggiori informazioni:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-3-1024x712.png\" alt=\"\" class=\"wp-image-617\" style=\"width:630px;height:438px\" width=\"630\" height=\"438\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-3-1024x712.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-3-300x209.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-3-768x534.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-3-1200x835.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/7-3.png 1275w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Su quanto ottenuto effettuo \u201c<em>Request in Browser<\/em>\u201d -&gt; \u201c<em>In original session<\/em>\u201d e copio l\u2019url:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-5-1024x592.png\" alt=\"\" class=\"wp-image-619\" style=\"width:630px;height:364px\" width=\"630\" height=\"364\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-5-1024x592.png 1024w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-5-300x173.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-5-768x444.png 768w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-5-1200x694.png 1200w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/8-5.png 1223w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>E lo incollo nel mio browser ottenendo cos\u00ec il flag.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Redirect URI<\/strong><\/p>\n\n\n\n<p>Nell\u2019 HTTP history \u00e8 possibile notare il link del \u201c<em>redirect_uri<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/92.png\" alt=\"\" class=\"wp-image-433\" style=\"width:630px;height:358px\" width=\"630\" height=\"358\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/92.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/92-300x171.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/92-768x437.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Invio dunque al \u201c<em>Repeater<\/em>\u201d cos\u00ec da modificare il valore del \u201c<em>redirect_uri<\/em>\u201d all\u2019interno del \u201c<em>Decoded from<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/93.png\" alt=\"\" class=\"wp-image-434\" style=\"width:630px;height:247px\" width=\"630\" height=\"247\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/93.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/93-300x118.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/93-768x302.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Provo a decodificare \u201c<em>google.com<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/94.png\" alt=\"\" class=\"wp-image-435\" style=\"width:630px;height:279px\" width=\"630\" height=\"279\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/94.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/94-300x133.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/94-768x340.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Applico le modifiche \u201c<em>Apply changes<\/em>\u201d e invio con \u201c<em>Send<\/em>\u201d, il test non ha funzionato perch\u00e8 viene segnalato un errore di \u201c<em>Invalid URI<\/em>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/95.png\" alt=\"\" class=\"wp-image-437\" style=\"width:630px;height:249px\" width=\"630\" height=\"249\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/95.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/95-300x119.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/95-768x304.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Questo accade perch\u00e9 il redirect si aspetta \u201c<em>h9burpsuite:4499<\/em>\u201d all\u2019interno dell\u2019URI. Un modo per farlo \u00e8 quello di \u201c<em>ancorare<\/em>\u201d il dominio richiesto all\u2019interno dell\u2019URI mediante il simbolo del \u201c<em>cancelletto<\/em>\u201d <strong>#<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/96.png\" alt=\"\" class=\"wp-image-438\" style=\"width:630px;height:256px\" width=\"630\" height=\"256\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/96.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/96-300x122.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/96-768x313.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi applico la modifica, \u201c<em>Send<\/em>\u201d e questa volta ottengo uno status HTTP OK:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/97.png\" alt=\"\" class=\"wp-image-439\" style=\"width:630px;height:262px\" width=\"630\" height=\"262\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/97.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/97-300x125.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/97-768x320.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Copio l\u2019URI:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/98.png\" alt=\"\" class=\"wp-image-440\" style=\"width:630px;height:250px\" width=\"630\" height=\"250\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/98.png 894w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/98-300x119.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/98-768x306.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi su Proxy-&gt; Intercept, <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-bright-red-color\">ma senza attivarlo<\/mark>, carico nuovamente la pagina per il login e solo ora, <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-bright-red-color\">prima di fare login<\/mark>, attivo l\u2019Intercept. Quindi sostituisco il valore dell\u2019URI presente nell\u2019Intercept con quello copiato in precedenza:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/99.png\" alt=\"\" class=\"wp-image-442\" style=\"width:630px;height:233px\" width=\"630\" height=\"233\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/99.png 891w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/99-300x111.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/99-768x284.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/100.png\" alt=\"\" class=\"wp-image-443\" style=\"width:630px;height:148px\" width=\"630\" height=\"148\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/100.png 893w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/100-300x71.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/100-768x181.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p>Quindi \u201c<em>Forward<\/em>\u201d e fermo l\u2019Intercept, torno sulla pagina di login, inserisco la credenziali, ma questa volta vengo reindirizzato sulla pagina di google:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/101.png\" alt=\"\" class=\"wp-image-444\" style=\"width:630px;height:233px\" width=\"630\" height=\"233\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/101.png 890w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/101-300x111.png 300w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2023\/06\/101-768x285.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-medium-font-size\"><strong>Note su OpenID Connect + SAML<\/strong><\/p>\n\n\n\n<p><strong><code>OpenID Connect (OIDC)<\/code><\/strong> \u00e8 un protocollo di autenticazione basato su OAuth 2.0, che permette di ottenere informazioni di autenticazione e identit\u00e0 di un utente. OIDC \u00e8 stato sviluppato per fornire un\u2019alternativa pi\u00f9 sicura e interoperabile rispetto all\u2019originale protocollo OpenID.<\/p>\n\n\n\n<p>OIDC consente a un\u2019applicazione web di autenticare l\u2019utente tramite il flusso di OAuth 2.0 e di ricevere un ID Token che contiene informazioni sull\u2019utente, come l\u2019ID dell\u2019utente e il nome. L\u2019ID Token \u00e8 firmato digitalmente e pu\u00f2 essere verificato dall\u2019applicazione per garantire che sia stato emesso da un\u2019autorit\u00e0 di sicurezza attendibile.<\/p>\n\n\n\n<p>Inoltre, OIDC fornisce un endpoint denominato UserInfo che consente alle applicazioni di richiedere informazioni sull\u2019utente come ad esempio l\u2019indirizzo email o la data di nascita.<\/p>\n\n\n\n<p>OIDC \u00e8 diventato un protocollo popolare per l\u2019autenticazione su Internet ed \u00e8 stato adottato da molte aziende, come Google, Microsoft, Amazon e molti altri, per consentire l\u2019autenticazione degli utenti sui loro servizi e applicazioni web.<\/p>\n\n\n\n<p><strong><code>SAML (Security Assertion Markup Language)<\/code><\/strong> \u00e8 un protocollo standard per lo scambio di informazioni di autenticazione e autorizzazione tra diverse applicazioni web. SAML \u00e8 stato sviluppato per consentire l\u2019accesso sicuro a risorse web attraverso le frontiere organizzative, come ad esempio tra fornitori di servizi e fornitori di identit\u00e0.<\/p>\n\n\n\n<p>SAML si basa su una struttura di messaggi basata su XML e utilizza la crittografia per garantire la sicurezza delle informazioni di autenticazione e autorizzazione durante la trasmissione. Il protocollo SAML prevede tre ruoli principali:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fornitore di Identit\u00e0 (Identity Provider &#8211; IdP): il sistema che autentica l\u2019utente e fornisce un <em>assertion <\/em>(asserzione) SAML contenente informazioni di autenticazione e autorizzazione;<\/li>\n\n\n\n<li>Fornitore di Servizi (Service Provider &#8211; SP): il sistema che fornisce la risorsa protetta e che richiede l\u2019autenticazione e l\u2019autorizzazione tramite un <em>assertion <\/em>SAML;<\/li>\n\n\n\n<li>Utente Finale: l\u2019utente che accede alla risorsa protetta.<\/li>\n<\/ul>\n\n\n\n<p>Il processo di autenticazione e autorizzazione con SAML prevede l\u2019invio di un <em>Assertion SAML<\/em> dal Fornitore di Identit\u00e0 al Fornitore di Servizi per autorizzare l\u2019accesso all\u2019utente finale. L\u2019Assertion SAML contiene informazioni sulle credenziali di autenticazione dell\u2019utente, come l\u2019ID dell\u2019utente e le autorizzazioni.<\/p>\n\n\n\n<p>SAML \u00e8 stato adottato da molte organizzazioni come standard per l\u2019autenticazione sicura e l\u2019autorizzazione tra applicazioni web, in particolare in ambito Enterprise.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Exploiting Authentication and Access Control Mechanisms with Burp Suite. In questo articolo ho raccolto in maniera pi\u00f9 o meno ordinata alcuni appunti presi durante il relativo corso seguito su Hakin9, alla cui piattaforma rimando per il materiale necessario. Note sulla Burp Suite Community Edition. \u00c8 stata utilizzata la versione Community Edition e attese le limitazioni &hellip; <a href=\"https:\/\/www.fabriziogiancola.eu\/index.php\/2023\/06\/03\/burp-suite\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Exploiting Authentication and Access Control Mechanisms with Burp Suite&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":13,"footnotes":""},"categories":[5,15],"tags":[],"class_list":["post-135","post","type-post","status-publish","format-standard","hentry","category-burp-suite","category-ethical-hacking"],"_links":{"self":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts\/135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/comments?post=135"}],"version-history":[{"count":212,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts\/135\/revisions"}],"predecessor-version":[{"id":1144,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts\/135\/revisions\/1144"}],"wp:attachment":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/media?parent=135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/categories?post=135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/tags?post=135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}