
Un workshop passo passo per sfruttare varie vulnerabilità nelle applicazioni Node.js e Java
In questo workshop passo-passo imparerai come sfruttare varie vulnerabilità reali presenti in versioni vulnerabili di pacchetti in un'applicazione Node.js e Java.
Puoi svolgere questo workshop in 2 diversi modi
OPPURE
Questo workshop ti guiderà attraverso l'installazione e lo sfruttamento di alcune applicazioni volutamente vulnerabili. Le applicazioni utilizzeranno pacchetti reali con vulnerabilità note, tra cui:
Questi exploit esistono in diverse applicazioni, la maggior parte delle quali dovrai installare localmente o su un'istanza cloud. Le istruzioni seguenti ti guideranno attraverso l'installazione locale, ma sei libero di provarle anche su istanze cloud remote.
Per ogni sezione di vulnerabilità in questo workshop, riceverai informazioni sulla vulnerabilità e sul pacchetto in cui risiede. Ti invitiamo a provare a hackerare l'applicazione per tentativi ed errori senza leggere alcun suggerimento all'inizio. Cerca di pensare a come ingannare la sanificazione dell'applicazione e di entrare nella mente di un hacker. I suggerimenti sono lì per quando ti blocchi, quindi leggili in ordine quando hai bisogno di una mano. Se riesci a completare l'hack senza suggerimenti, fantastico! Tuttavia, può essere utile leggere i suggerimenti dopo per assicurarti di aver violato il sistema nello stesso modo nostro! Inoltre, potrebbero esserci piccoli consigli da imparare.
A seconda della tua scelta, seleziona il manuale di installazione appropriato
Dal browser di tua scelta, vai a http://localhost:3001 e dovresti vedere la seguente pagina.

Prenditi qualche minuto per esplorare il sito e, in particolare, crea alcuni elementi todo, usando testo normale "Compra latte" così come usando markdown "Compra **molto** latte". Inoltre, naviga verso la modesta pagina about collegata dal fondo della homepage. Goditi il CSS-foo usato per creare questa pagina about. Nota: le PR inviate per rendere questa pagina più bella non verranno unite ;o)

Prima di tutto, guardiamola dal lato blu (difensivo). Fai il fork dell'applicazione goof sul tuo account GitHub. L'applicazione si trova su GitHub qui: https://github.com/snyk/goof. Dobbiamo scansionare la nostra applicazione per capire le dipendenze dirette e indirette presenti, nonché le vulnerabilità in ogni libreria. Per farlo, vai su https://snyk.io e clicca "Sign up" o "Log in" (se sei già un utente), in alto a destra del sito:

Clicca il pulsante "Log in with your GitHub":

Successivamente, importa il progetto goof che hai appena clonato. Seleziona goof dalla lista dei tuoi repo GitHub e clicca il pulsante "Import Projects" in alto a destra della finestra.

Quando il progetto è stato scansionato, lo vedrai nella tua dashboard:

Clicca il link package.json per vedere la pagina del progetto, che include l'elenco completo delle vulnerabilità di sicurezza:

Puoi cliccare sulle schede issues e dependencies per maggiori informazioni sulle vulnerabilità e la loro risoluzione, oltre a dove vengono introdotte nella tua applicazione. Noterai verso il fondo dell'elenco delle vulnerabilità una directory traversal nel pacchetto st. Esaminiamola più in dettaglio.

Un attacco di Directory Traversal (noto anche come path traversal) mira ad accedere a file e directory che si trovano al di fuori della cartella prevista. Manipolando file con sequenze "dot-dot-slash" (../) e relative variazioni, o utilizzando percorsi assoluti, potrebbe essere possibile accedere a file e directory arbitrari sul filesystem, inclusi codice sorgente, configurazione e altri file critici di sistema.
Le vulnerabilità Directory Traversal possono essere generalmente divise in due tipi:
Il pacchetto nell'applicazione goof che contiene una vulnerabilità di directory traversal che sfrutteremo è il pacchetto st. Dai un'occhiata alla documentazione di st e familiarizza con la libreria.
Ora dovresti sapere cos'è un directory traversal, cosa fa il pacchetto st e puoi andare avanti e hackerare l'applicazione — sei di nuovo nella squadra rossa! Cerca nell'applicazione dove potrebbe essere utilizzato il pacchetto st e prova a navigare verso una directory a cui non dovresti avere accesso.
Ecco alcuni suggerimenti per darti indizi se ti blocchi — cerca di guardarli solo dopo aver già provato da solo e aver bisogno di aiuto.
Clicca per vedere Suggerimento 1.
Clicca per vedere Suggerimento 2.
Clicca per vedere Suggerimento 3.
Clicca per vedere Suggerimento 4.
Clicca per vedere Suggerimento 5.
Clicca per vedere Suggerimento 6.
Clicca per vedere Suggerimento 7.
Clicca per vedere Suggerimento 8.
Clicca per vedere Suggerimento 9.
Naviga nel tuo filesystem come se fossi un attaccante per trovare 3 informazioni sensibili sulla tua macchina che probabilmente non vorresti che un attaccante vedesse.