Abbiamo hackerato GitHub per un mese
introduzione
Dopo una lunga pausa, torniamo con un nuovo articolo. Anche se in genere non partecipiamo a programmi di bug bounty a causa di altri impegni, abbiamo raccolto la sfida di hackerare GitHub per un mese e siamo entusiasti di condividere le nostre scoperte. Tutto è iniziato quando Shivam Singh (Mr. Rajput Hacker) mi ha contattato a novembre e mi ha incoraggiato a provare bug bounty. Abbiamo deciso di concentrarci su npmjs.com, una sussidiaria di GitHub. Nonostante il fatto che GitHub sia una grande azienda e il programma di bug bounty fosse pubblico su HackerOne, abbiamo ritenuto che valesse la pena provare.
Ricognizione
Nella nostra ricerca di vulnerabilità in npmjs.com, Th3Pr0xyB0y (Vansh Devgan) e Mr Rajput Hacker (Shivam Singh) hanno iniziato conducendo un'operazione di ricognizione. Abbiamo utilizzato il nostro prodotto interno, X (parte della suite CyberXplore), per raccogliere quante più informazioni possibili, inclusi indirizzi IP, porte aperte, schermate ed endpoint. Con la potenza del cloud computing, il processo di ricognizione è stato rapido ed efficiente.
Tuttavia, esaminando le informazioni raccolte, abbiamo scoperto che vi era un margine limitato per l'attacco al bersaglio, npmjs.com e npmjs.org. Il nostro prodotto interno, X , ha reso il processo di ricognizione un gioco da ragazzi e siamo entusiasti di annunciare che la beta privata sarà presto disponibile al pubblico .
Concentrandosi sulla logica aziendale
Il signor Rajput Hacker e io abbiamo deciso di concentrarci esclusivamente sui bug della logica aziendale nell'applicazione. Prima di iniziare la nostra ricerca, ci siamo assicurati di comprendere completamente l'applicazione. Ciò ha comportato un uso minimo di Burp Suite e un focus sulla comprensione delle funzionalità e dei processi principali dell'applicazione. Il nostro obiettivo era trovare eventuali punti deboli nella logica aziendale che potrebbero essere potenzialmente sfruttati. Limitando il nostro set di strumenti e concentrandoci sulla comprensione dell'applicazione, abbiamo mirato a scoprire eventuali vulnerabilità uniche o trascurate. Poiché npmjs.com era un'applicazione relativamente piccola, la nostra comprensione e le nostre annotazioni hanno richiesto meno di due ore per essere completate.
Vulnerabilità scoperte
Anche se abbiamo menzionato circa 9 vulnerabilità segnalate, ne scriveremo 3 qui oggi che sono riportate di seguito:
- Bypassare la verifica dell'accesso su npmjs.com
- Acquisizione pre-account su npmjs.com
- Problema di controllo degli accessi Su education.github.com
Descrizione –
Mentre esaminavamo la parte di autenticazione di npmjs.com e funzionalità comuni come l'aggiornamento dell'indirizzo e-mail e le funzionalità di aggiornamento del profilo, abbiamo scoperto uno strano comportamento su un'applicazione che ha attirato la nostra attenzione che era il formato del collegamento di verifica e-mail, del collegamento di reimpostazione della password e del collegamento inviato per aggiornare l'indirizzo e-mail.
Il collegamento è stato formattato come https://npmjs.com/verify/{some_random_token_here} per tutte le funzionalità che si tratti di reimpostazione della password, collegamento di verifica e-mail o qualsiasi collegamento XYZ su questo sito per qualsiasi scopo. Successivamente, abbiamo osservato che ogni volta che accedi all'applicazione invia un codice di verifica al tuo indirizzo e-mail registrato e devi inserirlo come parte della funzione di verifica dell'accesso (tipo di codice 2FA/MFA sull'e-mail) per accedere correttamente all'account . abbiamo quindi provato a bypassare questa funzionalità e siamo riusciti a bypassarla poiché abbiamo utilizzato completamente un'applicazione nelle ultime 2 ore conoscevamo ogni funzionalità, quindi siamo stati in grado di relazionarci e ottenere il bypass leggi i passaggi seguenti per riprodurre per vedere come abbiamo fatto.
Durante il nostro esame del processo di autenticazione e delle funzionalità comuni di npmjs.com, come l'aggiornamento di indirizzi e-mail e profili, abbiamo scoperto un comportamento peculiare nel formato dei collegamenti di verifica e-mail, incolla GitHub hackerato per un mese: ecco cosa abbiamo trovato, collegamenti di ripristino password, e collegamenti inviati per aggiornare gli indirizzi e-mail. Questi collegamenti sono stati formattati come https://npmjs.com/verify/{random_token} e sono stati utilizzati per tutte le funzionalità, inclusa la reimpostazione della password, la verifica dell'e-mail e altro.
Abbiamo anche notato che ogni volta che un utente accedeva all'applicazione, veniva inviato un codice di verifica all'indirizzo email registrato. Questo codice di verifica era necessario per completare il processo di accesso, fungendo da forma di autenticazione a due fattori. Seconda cosa che abbiamo notato Durante l'aggiornamento di un indirizzo e-mail su npmjs, il processo di aggiornamento si verificava senza richiedere la conferma della password. Verrà inviata un'e-mail sia al vecchio che al nuovo indirizzo e-mail. L'e-mail inviata al vecchio indirizzo informerà il destinatario che se la modifica non è stata apportata da lui, può fare clic su un collegamento (https://npmjs.com/verify/{some_random_token_here}) per annullare la modifica e rendere il suo vecchio indirizzo quello attuale. L'e-mail inviata al nuovo indirizzo conterrà un collegamento per verificare la nuova e-mail e collegarla all'account appena aggiornato.
Abbiamo riscontrato un problema sorprendente durante il tentativo di accedere a un account dopo aver aggiornato l'indirizzo e-mail nella pagina del profilo. Pur non avendo confermato o fatto clic su alcun collegamento né nella vecchia né nella nuova e-mail, il sistema ha visualizzato un messaggio che indicava che era stato inviato un codice di verifica al nuovo indirizzo non verificato. Ciò sembrava suggerire che non saremmo stati in grado di accedere. Tuttavia, a un esame più attento, abbiamo scoperto un'e-mail inviata al nostro vecchio indirizzo, che ci chiedeva di annullare la modifica per evitare il blocco dell'account. Facendo clic sul collegamento fornito ( https://npmjs.com/verify/{random_token}) per ripristinare l'e-mail, siamo stati indirizzati alla pagina di accesso. Con nostra sorpresa, quando abbiamo inserito le nostre credenziali, il sistema non ha chiesto il codice di verifica e invece ci ha permesso di accedere e annullare la modifica dell'email.
Tuttavia, dopo ulteriori indagini, siamo riusciti a bypassare questa funzionalità. La nostra profonda conoscenza dell'applicazione, acquisita trascorrendo due ore a familiarizzare con le sue caratteristiche, ci ha permesso di mettere in relazione diverse funzionalità e trovare il bypass. Di seguito sono riportati i passaggi per riprodurre il bypass.
Clicca qui o visitahttps://blog.cyberxplore.com/we-hacked-github-for-a-month-heres-what-we-found/Per leggere il blog completo completo pubblicato su CyberXplore Blog .
Non dimenticare di seguire i nostri ricercatori sulla sicurezza -
Grazie a tutti per la lettura Non dimenticare di lasciare un applauso se ti piace.
Seguici -
Twitter → @ MrRajputHacker @ Th3Pr0xyB0y
Instagram → @ MrRajputHacker @ vanshdevgan
Linkedin → MrRajputHacker @ th3pr0xyb0y
Medio → @ mrrajputhacker @ th3pr0xyb0y

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































