TL;DR:
Pe 25 iulie 2025, au apărut sesizări privind stickere care au înlocuit codurile QR oficiale de plată din parcările din București. Noile coduri redirecționau utilizatorii către un site malițios, unde datele bancare introduse erau colectate și folosite pentru tranzacții frauduloase. Echipa noastră a analizat unul dintre codurile QR și a identificat mai mulți indicatori de compromitere (vezi la finalul articolului).
Intro
Pe 25 iulie, în mai multe parcări din centrul Bucureștiului, câteva stickere aparent inofensive au trecut complet neobservate de majoritatea șoferilor. În realitate, acele bucăți de hârtie acopereau codurile QR originale folosite pentru plata parcării și le înlocuiau cu unele care redirecționau utilizatorii către un website controlat de atacatori. Ce a urmat e un exemplu clar de cum ingineria socială, combinată cu infrastructură web malițioasă, poate transforma un gest banal – scanarea unui cod QR – într-un risc serios de fraudă financiară. În acest articol detaliem cum funcționează atacul, ce am descoperit în urma analizei tehnice și ce indicatori pot ajuta la detectarea acestui tip de abuz.
Surse inițiale
- https://www.youtube.com/watch?v=xvm2Ziot9ys
- Observator news
- https://www.youtube.com/watch?v=HIZ51D2fOS4
- Conform Poliției Capitalei au fost identificate panouri cu stickere false în următoarele zone: Piața Amzei, CEC – Judecătorie, Eforie, Brezoianu, Ion Câmpineanu.
Codurile QR
Atacatorii au folosit stickere albe aplicate direct peste codurile QR originale de pe panouri (figura 1). Deși bine aliniate, acestea păreau lipite în grabă — multe erau deja parțial dezlipite sau prezentau urme vizibile de deteriorare.
La scanare, codurile false nu redirecționau către platforma oficială de plată (https://pay.qport.app/p/cmpb), ci către un link generat prin scanned.page — un serviciu gratuit de creare și gestionare a codurilor QR. Acest URL ( https[:]//scanned.page/p/685b040e3a87f ) intermediar permitea atacatorului să modifice oricând destinația finală de redirecționare.
Până pe 26.07.2025, ora 02:00 AM, redirecționarea ducea către un site malițios (https[:]//209-38-122-248.cprapid.com); ulterior, redirectul a fost înlocuit cu linkul legitim QPort, semn că atacatorul a încercat să șteargă urmele și să închidă campania.

Platforma web
După scanare, utilizatorul era redirecționat către https[:]//209-38-122-248.cprapid.com. Pe lângă aspectul evident suspect al linkului, domeniul principal — cprapid.com — aparține infrastructurii CPanel, folosită pentru administrarea conturilor de hosting. Subdomeniul 209-38-122-248 este generat automat de CPanel și corespunde direct adresei IP a serverului care găzduia site-ul malițios: 209.38.122.248.

Pagina de la adresa https[:]//209-38-122-248.cprapid.com (vezi 2) imita identitatea vizuală a platformei PayByPhone — un serviciu legitim de plată a parcării disponibil în țări precum UK, Franța, Germania, Elveția, Italia, SUA și Canada. Deși acest serviciu nu operează în România, atacatorul a folosit sigla și designul pentru a părea credibil.
Site-ul afișa un formular în care utilizatorul introducea durata dorită pentru parcare (cu un preț vizibil mai mic decât cel real din București), numărul de înmatriculare și datele cardului bancar. După completare, era afișată o scurtă animație de încărcare, urmată de o solicitare de „validare a tokenului”. În realitate, datele cardului erau deja transmise, iar atacatorii le foloseau pe un alt site, în paralel, pentru a efectua plăți frauduloase.
Infrastructura atacului
Adresa IP 209.38.122.248 este un server VPS linux – ubuntu -localizat în India pe infrastructura DigitalOcean. La momentul analizei, singurele porturi deschise erau cele standard pentru CPanel, semn că instanța era minim configurată.
Atacul s-a bazat pe mai multe endpointuri web active:
- https[:]//209-38-122-248.cprapid.com/index.php
- https[:]//209-38-122-248.cprapid.com/gate.php
- https[:]//209-38-122-248.cprapid.com/admin.php
În plus, serverul conținea resurse statice organizate în două directoare:
/img/
– conținea logo-urile: tpark, PayByPhone, Visa, American Express/files/
– conținea fișiere precumapp.css
,audio.mp3
,engine.js
șiNeutrinoAPI.php
(figura 3)

Endpointul admin.php era restricționat și nu a putut fi accesat direct. Presupunem că servea drept interfață de administrare pentru atacator, posibil utilizată pentru monitorizarea activității și gestionarea datelor colectate. Accesul părea condiționat de parametri suplimentari sau autentificare.

Datele bancare completate în formularul din index.php
erau transmise către endpointul gate.php
. După trimitere, browserul iniția periodic requesturi către același endpoint, aparent pentru a verifica dacă serverul returnează un răspuns sau comandă nouă (figura 5) – fiecare parametru avea o comandă definită – vezi conținutul fișierului javascript mai jos.

Analiza codului sursă din index.php și /files/engine.js a evidențiat logica din spatele fluxului de interacțiune și a parametrilor utilizați, dar și mai multe comentarii scrise în limba română — un indiciu relevant privind localizarea autorului (figurile 6 și 7).
Pentru corelare, am investigat alți indicatori asociați cu gate.php, index.php și infrastructura cprapid.com. Am descoperit campanii (figurile 8, 9 și 10) similare datând din 2021 și 2025, care reutilizau aceleași fișiere (engine.js), dar fără comentarii în română. Cel mai probabil, atacatorul a adaptat scripturi și playbookuri deja existente, folosite anterior în alte regiuni, modificându-le pentru contextul local.





Lista completă a indicatorilor ce prezintă elemente similare, alături de codurile sursă ale fișierelor analizate, este disponibilă la finalul articolului.
Userul folosit pe cPanel precum si unul dintre subdomeni erau numite kakat11 (kakat11.209-38-122-248.cprapid.com – figura 11), user pe care il regasim ulterior si pe server, unde exista o baza de date numita: kakat11209381222_kaka1 .

Baza de date
Baza de date kakat11209381222_kaka1
conținea trei tabele: admin_settings
, results
și visits
. Tabela admin_settings
avea o singura valoare redirect = https://www.paybyphone.com/
, indicând că atacatorul folosea redirectarea către site-ul real PayByPhone — compania pe care o imita vizual, în locul celei oficiale din București.
Tabelele visits
și results
stocau date despre utilizatori: accesări ale paginii și informațiile cardurilor introduse. Am identificat aproximativ 30 de IP-uri unice și peste 80 de sesiuni, toate înregistrate într-un interval scurt de 2–3 ore. Presupunem că baza de date era curățată periodic, ceea ce face imposibilă estimarea exactă a duratei campaniei sau a numărului total de victime.

Concluzii
Campania analizată nu este una singulară și, cel mai probabil, nici recentă. Am identificat indicatori identici — același design, aceleași fișiere, aceeași structură de atac — în mostre din luna mai 2025. Acest lucru sugerează că atacatorii au reutilizat același kit de phishing într-o altă zonă sau oraș, cu adaptări minime pentru contextul local.
Din analiza codului și a infrastructurii reiese un modus operandi destul de clar: VPS găzduit pe DigitalOcean, instanță CPanel configurată minimal, domenii de forma *.cprapid.com (specifice CPanel) — probabil pentru a evita detecția automată și listele de block. Codul sursă este slab scris, cu erori și implementări rudimentare, semn că a fost adaptat rapid dintr-un playbook extern, fără prea multă înțelegere a funcționalității.
Elementele din comentarii, structura bazei de date și prezența fizică necesară pentru lipirea stickerelor susțin ipoteza că autorii sunt locali. Mai mult, conform informațiilor din presă, autoritățile au deschis o anchetă și au ridicat probe, inclusiv amprente. Rămâne de văzut dacă aceste investigații vor duce la identificarea suspecților.
Este de așteptat ca astfel de atacuri să continue și să se diversifice. Codurile QR au devenit parte din interacțiunea zilnică — în parcări, restaurante, facturi, reclame — ceea ce le face o țintă ideală pentru atacuri de tip phishing fizic. Este important ca utilizatorii să verifice întotdeauna cu atenție adresa web deschisă în urma scanării unui QR, mai ales în contexte ce implică plăți.
Echipa Hackout.ro vă recomandă să rămâneți vigilenți. Orice cod QR scanat trebuie privit cu prudență — verificați cu atenție adresa web înainte de a introduce date personale sau de plată. Dacă aveți dubii, folosiți o metodă alternativă de plată sau verificați informațiile direct pe site-ul oficial al furnizorului. Nu presupuneți niciodată că un cod QR este sigur doar pentru că se află într-un spațiu public.
Indicatori
https[:]//scanned.page/p/685b040e3a87f
Endpoint-uri web:
- https[:]//209-38-122-248.cprapid.com/
- https[:]//209-38-122-248.cprapid.com/gate.php
- https[:]//209-38-122-248.cprapid.com/admin.php
- https[:]//209-38-122-248.cprapid.com/files/engine.js
- https[:]//209-38-122-248.cprapid.com/files/
- https[:]//209-38-122-248.cprapid.com/files/NeutrinoAPI.php
Domenii:
- 209-38-122-248.cprapid.com
- kakat11.209-38-122-248.cprapid.com
IP:
- 209.38.122.248
Indicatori similari / alte campanii:
Coduri sursă:
- Cod sursa engine.js https://pastebin.com/nJtAc2NM
- Cod sursa index web https://pastebin.com/WNiSWAek