URL y dominios de phishing

Decodificador de códigos QR

Se ejecuta localmenteNueva

La herramienta en sí está en inglés; en esta página se explica en tu idioma.

Utiliza Decodificador de códigos QR

Para qué sirve

Carga, suelta o pega una imagen de un código QR. El contenido aparece como texto neutralizado junto con lo que hace: un enlace y su host real, un acceso Wi-Fi, una solicitud de pago o un secreto de doble factor.

Funciona íntegramente en tu navegador: no se sube nada de lo que introduzcas.

Cómo utilizar Decodificador de códigos QR

  1. Consigue una imagen del código. Haz una captura de pantalla o una foto del código QR. La página nunca usa tu cámara.
  2. Cárgala. Suelta la imagen en el recuadro, haz clic en él para elegir un archivo (PNG, JPEG, GIF, WebP, BMP o SVG de hasta 20 MB) o pega una captura con Ctrl+V.
  3. Revisa la vista previa. La imagen aparece con el código detectado recuadrado. Una etiqueta indica el tipo de contenido y el decodificador que lo leyó.
  4. Lee el contenido y los avisos. El contenido se muestra neutralizado, así que los enlaces no se pueden pulsar. Las notas rojas y amarillas de debajo explican lo que haría el código.
  5. Mira los campos. Los campos dividen el contenido en partes como Host, Network name, Amount o Recipient. Las direcciones de cartera tienen su propio botón Copy (Copiar).
  6. Da el siguiente paso. En el caso de un enlace, usa Send to… (Enviar a…) para pasarlo a Link Unwrapper, Homoglyph Checker o URL Parser sin visitarlo.

Ejemplo

Enlace de pago de aparcamiento con un host oculto

Entrada
https://pay-parking.example@198.51.100.24/pay?zone=401
Resultado (registrado el 2026-10-20)
Web link read by jsQR (as is)

Payload (defanged)

hxxps://pay-parking[.]example[@]198[.]51[.]100[.]24/pay?zone=401
Copy raw

Text before "@" is not the destination: this link opens 198[.]51[.]100[.]24, not "pay-parking[.]example".

The host is a bare IP address (198[.]51[.]100[.]24), not a domain name.

HOST
198[.]51[.]100[.]24
USER INFO BEFORE @
pay-parking[.]example
SCHEME
https
PATH
/pay
QUERY
?zone=401

Next: use Send to… above. URL Parser splits the link into parts.

Load example dibuja este texto como código QR en la página y decodifica la imagen: el host real es la dirección IP 198.51.100.24, y pay-parking.example antes de la @ es solo información de usuario, así que ambos se marcan como señales de peligro.

Qué comprueba

SeñalQué significa
Tipo de contenidoEnlace web, red Wi-Fi, solicitud de pago, secreto de doble factor, borrador de correo, SMS o llamada, tarjeta de contacto, evento de calendario, enlace de aplicación o texto sin formato. El color de la etiqueta sigue al aviso más grave.
Host oculto en un enlaceEl texto antes de @ no es el destino, y un host escrito como dirección IP aparece en rojo. Un host punycode que mezcla alfabetos también aparece en rojo.
Acortador o envoltorio de correoLos enlaces a través de bit.ly, qrco.de y servicios similares, o de Safe Links o URL Defense, ocultan la dirección real. La herramienta lo indica y te remite a Link Unwrapper.
Hosting gratuito, http, puerto, subdominios profundosEl http sin cifrar recibe un aviso amarillo. Los hosts gratuitos como github.io o pages.dev, un puerto no estándar y los hosts con cinco o más niveles reciben notas, porque una dirección así dice poco de quién gestiona la página.
Secreto de doble factor (rojo)Un código otpauth lleva un secreto que genera tus códigos de un solo uso, y un código otpauth-migration contiene toda una exportación de un autenticador. El secreto permanece oculto hasta que pulsas Show secret (Mostrar secreto).
Solicitud de pago criptoLos enlaces de pago de Bitcoin, Ethereum, Solana, TRON, TON y otras redes muestran la dirección y el importe. Un código de Ethereum que llama a approve, increaseAllowance, setApprovalForAll o permit aparece en rojo, igual que una solicitud de transacción de Solana Pay.
Códigos de comercio UPI y EMVEscanear un código UPI envía dinero desde tu cuenta, y un mandato UPI permite cargos repetidos. Un código EMV cuyo checksum CRC no coincide fue editado o está dañado.
Esquemas peligrososjavascript:, data:, file:, ms-msdt:, search-ms: y esquemas similares aparecen en rojo. Los códigos que abren una aplicación en lugar de una página web reciben una nota amarilla.
Datos de la Wi-FiNombre de la red, tipo de seguridad, si hay contraseña y si la red está oculta. Las redes abiertas reciben un aviso.

Más ejemplos

Código QR de una red Wi-Fi abierta

Entrada
WIFI:T:nopass;S:Airport Free WiFi;;
Resultado

Red Wi-Fi. Network name (SSID): Airport Free WiFi, Security: nopass, Password: none, Hidden network: no. Aviso amarillo: Open network: traffic is not encrypted at the Wi-Fi level. Una nota indica que los atacantes montan redes abiertas que imitan a otras para interceptar el tráfico.

Código QR con un secreto de autenticador

Entrada
otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example
Resultado

Secreto de doble factor (TOTP/HOTP). El contenido muestra secret=•••••••• hasta que pulsas Show secret. Campos: Type TOTP, Issuer Example, Account alice[@]example[.]com, Secret presente (16 caracteres, oculto), Algorithm SHA1 (predeterminado), Digits 6 (predeterminado), Period 30 s, más un aviso rojo de no enviar nunca esta imagen a nadie.

Aprobación de tokens disfrazada de pago (direcciones de prueba EIP-55)

Entrada
ethereum:0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359@1/approve?address=0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed&uint256=115792089237316195423570985008687907853269984665640564039457584007913129639935
Resultado

Solicitud de pago de Ethereum. Campos: Network Ethereum, Contract 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359, Chain ID 1, Function approve, Address parameter (el spender, quien gasta) y Token amount (unidades sin convertir), aquí el máximo de 78 dígitos. Aviso rojo: This asks your wallet to call approve: it gives 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed permission to move your tokens. Wallet drainers use exactly this. Sigue una nota amarilla: compara la dirección completa.

Preguntas frecuentes

¿Qué muestra el decodificador para un código QR?

El texto decodificado, neutralizado para que no se pueda pulsar, y su tipo: un enlace web (host, punycode, host IP, información de usuario antes de @, acortadores y envoltorios de enlaces), una red Wi-Fi, un borrador de correo, llamada o SMS, una solicitud de pago cripto, UPI o EMV, un secreto de doble factor otpauth, una tarjeta de contacto o un evento de calendario. Cada tipo recibe los avisos que le corresponden, por ejemplo que un código otpauth lleva un secreto 2FA.

¿Por qué no se decodifica una imagen?

Es posible que el código sea demasiado pequeño, esté borroso, cortado por los bordes o cubierto por un reflejo; normalmente ayuda recortar la imagen para que solo quede el código con su borde blanco. El decodificador prueba primero el detector de códigos de barras integrado en el navegador, si lo hay, y luego aplica jsQR a la imagen (reducida a 1.600 píxeles en el lado más largo), un umbral en blanco y negro, un borde blanco añadido y, para imágenes de hasta 800 píxeles en el lado más largo, una ampliación de 2x.

¿Se sube la imagen?

No. La imagen se decodifica en tu navegador con la biblioteca jsQR incluida y nunca se envía a ningún sitio. No se usa la cámara, así que haz una foto o una captura de pantalla y cárgala o pégala.

¿Y si la imagen contiene más de un código QR?

Si tu navegador tiene un detector de códigos de barras integrado, cada código que encuentra se lista como QR code 1 of N, cada uno con sus propios avisos. La alternativa jsQR lee un código por imagen, así que recorta la imagen al código que te interesa.

¿Por qué se oculta la contraseña de la Wi-Fi o el secreto de doble factor?

Para que no se vea en pantalla ni en una captura del resultado. Show secret lo muestra en el recuadro del contenido, y Copy raw siempre copia el texto completo.

¿Puedo soltar un enlace a una imagen de otro sitio?

No. La página solo lee archivos de imagen e imágenes pegadas, y no descarga nada. Guarda antes la imagen, o copia la propia imagen y pégala. También funciona un texto data:image en base64 pegado.

Explicación de los términos

Investigación de PhishDestroy