Hey HackerNoon, Kuwguap qui.
Indovina cosa? ho gli esami in due giorni. Sì, esami universitari reali. E cosa sto pensando di 24/7? RAWPA(Il mio assistente di test di penetrazione). Il mio progetto di passione ha completamente rapito il mio cervello, e non lo avrei in nessun altro modo.
Quindi, mentre dovrei memorizzare le note della lezione, ho pensato che ti farò accelerare sul giro selvaggio delle ultime settimane. Prima di immergersi nei bug e nella nuova funzionalità, devo dire: onestamente penso che la competenza numero uno in qualsiasi carriera tecnologica sia il debugging.
Non si tratta solo di trovare gli errori; si tratta di analizzare i problemi, comprendere e risolvere. È una superpotenza. È cool creare qualcosa di nuovo, ma essere in grado di riparare ciò che è rotto - sia che si tratti del tuo codice o di un sistema target - è dove accade la vera magia.
In ogni caso, immergiamoci negli errori e nella follia.
Il mio primo errore: il "Responsive What?" UI
Non avevo mai fatto alcun vero design UI/UX prima di questo progetto. ho guardato un paio di video di YouTube, mi sono ispirato all'aspetto pulito di Whimsical (lo strumento che ho usato per il wireframing), e ho appena iniziato... disegnare.
Nessuna reazione del dispositivo. Nessuna dimensione specifica dello schermo. Solo rettangoli su uno schermo. Sembrava buono sul mio PC di sviluppo, quindi ho pensato, "Ship it!" Qualche settimana fa, un tester ha giustamente sottolineato che la visualizzazione mobile era completamente rotta. Ho trascorso due giorni interi sbarazzandomi di quel disordine e rendendo l'app veramente reattiva. Lezione imparata: pensare a tutti gli schermi dal primo giorno.
Il bug che ha bloccato RAWPA
A parte questo... circa due giorni fa, ho notato che le funzionalità su RAWPA fallivano.Le metodologie non si caricavano e mancavano altri dati.Un rapido sguardo alla mia console raccontò la storia:
FirebaseError: [code=resource-exhausted]: Quota exceeded.
Ho colpito16,000 reads and 20,000 writesIn un solo giorno. Questa è l'intera quota gratuita su Firebase. Con solo 33 utenti, questo è stato pazzo. Ero sciocco. Potrei aspettare un giorno per la quota per ripristinare, o potrei mettere il mio cappello di detective e debug.
Il colpevole? una serie di bug logici nati da sessioni di codifica di tarda notte.
-
The Infinite Loop: I had created a function that continuously checked Firestore for updates, in case I used my admin panel to disable a methodology. It was a dumb, brute-force way to solve a problem, and it was hammering the database.
-
Sleepy-Dev Syndrome: The new feature I was building needed to save its state. Instead of using
localStorage
for frequent, small updates, I was writing to Firestore on every single change. Why? Because I was sleepy and not thinking straight.
Oltre a questo, l'app stava caricando tutte le funzioni di Firestore sulla startup, creando una coda che ha portato a tempi di caricamento folli - a volte fino a 10 secondi. So che la correzione stava probabilmente caching con qualcosa come Redis, ma ero inossidabile.
Io l’ho fatto comunque, mi sono integrato.Upstash RedisA volte, vorrei che avessi iniziato con Next.js, ma dopo un tentativo fallito di migrazione, sto attaccando la mia configurazione React + Vite e lo faccio funzionare.
La nuova funzione, nata da un vero e proprio pentest
Quindi, qual è stata questa nuova caratteristica che stavo costruendo che ha causato tutto il caos?
Ho iniziato mentre stavo lavorando su un bersaglio da HackerOne. stavo usando il mio altro strumento, AAweRT, per il recon e mi sono reso conto che il mio processo di pensiero è completamente cambiato da quando ho costruito RAWPA. Ho avuto 79 sottodomini da controllare.
Ho trovato interessanti endpoints e potenziali vulnerabilità, ma non avevo un modo organizzato per seguirli senza perdere il mio treno principale di pensiero.
Introdurre ilHunter's Board.
Si tratta di una tavola di stile Kanban costruita direttamente in RAWPA, progettata per il modo in cui un pentester pensa. Puoi creare carte per qualsiasi cosa: domini, metodologie, risultati, rapporti, frammenti di codice, strumenti, lo chiami.
Ho trovato un parametro di ricerca non filtrato su un endpoint - un bypass del filtro UTF-8 principale - e immediatamente ho creato una scheda per esso, aggiungendo il link e le mie note.
The Hunter's Board is now live on the site! You can check it out now.
Come aggiornamento rapido, ho temporaneamente rimosso ilRAWPA AIePentest OrchestratorHo bisogno di ottimizzarli e risolvere alcuni problemi di backend prima che siano pronti per il primo tempo, e voglio che l'esperienza utente sia perfetta.
Ho menzionato che ho gli esami in due giorni? Ugh. Proverò a pubblicare un paio di aggiornamenti prima di andare al buio per lo studio.
Fino alla prossima volta, ricorda che RAWPA è un progetto comunitario. Se hai idee, feedback o vuoi contribuire, usa la funzione "Contribuire" sul sito o connetti con me sudi LinkedinScopri il progetto ahttps://rawpa.vercel.app/.
Il cervello sta appena iniziando.