QR Code Phishing (Quishing), Fake Parking Meter Stickers, and Malicious URLs¶
Emergency numbers differ by country. This page uses 911, the number for the United States and Canada. Many other countries use 112, 999, or another number. Find the number for your country.
Scanning a Quick Response (QR) code with your smartphone camera has become an automatic daily habit for paying municipal parking meters, initializing electric vehicle (EV) charging stations, viewing restaurant menus, tracking parcel deliveries, and completing corporate multi-factor authentication (MFA). Threat actors exploit this implicit trust through Quishing (QR Code Phishing): pasting physical vinyl counterfeit QR decals directly over legitimate stickers on public parking kiosks, mailing fake "missed delivery" postcards, or embedding dynamically generated QR images inside corporate PDFs to bypass enterprise email secure gateways.
Because a QR code is simply an optically encoded string of data, capable of holding up to 4,296 alphanumeric characters, your eye cannot inspect the destination URL before pointing your camera at the matrix. Worse, scanning a QR code shifts the attack from your heavily monitored corporate laptop onto your personal smartphone, where mobile browser address bars truncate long subdomains and Adversary-in-the-Middle (AiTM) reverse proxies can capture your credit card, Apple Pay / Google Pay provisioning token, or Microsoft 365 session cookie in seconds. This guide details the immediate containment steps to take within minutes of scanning a malicious QR code, depending on what happened on your screen.
Do this now¶
- Determine immediately what you did AFTER scanning the QR code. Simply opening a standard web page in Apple Safari or Google Chrome on an up-to-date iPhone or Android phone rarely installs persistent malware by itself. However, if you typed a credit card number, entered an email/Microsoft 365/Google password and 2FA code, scanned the QR code from inside a logged-in app (like Discord, WhatsApp, or Microsoft Authenticator), or installed a
.apkapp or.mobileconfigprofile, you must execute targeted containment right now. - If you typed your credit card or debit card into a fake parking meter, toll road, or EV charger website, call the number on the back of your card immediately to cancel the card AND ask the agent to "Revoke all Digital Wallet VTS/MDES Network Tokens." Fake parking and parcel fee pages do not just charge you 3 dollars for parking; they run a background script that enrolls your card into an attacker's Apple Pay, Google Pay, or Samsung Pay smartphone wallet using the SMS one-time passcode you typed on the checkout page. If you only ask your bank for a replacement plastic card without revoking Visa Token Service (VTS) or Mastercard Digital Enablement Service (MDES) digital wallet tokens, the attacker's phone wallet will automatically receive your new card number and keep charging your account.
- If you logged into a Microsoft 365, Google Workspace, or bank login page after scanning a QR code, use a clean computer to change your password AND click "Sign out of all sessions / Revoke OAuth tokens" immediately. Corporate quishing emails route through Evilginx / Modlishka Adversary-in-the-Middle (AiTM) reverse proxies that steal your post-authentication session cookie even when you use an authenticator app. Follow our MFA phishing and Adversary-in-the-Middle bypass guide and alert your company IT Security / SOC team within five minutes.
- If you scanned a QR code using the built-in camera scanner INSIDE WhatsApp, Discord, Telegram, Steam, or WeChat, open that app's "Linked Devices" menu and log out all unrecognized sessions immediately. Scanning an attacker's "QR Login" code from inside an authenticated messaging or gaming app grants the attacker an instant WebSocket session clone of your account without needing your password or 2FA code.
- If the QR code prompted you to download an Android
.apkfile or install an iOS Configuration Profile (.mobileconfig), put your phone into Airplane Mode and remove the profile or app immediately. Check Settings > General > VPN & Device Management on iOS or Settings > Security > More security settings > Device admin apps on Android, and run a full device audit using our stalkerware, spyware, and keylogger detection on phones guide. - If you discovered a physical counterfeit QR sticker on a municipal parking meter, transit kiosk, or EV charger, do not confront anyone loitering nearby. Move to a safe location, notify the parking operator or city enforcement number printed on the painted metal body of the kiosk, and if you face any physical intimidation, call your local emergency number (911 in the United States and Canada, 112 across the European Union, 999 in the United Kingdom, or check our emergency numbers directory).
Why replacing your plastic credit card is NOT enough after a parking meter or parcel QR scam
In modern QR payment scams, the fake parking website displays a spinning "Processing Payment..." wheel while an automated script in the background adds your 16-digit card number to an attacker-controlled Apple Pay or Google Pay device. Your bank immediately sends a 6-digit SMS text saying "Your code to activate Apple Pay is 482910", which you mistakenly type into the fake parking website thinking you are confirming a 4-dollar parking fee. Once the attacker's digital wallet holds that Device Account Number (DAN) token, standard bank card replacements automatically push the new expiration date and card number straight to the attacker's wallet. You must explicitly tell your bank fraud specialist: "An attacker provisioned my card into an unauthorized Apple Pay / Google Pay mobile wallet; please delete all active Visa/Mastercard Digital Wallet tokens (VTS/MDES) before issuing my new card."
Malicious QR code (Quishing) incident triage decision tree¶
flowchart TD
Root["Just Scanned a Suspicious or Malicious QR Code"] --> ActionTaken{"What Happened After You Scanned the QR Code?"}
ActionTaken -->|"1. Only Opened Webpage: Closed Tab Without Typing Anything or Downloading"| SafeClean["Low Risk: Close browser tab -> Clear site data/cookies for that domain -> Check Downloads folder -> Verify iOS/Android OS is up to date"]
ActionTaken -->|"2. Entered Credit/Debit Card on Fake Parking Meter, EV Charger, or Parcel Page"| CardComp["1. Call Bank Fraud Dept immediately to lock & replace card<br/>2. CRITICAL: Demand revocation of all Apple Pay / Google Pay Digital Wallet Tokens (VTS/MDES)<br/>3. Check if your car is actually unpaid at the meter to avoid getting towed"]
ActionTaken -->|"3. Entered Work/Email Password + 2FA Code (Microsoft 365, Google, Okta)"| CredComp["1. Assume AiTM Session Cookie Theft (Evilginx)<br/>2. On a clean PC, change password & click 'Sign Out of All Sessions'<br/>3. Delete rogue MFA devices & inbox forwarding rules<br/>4. Alert Corporate IT SOC immediately"]
ActionTaken -->|"4. Scanned QR Code Using an In-App Scanner (WhatsApp, Discord, Telegram, Steam)"| SocketHijack["Open App Settings -> 'Linked Devices' / 'Authorized Devices' -> Immediately Terminate All Unknown Web/Desktop Sessions"]
ActionTaken -->|"5. Installed an App (.apk), iOS Configuration Profile, or Clicked 'Allow' on Prompts"| MalwareCheck["1. Turn ON Airplane Mode immediately<br/>2. iOS: Settings > General > VPN & Device Management -> Delete unknown profile<br/>3. Android: Uninstall rogue APK & revoke Accessibility/Admin permissions"]
Understanding the 5 distinct technical attack vectors behind QR codes¶
A QR code (ISO/IEC 18004 standard) does not only open https:// websites. Depending on the URI scheme encoded inside the black-and-white modules, scanning a code can trigger five completely different actions on your smartphone:
| Attack Vector & URI Scheme | How the Attack Works Under the Hood | Common Real-World Lures | Exact Containment Procedure |
|---|---|---|---|
1. Physical Overlay Sticker Payment Fraud + Wallet Token Provisioning (https://pay-park-city[.]com) |
Attackers print weather-resistant adhesive stickers measuring 5 by 5 centimeters (2 by 2 inches) and stick them over legitimate PayByPhone, ParkMobile, Flowbird, Passport, or ChargePoint QR codes. The site captures your card number + CVV + SMS OTP to bind your card to an attacker's NFC mobile wallet. | Municipal street parking kiosks, airport parking garages, public EV fast chargers, restaurant table "Scan to Pay" tents, bike-share docks. | Lock card, revoke all Visa/Mastercard digital wallet tokens, dispute fraudulent charges, and pay the real meter via the official app so your car is not booted or towed. |
2. Corporate Email PDF / Image AiTM Quishing (https://login.microsoftonline.com.evil[.]cfd) |
Because enterprise Secure Email Gateways (Mimecast, Proofpoint, Defender) scan text links but struggle to inspect QR codes drawn using HTML tables / ASCII blocks or embedded inside PDF images, attackers send fake "MFA Re-Registration" or "DocuSign / Voicemail" QR codes that open an Evilginx AiTM proxy on the employee's unmanaged personal iPhone. | "Action Required: Your Microsoft 365 Authenticator expires today", "HR Salary Adjustment PDF", "E-ZPass / DHL Customs Fee". | Revoke all active Entra ID / Google sessions (Sign out everywhere), rotate password, audit newly registered MFA authenticators, and check email forwarding rules. |
3. Cross-Device Authentication / WebSocket Session Hijacking (QRLJacking) (discord.com/ra/..., web.whatsapp.com) |
Many apps let you log into a desktop browser by scanning a dynamic QR code on the computer screen using your already-logged-in mobile app. Attackers stream their own live login QR code onto a fake "Free Nitro / Verification / Group Invite" page; the instant you scan it with your phone app, your phone signs the attacker's desktop browser into your account. | Discord, WhatsApp Web, Telegram, Steam Mobile Authenticator, WeChat, Line. | Open the mobile app Devices / Linked Devices menu and terminate the rogue desktop session within seconds. |
4. Malicious Mobile Sideloading & MDM Profile Enrollment (.apk / .mobileconfig) |
Fake parking or restaurant menu QR codes claim "Our web portal is down; download our quick 2MB Parking App to pay" (serving a banking Trojan .apk like Coper/Octo on Android) or serve an iOS Configuration Profile that hijacks DNS/VPN traffic. |
Fake parking meter "App Download" pages, counterfeit crypto hardware wallet setup inserts, fake public Wi-Fi login portals. | Put device in Airplane Mode, uninstall the .apk from Android Settings > Apps, or delete the .mobileconfig profile in iOS Settings > General > VPN & Device Management. |
5. Non-HTTP Native Action Payloads (WIFI:, SMSTO:, MATMSG:, TEL:, vCard) |
QR codes can encode non-web commands: WIFI:S:EvilNet;T:WPA;P:pass;; (auto-joins your phone to an attacker's Wi-Fi Pineapple Evil Twin), SMSTO:19005551212:YES (pre-addresses a premium SMS or carrier port-out confirmation text), or TEL:*21*15550009999# (GSM call-forwarding USSD code). |
Fake café "Scan for Free Wi-Fi" stickers, conference badge swaps, contest entry posters. | Forget the rogue Wi-Fi network in Wi-Fi settings; dial ##002# on your phone keypad to erase any unauthorized GSM call forwarding rules. |
Scenario A: You scanned a fake QR sticker on a parking meter, EV charger, or toll notice and entered payment details¶
Physical QR overlay tampering has surged across cities in North America, Europe, the United Kingdom, and Australia. Because victims are usually standing on a busy sidewalk in a hurry, they rarely notice that a glossy vinyl sticker has been pasted over the painted metal meter face.
Step-by-step financial and vehicle containment¶
- Lock the compromised card and purge Digital Wallet Provisioning Tokens (
VTS/MDES): - Open your banking mobile app immediately and toggle Lock / Freeze Card to ON.
- Call the fraud number on the back of your card and ask for the Digital Wallet / Tokenization Fraud Desk.
- Why standard card replacement fails: If you entered a 6-digit SMS code or email code on the fake parking page after typing your card number, you inadvertently authorized the attacker to link your card to their Apple Pay, Google Pay, Garmin Pay, or Fitbit Pay account. Ask the bank representative to:
- View all Active Digital Wallet / Device Tokens linked to your Primary Account Number (PAN).
- Delete/Terminate all unrecognized Apple Pay, Google Pay, and merchant tokens.
- Opt out of Visa Account Updater (VAU) / Mastercard Automatic Billing Updater (ABU) for this re-issuance so the new card number is not automatically forwarded to recurring fraudsters.
- Pay your parking session legitimately right now so your vehicle is not ticketed, booted, or towed:
- Remember: Because the QR sticker belonged to a criminal and not the city parking authority, your license plate is currently parked unpaid.
- Never scan any sticker on the machine. Instead, walk to the meter and pay with a physical coin/contactless tap directly on the hardware terminal, or go to the official Apple App Store / Google Play Store, download the verified municipal app (such as ParkMobile, PayByPhone, RingGo, EasyPark, or PayStay), and type the 4-to-6-digit Zone Number painted on the metal pole.
- Photograph the counterfeit sticker before reporting it:
- Take a clear photograph of the parking meter or EV charger showing both the counterfeit QR sticker (look for raised adhesive edges, mismatched font sizes, or a sticker covering part of the official logo) and the meter serial/pole number.
- Call the municipal parking authority or EV charging network (ChargePoint, Electrify America, EVgo, Ionity, Shell Recharge) customer service phone number printed on the kiosk so maintenance crews can scrape off the overlay stickers along the entire street block.
Scenario B: You scanned a QR code in a work email or PDF and entered your Microsoft 365, Google, or Okta login¶
In corporate cybersecurity, QR code phishing is the #1 delivery mechanism for Adversary-in-the-Middle (AiTM) session hijacking. Because most employees read work emails on their desktop monitor and pick up their personal smartphone to scan the QR code on the screen, the login happens over the employee's cellular 5G connection, completely bypassing the corporate laptop's Endpoint Detection and Response (EDR) agent, corporate firewall, and browser phishing extension.
Immediate 15-minute account containment protocol¶
- Do NOT assume your Authenticator App protected you:
- Modern quishing pages use Evilginx, Modlishka, or Muraena reverse proxies. When you type your corporate email, password, and 6-digit Authenticator code (or approve an Authenticator Push / number match) on the fake mobile page, the attacker's server relays your credentials to
login.microsoftonline.comin real time and captures the resultingESTSAUTH/ESTSAUTHPERSISTENTsession cookie. - On a clean computer, rotate your password AND revoke all active session tokens:
- Microsoft 365 / Entra ID: Go to
https://mysignins.microsoft.com/security-info. First, click Sign out everywhere (to invalidate the stolen session cookie). Second, change your password. Third, look carefully at the list of Sign-in methods on that exact page, attackers use automated scripts that register their own rogue Authenticator App or FIDO2 key onto your account within 8 seconds of stealing your cookie. Delete any Authenticator device you do not recognize. - Google Workspace / Gmail: Go to
https://myaccount.google.com/device-activity, click the unrecognized mobile/Linux session -> Sign out, change your password, and verify 2-Step Verification devices. - Check your email inbox for silent "Rule / Forwarding" persistence:
- Attackers who hijack a corporate mailbox via a QR code immediately create a hidden Inbox Rule in Outlook Web (
Settings > Mail > RulesandForwarding) that routes every incoming email containing words like"Invoice","Wire","Payment","ACH", or"DocuSign"into the RSS Subscriptions or Archive folder while marking it as read. Audit and delete all unknown rules using our email account hacked, forwarding rules, and recovery guide. - Notify your corporate IT Help Desk or Security Operations Center (SOC) immediately:
- Never hide an accidental QR scan at work out of embarrassment. Calling IT within 5 minutes allows an administrator to click "Revoke sessions" and "Require re-register MFA" in Entra ID / Okta before the attacker can launch a Business Email Compromise (BEC) wire fraud attack against your clients.
Scenario C: You scanned a QR code using an In-App Scanner (WhatsApp, Discord, Telegram, Steam)¶
If a friend, gaming server "Verification Bot," or fake giveaway page told you to "Open Discord / WhatsApp / Steam -> Open QR Scanner -> Scan this code to claim a reward or verify your age", you did not visit a website, you just authorized a Remote Desktop / Web Client Login (QRLJacking):
- WhatsApp: Immediately open WhatsApp on your phone -> tap Settings (or the three dots
⋮on Android) -> tap Linked Devices -> tap every listedGoogle Chrome (Windows/Linux/Mac)or unknown session -> tap Log Out. - Discord: Immediately open Discord -> tap Settings -> Devices -> Log Out All Known Devices, and change your Discord password (changing your Discord password automatically invalidates the stolen
Authorizationtoken in the attacker's browser). - Telegram: Open Telegram -> Settings > Devices -> Terminate All Other Sessions.
- Steam: Open the Steam Mobile App -> tap the Shield icon (Steam Guard) -> Gear icon -> Authorized Devices -> Remove access from any unrecognized PC.
Scenario D: You only scanned the QR code and opened the webpage (Didn't type anything)¶
If you pointed your iPhone or Android camera at a suspicious QR code, tapped the yellow URL banner, saw a sketchy webpage load in Safari or Chrome, and immediately closed it without typing any passwords, credit cards, or clicking "Install":
- Take a deep breath: A zero-click drive-by browser exploit from a street parking sticker is extraordinarily rare. Commercial zero-click mobile browser exploits cost millions of dollars and are reserved by nation-state intelligence agencies for targeted espionage, not mass parking-meter scams.
- Close the browser tab and purge site storage:
- iOS (Safari): Close the tab, then open Settings > Apps > Safari > Advanced > Website Data, search for the suspicious domain name, and swipe left to Delete its cookies and cache.
- Android (Chrome): Tap the padlock / tune icon to the left of the address bar -> Cookies and site data -> Delete (or go to Settings > Privacy and security > Delete browsing data -> Last hour).
- Check that your browser did not silently enable push notification spam or download a file:
- In Android Chrome, go to Settings > Site settings > Notifications and verify no strange website was granted permission to send you fake "Virus Detected" push notification pop-ups.
- Open the Files / Downloads folder on your phone and delete any
.apk,.pdf,.ics(calendar spam), or.mobileconfigfile that downloaded automatically when the page loaded. - Verify no GSM Call Forwarding was triggered (if the QR code opened your Phone Dialer):
- Open your phone keypad and dial
*#21#(checks unconditional call forwarding status). If any number is listed, dial##002#and press Call to wipe all GSM call-forwarding rules on your carrier line.
Scenario E: Counterfeit Cryptocurrency Hardware Wallet QR Codes and Fake "AirDrop / Claim" Stickers¶
Another rapidly growing Quishing vector targets cryptocurrency owners through physical mailers and tampered packaging:
- Tampered Ledger / Trezor / Coldcard Packaging Inserts:
- Fraudsters buy hardware wallets, insert a laminated counterfeit instruction card containing a QR code reading "Scan to run mandatory Firmware Integrity Check or initialize your 24-word recovery seed", shrink-wrap the box, and return it to third-party retail marketplaces.
- Golden Rule: Legitimate hardware wallets never ask you to type your 12-word or 24-word BIP-39 recovery phrase into a smartphone web page or scan a QR code that asks for your seed words. If you entered your seed phrase after scanning a QR code, your wallet is already monitored by an automated sweeper bot; execute our cryptocurrency wallet drain and seed phrase compromise protocol immediately.
- WalletConnect (
wc:) Malicious DApp Drainer QR Codes: - Scanning a
wc:QR code from inside MetaMask, Phantom, Rabby, or Trust Wallet connects your Web3 wallet to a third-party decentralized application (DApp). If the site immediately pops up a signature request (Permit2,setApprovalForAll, orincreaseAllowance), click Reject and disconnect the WalletConnect session under Settings > Connected Sites / WalletConnect Sessions.
Forensics: How to safely decode and inspect a suspicious QR code image without scanning it with your phone¶
If you received a suspicious PDF or email containing a QR code and want to see where it leads without touching it with your smartphone, use these safe command-line or sandboxed methods on a desktop computer:
# 1. Decode the raw text/URL inside a QR code image offline using 'zbarimg' (Linux/macOS):
# (Does NOT connect to the internet; simply prints the decoded string to your terminal)
zbarimg --raw suspicious_qr_image.png
# 2. Trace all HTTP 301/302 redirect hops without executing JavaScript or loading the page:
curl -sIL --max-redirs 10 "https://suspicious-short-url.example/xyz" | grep -iE "^(HTTP/|location:)"
# 3. Inspect DNS registration age (Quishing domains are almost always <14 days old):
whois suspicious-parking-domain.com | grep -iE "Creation Date|Registrar:"
Reporting physical and digital Quishing attacks to official authorities¶
Reporting a malicious QR code gets both the physical sticker removed by city crews and the underlying phishing domain sinkholed by global browser blocklists (Google Safe Browsing and Microsoft SmartScreen):
- Report the malicious URL to Google Safe Browsing & Cloudflare Radar: Submit the decoded URL to
safebrowsing.google.com/safebrowsing/report_phish/andradar.cloudflare.com/scan. Once flagged, every iPhone Safari and Android Chrome browser worldwide will display a full-screen red "Deceptive Site Ahead" warning within 15 to 30 minutes whenever the next pedestrian scans that parking meter sticker. - File an official cybercrime report:
- United States: File a report with the FBI Internet Crime Complaint Center (
ic3.gov) and the Federal Trade Commission (reportfraud.ftc.gov), and notify your local city parking authority. - United Kingdom: Forward quishing emails to
report@phishing.gov.uk(National Cyber Security Centre) and report financial loss to Action Fraud (actionfraud.police.uk). - European Union, Canada, and Australia: Report to the Canadian Anti-Fraud Centre (
antifraudcentre-centreantifraude.ca), Australian Scamwatch (scamwatch.gov.au), or your national computer emergency response team (CERT).
How to inspect any QR code safely BEFORE visiting the URL (Prevention Checklist)¶
You never have to guess where a QR code leads. Follow these five rules every time you encounter a QR code in public or by mail:
- Run your fingernail across physical QR codes on parking meters, EV chargers, and restaurant tables: Legitimate parking kiosk and EV charger QR codes are either silk-screened directly onto the metal faceplate or sealed underneath the clear polycarbonate protective sheet. If your fingernail catches the raised edge of a paper or vinyl sticker stuck on top of the sign, never scan it.
- Read the full URL preview in your native camera app and ignore URL shorteners: Both the built-in iOS Camera app and Android Camera display a small pill banner showing the domain name before opening the browser. If a municipal parking meter or bank notice displays a shortened or generic URL (
bit.ly,tinyurl.com,qrco.de,t.co,lnkd.in, orpage.link), do not tap it, government agencies and major banks never use third-party link shorteners on payment kiosks. - Turn OFF "Open Links Automatically" in your phone camera settings: Make sure your camera app requires you to manually read and tap the URL preview banner rather than launching the browser the instant a QR code enters the frame.
- Never scan a QR code that arrives inside an unsolicited physical letter or postcard ("USPS / Royal Mail / Amazon Mystery Package"): Scammers mail physical packages containing a cheap, unordered item (like a plastic ring or phone charger, a "Brushing Scam") accompanied by a card reading "Scan this QR code to see who sent you this gift or process your return." Throw the QR card in the trash.
- Download parking and EV charging apps directly from the App Store / Play Store: Instead of scanning a street QR code, open the official ParkMobile, PayByPhone, RingGo, or ChargePoint app and type the Zone Number printed on the sign.
Frequently asked questions¶
Can simply pointing my iPhone or Android camera at a QR code hack my phone before I even tap the link?
No. Pointing your smartphone camera at a QR code only causes the camera viewfinder software to decode the black-and-white pixel matrix into a text string in memory and display a preview banner on your screen. Decoding that text does not transmit any network packets over the internet, does not execute JavaScript, and cannot give an attacker access to your phone. A threat only begins if you **tap the preview banner** to open the URL in your browser (or dial the USSD/SMS command encoded in the QR matrix) and then interact with the destination site.
Why did my company email spam filter let a phishing QR code straight into my inbox when it normally blocks bad links?
Traditional enterprise email security gateways scan the text of incoming emails and inspect `` HTML hyperlinks against threat-intelligence blocklists. To blind those scanners, attackers encode the malicious phishing URL into a **QR code image** embedded inside a multi-page PDF attachment, or even draw the black-and-white squares of a QR code using **zero-image HTML `