Quello che so dei prodotti POS che rivendo / supporto, quando si prende una carta di credito per un pagamento, ci sono # di caratteri che sta cercando.
In generale, sta cercando qualcosa di simile a questo:
- 16 cifre per Visa / Mastercard / Scopri
- 15 per Amex (utilizzeremo solo un Visa / MC / Discover per esempio)
- 4 cifre per la scadenza
- Codice di sicurezza a 3 cifre
Quindi il sistema vuole i dati in questo formato
[Card number][Expiration][Security Code]
Ci sono altre informazioni nella striscia, ma stiamo solo cercando di illustrare un semplice esempio.
Inoltre, non menzionando le carte scheggiate, solo in riferimento alle vecchie schede a banda magnetica, per il mio esempio.
Quindi diciamo che il mio sistema POS si aspetta 23 cifre (16 + 4 + 3) e faccio una carta falsa con una stampante per card. Ne ho uno proprio accanto a me sulla mia scrivania. Tuttavia, ho sbagliato nel mio ordine di informazioni.
Invece di [Card number][Expiration][Security Code]
I
[Security Code] [Card number] [Expiration]
Il sistema prenderà comunque le informazioni che ho fornito, ma molto probabilmente tornerà con un "numero di tessera non valida" come un messaggio.
Quindi rifai la mia carta falsa con il giusto ordine di informazioni. Vai in un negozio e prova la carta e funziona perfettamente.
Decidi di includere il mio carico utile alla fine della carta. Il mio pensiero che una delle due cose accadrebbe:
-
La carta passava normalmente, il sistema prendeva le 24 cifre che cercava inviate all'azienda della carta di credito per l'autorizzazione.
-
Il POS non accetta la carta in quanto, la quantità di cifre sulle strisce magnetiche non corrisponde al set standard.
On # 2 ho visto accadere in natura. Una catena di negozi supportata dalla mia azienda si trova accanto a una grande università. L'università rilascia carte d'identità, ma è anche una carta di credito che gli studenti possono usare. Possono usare la carta per acquistare materiale e ottenere servizi (dai un'occhiata ai libri e simili) all'Università.
Le carte a banda magnetica hanno fino a 3 tracce di informazioni. Due tracce sono utilizzate per una transazione con carta di credito. È possibile utilizzare una sola traccia, ma il commerciante paga una commissione extra in quanto non si trattava di una transazione "traccia 1 & traccia 2".
Dopo le frequenti chiamate da parte dei proprietari del negozio con il problema delle "XXXX carte universitarie non funzionano, a meno che non le inseriamo manualmente", sono andato all'università e mi hanno permesso di vedere una scheda e scorrere per vedere come le informazioni veniva messo sulla banda magnetica. Sono stati respinti un po 'dalla mia richiesta, ma hanno capito il problema e ho fatto il mio test di fronte a loro dopo che uno staff IT dell'università mi ha osservato.
Stavano mettendo le informazioni dell'ID studente sulla Traccia 3 delle carte. Quindi il sistema POS che ho supportato stava leggendo la traccia 1, la traccia 2 e la traccia 3 e non accettando la scheda perché aveva troppe informazioni.
Per risolvere il problema, l'MSR (lettori di banda magnetica) nei negozi che dovevamo programmare per non leggere le informazioni della traccia 3.
Questa è stata la mia esperienza con un prodotto POS. Esistono centinaia di prodotti POS e suppongo che sarebbe prassi normale accettare solo il numero "X" di cifre.
Se questa fosse una possibilità, penserei che il punto "debole" sarebbe il gateway di pagamento che invia le informazioni della carta alla banca per l'approvazione.
Computer Point of Sale ---- > Payment Gateway ---- > Bank of card-owner
Il gateway di pagamento imposta la sintassi di come vogliono che i dati arrivino a loro.
Potrebbero piacere un modo diverso rispetto al mio esempio di
[Card number][Expiration][Security Code]
Quindi, se pensassimo di sfruttarlo, immagino simile a un attacco di SQL injection, il gateway di pagamento sarebbe dove cercare. I PG sono sistemi piuttosto complessi, quindi immagino che non tollererebbero nulla che sia NOT nella loro sintassi.