Available for projects & agency overflow · Quick reply, from the person who does the work

My visitors see a fake "prove you're human" page

Your customers describe a verification screen asking them to paste a command into their own computer, while you see nothing unusual from your browser: the infection picks its victims, and you are not one of them.

Describe my issue Send a message

You see nothing, and they are still right

A customer writes that before reaching your shop, they were shown a verification page announcing unusual traffic, with a message along the lines of "Unusual Web Traffic Detected", asking them to carry out an operation on their own computer to prove they are not a robot. You open your site: nothing. You reload: nothing. You try two other pages: still nothing. It is tempting to decide the customer landed on the wrong site, or has a dubious browser extension.

That is almost always wrong. The code is on your server. What changes is that it does not fire for everyone. Code injected into a theme can decide, on every page load, whether to serve the normal page or the trap, based on what it learns about the visitor: their browser, their operating system, where the visit came from, whether they are logged into the administration. I cannot tell you which criteria a given variant uses — it differs from campaign to campaign — but the principle holds: the site owner, who always arrives the same way, with the same session and the same browser, is the least likely visitor to see anything.

That is also what makes these infections last. As long as nobody reproduces the conditions of a real visitor, the site looks clean from the back office and the problem stays buried in customer service messages.

What your customers describe

  • An anti-robot verification screen appears before your page, although you never set one up.
  • The message mentions unusual web traffic and shows English text you do not recognise.
  • The visitor is asked to carry out an operation on their own computer to "prove they are human".
  • It is intermittent: on the same link, one customer sees it and another does not.
  • Some visitors are redirected to an outside page offering a browser update.
  • From your usual browser, you see absolutely nothing.

Where the code hides, and why every theme matters

In May 2025 Sucuri documented a campaign matching exactly what your customers describe. The malicious code is injected into the header.php file of every installed theme, not just the active one. It points to a verification.html file dropped on the server, which holds the fake verification page. The visitor reads that unusual traffic has been detected and that they must run an operation on their machine. If they follow it, they install malware on their own computer. It is an evolution of a campaign Sucuri had already seen in March 2025.

The key point is this: in this pattern the final victim is not your server. Your site is not stolen, not encrypted, its data does not necessarily leave. It acts as a distribution point. That explains the gap between what you measure — a site responding normally, orders coming through — and what your customers experience.

"Every installed theme" is not a detail for the curious. A theme you do not use, left behind after a trial or shipped by default, is still a PHP file on the server. Cleaning only the active theme leaves the rest in place, ready to be called again if the theme changes, and above all creates the belief that the job is done. So I always start from the assumption that the whole themes directory has to be inspected.

A second hiding place needs checking too. The wp-content/mu-plugins/ directory holds "must-use" plugins: they load automatically on every page render, without activation, and do not appear in the plugins list in the dashboard. A site audited only from the admin interface has a complete blind spot there.

Reproduce, search, close it

  1. Stop being a known visitor

    Log out of the back office, open a private window, change browser, change device, use a mobile connection rather than the office network, and reach the site through an external link rather than typing the address. Every parameter you change brings you closer to a real visitor. Also ask your customer which browser and operating system they were using: that is the most useful thing they can give you.

  2. Compare the header files of every theme

    Open the header.php file of each theme present on the server, not only the active one, and compare it with a clean copy of the same theme version. A file modified recently, when you changed nothing, is enough to point the search.

  3. Look for files that have no business being there

    A verification.html file, or any stray HTML file in a theme folder or at the root, deserves to be opened and dated. Themes have no normal reason to host standalone HTML pages.

  4. Open the auto-loading plugins directory

    List the contents of wp-content/mu-plugins/ over file access, not from the dashboard. Sucuri observed three files there: redirect.php, sending visitors to an outside page posing as a browser update; index.php, a webshell granting remote access to the server; and custom-js-loader.php, which replaces site content with unwanted links and manipulates images.

  5. Date the changes before cleaning

    Record the modification dates of the affected files before restoring them. That is what lets you search the server logs for what happened that day and how access was obtained. Cleaning first and investigating afterwards destroys half the evidence.

  6. Close the door, not just the window

    Restore theme files from a clean source, delete the added files, then deal with the cause: update everything, review administrator accounts and remove those no longer needed, enforce unique passwords, enable two-factor authentication, and put file integrity monitoring and a web application firewall in place.

recherche-fichiers-modifies.sh
# Fichiers d'en-tete de theme modifies dans les 30 derniers jours
find wp-content/themes -name 'header.php' -mtime -30 -ls

# Fichiers HTML isoles deposes dans les dossiers de theme
find wp-content/themes -maxdepth 3 -name '*.html' -ls

# Contenu du dossier des extensions a chargement automatique
ls -la wp-content/mu-plugins/

Related reading

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

symptomes
depuis-quand
sauvegarde
acces-admin (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Are my customers on the wrong site?
Possible, but very rare, especially when several people describe the same thing. An infection that does not fire for everyone produces exactly this picture: credible, matching reports, and an owner who can reproduce nothing from their own machine.
Is the problem the visitor's computer?
Not at the start. The trap page is served by your site: the code is injected into theme files and points to a verification page dropped on the server. The visitor's machine is what gets infected if they follow the displayed instructions. The server is only the distribution point.
Why inspect themes I do not even use?
Because the injection documented by Sucuri hits the header.php file of every installed theme, not just the active one. An unused theme is still code on the server, and cleaning only the active theme gives the illusion of a clean site.
What do I tell a customer who followed the instructions?
To have their computer scanned with an up-to-date security tool, and to change the passwords of accounts used on that machine from a different device, starting with email and banking. I do not take on the disinfection of a customer's computer: that is an IT provider's job, not mine.
Should I warn all my customers or only those who reported it?
The ones who reported it are, by definition, the ones who were not caught. It is the others who matter. A factual notice kept on the site for a few weeks, without drama, reaches visitors you have no other way of identifying.
Once the site is cleaned, is it behind me?
Not until the way in is identified. The modified file is the consequence, not the cause. Without a full update, an administrator account review, unique passwords, two-factor authentication and file integrity monitoring, the same injection often returns to the same place.