
Una extensión de navegador para Chrome/Firefox que muestra alertas para parámetros de consulta reflejados, muestra enlaces del archivo Wayback para la ruta actual, muestra elementos ocultos y habilita elementos deshabilitados.
Esta es una extensión para Chrome/Firefox que puede hacer lo siguiente:
', " y < se reflejan sin estar codificados.Xnl Reveal de las DevTools del navegador.Xnl Reveal de las DevTools del navegador).La capacidad de mostrar una alerta para los parámetros reflejados se inspiró en un comentario de @renniepak en el Episodio 42 del Critical Thinking - Bug Bounty Podcast, donde mencionó que tenía su propia extensión de navegador que le informaba de cualquier reflejo.
El número de parámetros reflejados encontrados se muestra mediante una insignia verde en el icono de la extensión. Sin embargo, si alguno de los nombres de los parámetros reflejados está en una de las categorías descritas en la investigación sobre parámetros "sus" de @Jhaddix y @G0LDEN_infosec, la insignia será roja. Si hay parámetros "sus", las categorías también se mostrarán en la salida de la pestaña Xnl Reveal de las DevTools, en el cuadro de alerta y en el portapapeles, p. ej. boringParameter, query [XSS], path [LFI/RFI | SSRF | XSS] (esto es lo mismo que la identificación de parámetros "sus" en mi Extensión GAP para Burp).
La capacidad de mostrar elementos ocultos y habilitar elementos deshabilitados se inspiró en este Tweet de Critical Thinking - Bug Bounty Podcast y, inicialmente, los creé como marcadores del navegador.
El icono de la extensión se muestra normalmente con un fondo negro
, pero si el icono aparece con un fondo rojo
, indica que la API del servidor CDX de Wayback probablemente no está disponible. Incluso si las funciones principales están deshabilitadas, la extensión comprobará el estado de la API cada 10 minutos.
IMPORTANTE: Cuando se utilizan herramientas como waymore, waybackurls o gau para obtener URLs del archivo de Wayback, se usa la API del servidor CDX. Si la API está caída, no recibirás datos de la Wayback Machine, solo de otras fuentes. Además, solo waymore te permitiría saber que hubo un problema.
Clona este repositorio en tu máquina y sigue las instrucciones a continuación, según quieras instalarlo en Chrome o Firefox:
Abre el Administrador de extensiones en Chrome siguiendo: Menú kebab (tres puntos verticales) -> Extensiones -> Administrar extensiones
Si el modo de desarrollador no está activado, actívalo haciendo clic en el interruptor de la esquina superior derecha.
Ahora haz clic en el botón Cargar descomprimida en la parte superior izquierda.
Ve al directorio donde tienes la carpeta Xnl Reveal y selecciónala.
La extensión ya está cargada. Puedes hacer clic en el icono de la extensión en la barra de herramientas y, a continuación, en el icono de chincheta para fijar Xnl Reveal a tu barra de herramientas.
IMPORTANTE: Con las extensiones de Firefox, tendrás que cargarla cada vez que abras Firefox. Desafortunadamente, no puedo añadirla a la tienda de Firefox para evitarlo porque para ello debe ser Manifest v3. Xnl Reveal tiene que usar Manifest v2 (a menos que alguien más pueda resolverlo, porque yo no pude), que tiene menos restricciones de seguridad y le permite funcionar.
Ve a about:debugging en una nueva pestaña del navegador.
Haz clic en el encabezado Este Firefox en la parte izquierda de la página.
Haz clic en el botón Cargar complemento temporal... bajo el encabezado Extensiones temporales.
Ve a la carpeta Firefox del repositorio descargado y selecciona cualquier archivo, y luego haz clic en Abrir.
La extensión ya está cargada. Puedes hacer clic en el icono de la extensión en la barra de herramientas, luego en el icono de engranaje de Configuración y seleccionar Fijar a la barra de herramientas.
Xnl Reveal en la barra de herramientas y seleccionas Opciones, accederás a la página de Opciones.Xnl Reveal en la barra de herramientas y seleccionas Administrar extensión, luego haz clic en la pestaña Opciones para ver la página de Opciones.
Tienes las siguientes opciones:
Canary token - Cuando se hacen solicitudes para probar la reflexión de los parámetros de consulta, este es el valor del parámetro que se usa y se busca.Check for reflection of ' " < - Cuando se hacen solicitudes para probar la reflexión de los parámetros de consulta, la cadena '",xnl se añade al final del Canary token. Si alguno de estos caracteres se refleja sin estar codificado, también se notificará. Si pasar esos caracteres hace que el Canary token no se refleje en absoluto (quizás un WAF bloquea el <), se hará otra solicitud solo con el Canary token.Show alert box for reflections - Si está seleccionado, y Show query parameter reflections está seleccionado en el menú emergente (ver más abajo), se mostrará un cuadro de alerta del navegador con los detalles de los parámetros de consulta que se reflejen.Copy reflection text to clipboard - Si está seleccionado, y Show query parameter reflections está seleccionado en el menú emergente (ver más abajo), cuando se encuentren reflexiones de parámetros, los detalles se colocarán en el portapapeles del usuario y también se escribirán en la pestaña de las DevTools (y en un cuadro de alerta si se solicita). Esto significa que, en cuanto veas un cuadro de alerta o los detalles en la pestaña de DevTools, puedes ir a tus notas y pegar los detalles de inmediato. Si haces clic en el logotipo de Xnl Reveal en la barra de herramientas, verás un menú emergente.
Tienes los siguientes ajustes:
ENABLE REVEAL - Si no está marcado, la extensión no hará nada. Si está marcado, tomará ciertas acciones en las páginas web visitadas (si están en el alcance), dependiendo de las demás opciones establecidas.Show query parameter reflections - Si está marcado, cuando se visita una página web que tenga parámetros de consulta, se realiza una solicitud en segundo plano para cada parámetro, reemplazando cada uno a su vez con el Canary token de la página de Opciones. Si el token se encuentra para cualquiera de los parámetros en la respuesta, se escribe un mensaje en la pestaña Xnl Reveal de las DevTools con la URL y todos los parámetros de esa página que se reflejaron. Si las opciones están seleccionadas, estos detalles también pueden mostrarse en un cuadro de alerta del navegador y copiarse al portapapeles del usuario. La extensión también mostrará una insignia con el número de reflexiones encontradas.CHARSET IS NOT SPECIFIED IN RESPONSE! si el charset no está establecido explícitamente para una página HTML. Esto puede significar que el XSS podría ser más fácil con un truco explicado en este blog.Write Wayback endpoints to DevTools - Si está marcado, por cada ubicación/ruta visitada en el navegador, se recuperarán hasta 1000 endpoints del archivo de Wayback y se escribirán en la pestaña Xnl Reveal de las DevTools. Una vez que una ubicación/ruta se ha enviado a la API de Wayback, no se enviará de nuevo, a menos que se haya hecho clic en .Si haces clic derecho en una página web, obtendrás el menú contextual del navegador. Por ejemplo, si estás en example.com y tienes Whitelist seleccionado en Opciones, verás esto:
Estas opciones están disponibles incluso si la opción ENABLE REVEAL en el menú emergente no está seleccionada. Hay 3 opciones entre las que puedes elegir:
Get wayback endpoints - Si se hace clic, se abrirá una nueva pestaña que contendrá los endpoints del archivo de Wayback para el dominio de la ventana en la que se hizo clic. Esto no se ve afectado por otros ajustes y puede ejecutarse incluso si la extensión no está habilitada.Show hidden elements - Mostrará todos los elementos ocultos en la página actual, de la misma manera que Show hidden elements, pero la extensión no necesita estar habilitada.Enable disabled elements - Habilitará todos los elementos deshabilitados en la página actual, de la misma manera que Enable disabled elements, pero la extensión no necesita estar habilitada.Show Google cache version - Si se hace clic, se abrirá una nueva pestaña que abrirá la versión de Google Cache de la página actual. Incluso si un sitio web ya no está disponible, Google tendrá una copia almacenada en sus archivos y aún podrás acceder a la página en caché.Show FOFA domain search - Si se hace clic, se abrirá una nueva pestaña con FOFA mostrando los resultados de búsqueda para domain="{TARGET}", donde {TARGET} es el dominio de la pestaña activa.Create word list - Si se hace clic, se creará una lista de palabras a partir del contenido de la página y se mostrará en una nueva pestaña.Los mensajes sobre reflexiones de parámetros y endpoints de Wayback se escribían antes en la consola, pero ahora se escribirán en una pestaña separada de las DevTools del navegador. Desde aquí puedes:
Filter messages... - Introduce cualquier texto para filtrar los mensajes en tiempo real, lo que facilita encontrar reflexiones específicas o resultados de Wayback entre los mensajes almacenados.Copy All Messages - ¡Copia todos los mensajes al portapapeles para poder pegarlos en tus notas!Copy All URLs - Extrae todas las URLs únicas de los mensajes actualmente visibles (respetando cualquier filtro activo) y cópialas al portapapeles, una por línea. Esto es útil para recopilar rápidamente todas las URLs de reflexiones y resultados de Wayback para pruebas adicionales.Clear Messages and Cache - Borra todos los mensajes de la pestaña y del almacenamiento local. También borrará qué endpoints de Wayback se han buscado anteriormente.
¡Esta extensión de navegador no va a ser perfecta!
A veces el cambio de código puede romper una página. Si tienes un problema, al deseleccionar un ajuste en el menú emergente se recargará la página y es posible que vuelva a funcionar, solo que no podrás comprobar ese ajuste.
También puede haber algunos errores que se muestran en la página Administrar extensión en ciertas situaciones.
Si ejecutas manualmente una opción desde el menú contextual y no pasa nada, puede que necesites actualizar la página en la que intentas ejecutar la opción y volver a intentarlo.
Create word list a la versión de Firefox.Error copying to clipboard (NotAllowedError: Document is not focused.)true, false, 1, etc., ya que habrá muchos falsos positivos.Si encuentras cualquier problema, o tienes ideas para mejorar, no dudes en abrir un issue en Github. Si hay un problema, será útil que puedas proporcionar la URL exacta en la que estabas y cualquier error de consola.
¡Buena suerte y buena caza!
Si realmente te encanta la herramienta (o cualquier otra), o te ayudaron a encontrar un gran bounty, considera INVITARME A UN CAFÉ ☕ (¡me vendría bien la cafeína!)
🤘 /XNL-h4ck3r
Xnl RevealParam blacklist - Esta es una lista separada por comas de nombres de parámetros (p. ej. param1,param2) que no deseas reemplazar con el canary token para comprobar si se refleja. Esto puede usarse cuando probar ciertos parámetros causa problemas, por ejemplo, cerrar tu sesión.Check delay - Cuando se carga una página, según la configuración, la extensión intentará mostrar elementos ocultos y habilitar elementos deshabilitados. Sin embargo, a veces partes de la página se cargan dinámicamente y no están en la respuesta original. La extensión intentará mostrar y habilitar de nuevo tras este retraso (en segundos) después de que la página se haya cargado inicialmente.Wayback RegEx - Si la configuración para escribir los endpoints del archivo de Wayback está seleccionada, solo se mostrarán en la pestaña de DevTools los endpoints de Wayback que coincidan con la RegEx introducida. Si el campo se deja en blanco, se devolverán hasta 1000 endpoints de Wayback. IMPORTANTE: Cualquier RegEx introducida se tratará sin distinción de mayúsculas y minúsculasKNOXSS API Key - Introduce tu clave API de KNOXSS. Si se guarda una clave y Show query parameter reflections está habilitado en el menú emergente, cuando se encuentre una reflexión, la URL se enviará automáticamente a la API de KNOXSS. La cabecera X-API-KEY se establece con la clave guardada, y las cookies de la página actual se pasan como cabeceras de autenticación. La respuesta de la API de KNOXSS se escribe en la pestaña Xnl Reveal de las DevTools. La llamada a la API se realiza de forma asíncrona para no bloquear la interacción con la página.Extension Scope:
Whitelist o Blacklist - Esto determina qué sitios resultarán en comprobaciones de reflexión de parámetros y/o recuperación de endpoints de Wayback. Según la opción elegida, un host debe contener o no contener la palabra introducida para ser procesado.Host match word to add - Introduce una palabra que exista en el nombre del host (o un nombre de host completo) que quieras incluir en la lista blanca o en la lista negra, y haz clic en el botón Añadir para agregarla a la lista de alcance. Por ejemplo, si solo quieres ejecutarlo en páginas de Redbull, añade redbull y establécelo como lista blanca.Add - Añade una palabra introducida a la lista de alcance.Remove selected - Elimina la(s) palabra(s) seleccionada(s) de la lista de alcance.Clear all - Elimina todas las palabras de la lista de alcance.Save - Si se cambia alguna opción, haz clic en este botón para guardarla para uso futuro.Clear Saved URLs/Params - Si la extensión está buscando parámetros de consulta reflejados, no querrás seguir recibiendo alertas por las mismas combinaciones de URL/parámetro, por lo que las que ya se han notificado se almacenan para evitarlo. Sin embargo, si quieres eliminar el registro de esas, puedes hacer clic en este botón para eliminarlas. Del mismo modo, no queremos seguir enviando las mismas solicitudes al archivo de Wayback, por lo que también se almacenan, pero pueden borrarse si se pulsa este botón.Clear Saved URLs/ParamsShow hidden elements - Si está marcado, se mostrarán todos los elementos ocultos (excluyendo img, span y div). Se mostrarán con un borde rojo y una etiqueta en rojo que proporciona algún detalle. A veces, si la página es dinámica, los elementos pueden no mostrarse.Enable disabled elements - Si está marcado, se habilitarán todos los elementos deshabilitados (excluyendo img, span y div). Se mostrarán con un borde rojo y una etiqueta en rojo que proporciona algún detalle. A veces, si la página es dinámica, los elementos pueden no mostrarse. Siempre puedes hacer clic en el botón Run Now para cambiar la página actual cargada.{Add|Remove} {HOST} {from|to} {whitelist|blacklist} - Dependiendo de si el nombre del host de la pestaña actual ya está en la lista de alcance, y de si la opción de lista blanca o lista negra está seleccionada, verás un elemento de menú para añadirlo/eliminarlo. Por ejemplo, si estás en https://www.redbull.com/gb-en/ y tienes Blacklist seleccionado en la página Opciones, y redbull.com no está en la lista de alcance, verás el elemento de menú contextual Add redbull.com to blacklist. IMPORTANTE: Si el elemento del menú no muestra el host correcto, puede que necesites actualizar la pestaña.