·6 min pagbabasa

QR code redirect hijacking: Ang hindi nakikitang middleman

Kapag gumagana ang iyong QR code, hindi nakikita ang middleman. Kapag nasira ito, huli na. Ang pag-unawa sa redirect model ang unang hakbang para maiwasan ito.


Bawat dynamic QR code na na-scan mo ay nagsangkot sa isang third party na hindi mo kailanman pinili. Sa pagitan ng kamera ng telepono at ng destination website, isang redirect server na pag-aari ng QR provider ang tahimik na nagpapasa sa request. Karamihan ng users ay hindi ito napapansin. Iyan ang punto.

Ipinapaliwanag ng artikulong ito ang hitsura ng redirect hijacking sa pagsasanay, kung ano talaga ang ginagawa ng middleman at kung ano ang nakataya.

Ang redirect sequence

Kapag nag-scan ka ng static QR para sa https://shop.example.com:

  1. Binabasa ng kamera ang QR code
  2. Kinikilala ito ng OS bilang URL
  3. Binubuksan ng browser ang https://shop.example.com

Tatlong hakbang. Walang third parties.

Kapag nag-scan ka ng dynamic QR para sa parehong destinasyon:

  1. Binabasa ng kamera ang QR code na nag-e-encode ng isang bagay tulad ng https://qr-provider.com/r/x7n2
  2. Binubuksan ng OS ang URL na ito
  3. Tumatanggap ng request ang qr-provider.com, nilo-log ito, hinahanap ang x7n2 sa database nito
  4. Naglalabas ang qr-provider.com ng 301 o 302 redirect sa https://shop.example.com
  5. Sinusunod ng browser ang redirect at lumalapag sa tunay na destinasyon

Limang hakbang. Karagdagang partido sa hakbang 3 — ang isa na hindi mo kailanman pinahintulutan, hindi kailanman binayaran at hindi mo nakikita.

Ang nakukuha ng middleman

Ang bawat scan ay gumagawa ng server log entry na naglalaman ng:

  • Timestamp ng scan
  • IP address ng scanner
  • User agent string (device, OS, browser)
  • Referrer headers (saan nanggaling ang scanner, kung naaangkop)
  • Accept-Language headers (kagustuhan sa wika)

Mula rito, maaaring mabunutan ng provider ang: tinatayang lokasyong heograpikal, uri ng device, bersyon ng operating system at pangkalahatang mga scan pattern sa paglipas ng panahon. Ito ay ibinebenta sa mga customer bilang "analytics". Ito rin ay surveillance sa parehong antas para sa mga taong nag-sscan ng iyong codes — na hindi kailanman nagbigay ng pahintulot.

Ang kayang gawin ng middleman

Baguhin ang destinasyon

Ang destinasyon ng redirect ay nananatili sa database ng provider. Ang may-ari ng QR ay kadalasang makakapag-edit nito sa pamamagitan ng dashboard. Ito ay ibinebenta bilang feature, at para sa ilang use cases, ito talaga ay. Ngunit ibig sabihin ay hindi na ang QR code ang nakikita. Sinasabi ng physical artifact na "i-scan para bisitahin ang aming website". Ang aktwal na gawi ay kung ano ang sinasabi ng database ng provider ngayon.

I-disable ang redirect

Kung mag-expire ang subscription ng may-ari o isara ang account o ma-violate ang mga terms ng provider, maaaring alisin ang redirect. Bawat naka-print na kopya ng QR code ay agad na humihinto sa paggana. Nag-sscan ang mga user at nakikita ang isang generic na error page o 404.

Maglagay ng interstitial page

Ang ilang provider ay nagrereroute ng dynamic QR scans sa pamamagitan ng branded interstitial page bago ang pangwakas na redirect — nagpapakita ng ads, humihingi ng pahintulot, nangangalap ng emails. Ang may-ari ng QR ay karaniwang hindi nagpapirma para dito. Nadadagdagan ito mamaya kapag mas agresibong nag-monetize ang provider.

Ibenta o mawala ang scan data

Mahalaga ang scan logs. Naibenta na ang mga ito sa analytics brokers, ginamit para sanayin ang ad targeting models at — sa kahit ilang nadokumento na breach — nag-leak nang na-compromise ang mga provider. Nag-scan ang iyong mga customer ng menu; ngayon ang fingerprint ng kanilang device ay nasa breach dataset.

Bakit hindi napapansin ng mga user

Sinusunod ng modernong browsers ang mga redirect nang awtomatiko. Maliban kung may bukas kang developer tools, hindi mo nakikita ang intermediate hop. Nararamdaman ng scan na agad dahil mabilis ang redirect (kapag gumagana ito). Mula sa pananaw ng user, ang dynamic QR ay kumikilos nang magkapareho sa isang static.

Hanggang sa mabigo ang redirect server. Pagkatapos, malaki ang pagkakaiba ng karanasan — ngunit sa puntong iyon ay naka-print na ang QR code sa libu-libong surfaces.

Mga implikasyon sa security

Ang redirect server ay isang single point of failure para sa bawat QR code na nakadepende dito. Tatlong attack surfaces na dapat pag-isipan:

  • Account takeover. Kung makakuha ang attacker ng access sa provider account ng may-ari ng QR, maaari niyang i-redirect ang bawat QR sa isang phishing page. Nag-sscan ang mga customer ng physical code, umaasa ng restaurant menu; lumalapag sila sa clone ng credential harvester ng restaurant login page.
  • Pag-compromise ng provider. Kung ang QR provider mismo ay na-breach, bawat dynamic QR sa sirkulasyon ay posibleng ma-redirect sa attacker-controlled content. Hindi ito teoretikal — may mga breach disclosure para sa ilang QR-as-a-service providers.
  • DNS o TLS failure sa panig ng provider. Kung huminto ang redirect domain sa pag-resolve o mag-expire ang TLS certificate, mabibigo ang bawat QR na nakadepende rito. Hindi malicious actor — karaniwang operational risk na hindi kontrolado ng may-ari ng QR.

Wala sa mga failure modes na ito ang static QR codes dahil walang third-party server sa pagitan ng scan at destinasyon.

Paano tingnan kung nag-sscan ka ng redirect

Gumamit ng QR scanner na nagpapakita ng na-decode na nilalaman bago ito sundin — ang aming web scanner ay gumagawa nito. I-scan ang QR code at tingnan ang na-decode na URL. Kung iyon ang aktwal na destinasyon mo, static ang QR. Kung ito ay isang bagay tulad ng qrco.de/xyz o isang maikling domain na hindi mo nakikilala, redirect iyon — at may isang third party na nakaupo sa gitna.

Ang alternatibo

Gumawa ng QR codes na nag-e-encode ng iyong destinasyon nang direkta. Walang third-party servers, walang redirect logs, walang subscription. Tingnan ang static vs dynamic QR codes para sa kumpletong paghahambing at katotohanan tungkol sa QR code scams para sa kung bakit dumodominahan ang middleman model sa industriya.

O basta gumawa ng static QR code at huminto sa pag-aalala.


Handa na ba para sa isang static QR code?

Gumawa nito sa iyong browser — walang account, walang tracking, walang subscription. Ang ginagawa mo ay pag-aari mo.