Skip to content

Fuzzing

Glitchboi edited this page Sep 13, 2026 · 1 revision

Fuzzing de terminales/TPV/POS

El fuzzing de EMVy no prueba tarjetas: prueba cómo reacciona un lector/POS real ante datos de tarjeta fuera de lo normal. core.cardfuzz (puro) genera plantillas (base + mutaciones) en tres familias, todas editables antes de disparar ("en caliente"), tanto en la TUI/GUI (pestaña Fuzzing, atajo u) como copiando/editando el hex en la CLI.


1. Banda magnética (track_templates)

Track1/Track2 válidas + mutaciones. Se disparan por BomberCat magspoof.

Mutaciones: bad-luhn, expired, service-code-chip-required, truncated-pan, oversized-pan, missing-separator, no-end-sentinel, non-numeric-pan, oversized-discretionary.

emvy fuzz track list
emvy fuzz track show bad-luhn
emvy fuzz track send bad-luhn [--port] [--pan] [--name] [--expiry] [--service-code]

2. Registro EMV (emv_templates)

Registro 70 válido (5A/57/5F24/5F20/82/8E) + mutaciones. Se escriben en una tarjeta de prueba reescribible (cualquier lector — PC/SC o BomberCat passthrough) vía core.cardwrite.update_record.

Mutaciones: no-cvm (fuerza "sin CVM requerido"), weak-aip (solo-SDA), oversized-pan, missing-pan, bad-track2, expired. Cada mutación se verifica contra los propios decodificadores del proyecto (core.cvm/core.emvbits) en los tests.

emvy fuzz card list
emvy fuzz card write no-cvm 1 1 [-r <lector>] [--pan] [--name] [--expiry]

3. NDEF (ndef_templates)

Mensaje NDEF válido (URI de referencia) + mutaciones. Se emulan como un tag NFC Type 4 vía BomberCat (comando EMU: del firmware) — el equivalente NFC de magspoof.

Mutaciones: oversized-record, bad-type-length, truncated, invalid-tnf, no-me-flag, huge-uri, long-format-mismatch, empty, multi-record.

emvy fuzz ndef list
emvy fuzz ndef emit invalid-tnf [--port] [--url] [--text]

La emulación es observable (el firmware reporta cada APDU del lector: qué app/fichero selecciona y qué offset lee) y cancelable (botón Detener / STOP; Reboot reinicia la placa). Ver BomberCat.


Emulación en la GUI/TUI

En la pestaña Fuzzing, un único botón "Emular" decide NFC o EMV según la Fuente:

  • NFC · plantilla NDEF (fuzz) / NFC · tarjeta de prueba (NDEF) / NFC · captura (NDEF) → emula un tag NDEF a un lector.
  • EMV · tarjeta de pago (perfilar terminal) → emula una tarjeta EMV a un terminal; con el selector de captura eliges presentar los datos reales de una captura o la Visa de prueba fija.

Además, un Editor de tarjeta EMV carga una tarjeta (escanear→memoria/RAM del BomberCat, o una captura), muestra los campos editables (PAN, caducidad, cód. servicio, AID, titular, Track2), regenera el Track2 desde PAN/caducidad/servicio y emula la tarjeta editada. Botones Detener/Reboot compartidos y auto-stop de seguridad (180 s).

Clone this wiki locally