Hey HackerNoon, Kuwguap aquí. ¿Adivina qué? tengo exámenes en dos días. Sí, exámenes universitarios reales. Y qué pienso de 24/7? RAWPA(Mi asistente de pruebas de penetración). Mi proyecto de pasión ha secuestrado completamente mi cerebro, y no lo tendría de ninguna otra manera. Así que, mientras debería estar memorizando las notas de la conferencia, pensé que te llevaría a la velocidad en la carrera salvaje de las últimas semanas.Antes de sumergirme en los errores y la nueva característica, tengo que decir: sinceramente creo que la habilidad número uno en cualquier carrera tecnológica es el desgaste. No se trata sólo de encontrar errores; se trata de analizar, comprender y resolver problemas.Es un superpoder.Es cool crear algo nuevo, pero ser capaz de arreglar lo que está roto -ya sea su propio código o un sistema objetivo- es donde ocurre la verdadera magia. De todos modos, subamos a los errores y a la locura. Mi primer error: el “responder a qué?” UI Yo nunca había hecho ningún diseño UI / UX real antes de este proyecto. Yo vi un par de vídeos de YouTube, se inspiró en el aspecto limpio de Whimsical (la herramienta que usé para wireframing), y acaba de comenzar... dibujar. No hay capacidad de respuesta del dispositivo. No hay tamaños de pantalla específicos. Sólo rectángulos en una pantalla. Parecía bueno en mi PC de desarrollo, así que pensé: "Ship it!" Hace unas semanas, un testador señaló con razón que la vista móvil estaba completamente rota. Pasé dos días completos desatando esa confusión y haciendo la aplicación realmente responsiva. Lección aprendida: piense en todas las pantallas desde el primer día. El bug que cerró RAWPA Eso aparte... hace unos dos días, noté que las características en RAWPA estaban fallando. Las metodologías no estaban cargando, y otros datos estaban faltando. FirebaseError: [code=resource-exhausted]: Quota exceeded. Había golpeado En un solo día. Eso es toda la cuota gratuita en Firebase. Con sólo 33 usuarios, esto fue loco. Estaba estúpido. Podría esperar un día para que la cuota se restableciera, o podría poner mi sombrero de detective y debugarlo. 16,000 reads and 20,000 writes Una serie de errores lógicos nacidos de sesiones de codificación tardía. 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. The Infinite Loop: The new feature I was building needed to save its state. Instead of using for frequent, small updates, I was writing to Firestore on every single change. Why? Because I was sleepy and not thinking straight. Sleepy-Dev Syndrome: localStorage Además, la aplicación estaba cargando todas las funciones de Firestore en el arranque, creando una cola que llevó a tiempos de carga locos, a veces hasta 10 segundos.Sabía que la solución probablemente estaba clavando con algo como Redis, pero dudé.Esto significaba más complejidad y movimiento de las cosas en Vercel, que tiene un límite de 12 API en el plan gratuito. Lo hice de todos modos. —Yo lo hice de todos modos. , añadió las variables del entorno, hizo algunos ajustes, y el boom - la velocidad mejoró drásticamente. A veces, me gustaría haber comenzado con Next.js, pero después de un intento fallido de migración, me quedo con mi configuración React + Vite y lo hago funcionar. Upstash Redis La nueva característica, nacida de un verdadero Pentest Entonces, ¿qué fue esta nueva característica que estaba construyendo que causó todo el caos? Empezó mientras estaba trabajando en un objetivo de HackerOne. Estaba usando mi otra herramienta, AAweRT, para reconstruir y me di cuenta de que mi proceso de pensamiento ha cambiado completamente desde la construcción de RAWPA. Tenía 79 subdominios para comprobar. En lugar de usar una herramienta automatizada como Eyewitness, los pasé manualmente (lo sé, me gusta el problema). Encontré interesantes puntos finales y vulnerabilidades potenciales, pero no tuve una manera organizada de rastrearlos sin perder mi pensamiento principal. Introducir el . Hunter's Board Es un tablero de estilo Kanban construido directamente en RAWPA, diseñado para la forma en que piensa un pentester.Puedes crear tarjetas para cualquier cosa: dominios, metodologías, hallazgos, informes, fragmentos de código, herramientas, lo llames. Mientras estaba comprobando esos 79 subdominios, estaba desarrollando este panel. encontré un parámetro de búsqueda no filtrado en un punto final -un bypass del filtro UTF-8 principal- y inmediatamente creé una tarjeta para ello, agregando el enlace y mis notas. The Hunter's Board ya está en vivo en el sitio! ¡Puedes comprobarlo ahora. Como una actualización rápida, he eliminado temporalmente el y Necesito optimizarlos y corregir algunos problemas de backend antes de que estén listos para el primer tiempo, y quiero que la experiencia del usuario sea perfecta. RAWPA AI Pentest Orchestrator ¿He mencionado que tengo exámenes en dos días? Ugh. Intentaré publicar un par de actualizaciones más antes de ir a la oscuridad para estudiar. Hasta la próxima vez, recuerde que RAWPA es un proyecto comunitario. Si tiene ideas, comentarios o desea contribuir, utilice la función "Contribuir" en el sitio o conéctese conmigo en Consulta el proyecto en . Linkedin https://rawpa.vercel.app/ El cerebro acaba de comenzar.