Controllo molto codice, Scrivo exploits e ne ho accumulato più di 50 CVE nel corso di circa 6 anni di caccia agli insetti.
Quando ho iniziato la mia prima seria ricerca di bug cercavo progetti deboli che non erano stati ampiamente controllati da la community ( o milw0rm indietro nel giorno). Per fare questo ho usato Ricerca avanzata di SourceForge , che è cambiato molto. Fondamentalmente stavo cercando un progetto PHP che le persone scaricano e usano, ma non erano molto popolari. Diciamo circa ~ 1.000 download e meno di 1 anno. Ho trovato Ultimate PHP Board che si è rivelato molto insicuro .
Con il passare del tempo mi sono annoiato con progetti insicuri, quindi ho completamente cambiato le mie tattiche e ho iniziato a cercare progetti popolari. Ad esempio utilizzo PHPMyAdmin che è l'applicazione PHP più scaricata.
Dopo anni di test di penetrazione e sviluppo di applicazioni si ottiene una sorta di sesto senso su come funziona il codice e dove possono essere le aree problematiche. Puoi guardare una funzionalità e scrivere un'implementazione nella tua testa e individuare dove le cose potrebbero andare storte. Quindi in un test di penetrazione chiedo sempre a me stesso la stessa domanda: " Qual è la cosa peggiore che potrebbe accadere? ". E poi esci e concentrati sui test in base a questa domanda.
Ti darò un buon esempio. Ho visto una pubblicità per Canonical Landscape (Maker of Ubuntu). Nell'annuncio ha mostrato una funzione di Landscape in cui è possibile eseguire un comando su ogni macchina che possiedi come root . Ho pensato a me stesso, "E se fosse vulnerabile a CSRF?". Mi sono registrato per un percorso gratuito e, in effetti, è possibile ottenere la root remota su ogni computer utilizzando una singola richiesta HTTP forgiata. Outch! (Ho anche ricevuto root remota su cPanel con CSRF e ho ottenuto una metrica di gravità:)
Un altro difetto che ho trovato in Google Music, ho caricato un MP3 con JavaScript in tutti i tag ID3. Abbastanza sicuro il nome dell'artista e dell'album dove è stato stampato sulla pagina, e ho ottenuto $ 500 dal programma bug bounty con il mio primo test. Uno dei motivi per cui ho scelto questo input è perché sapevo che non sarebbe stato esercitato da uno scanner di vulnerabilità stupido. È come se sapessi che fallirebbe in anticipo. Quel tipo di comprensione innata arriva solo con anni di pratica.