Honeypot Intelligence Report · Threat Intel

28,000+ Requests in 9 Days. We Don't Even Run WordPress.

We launched sunglasses.dev on April 1, 2026. Within 72 hours, France-based bots were already probing us for WordPress admin panels, login pages, config files, and secrets. We're a static security site with zero PHP, zero MySQL, zero WordPress. They didn't care. Here's what we discovered.

The contradiction that matters
sunglasses://report-wordpress-bot-attacks
In one line

We run a static site on Cloudflare Pages. No PHP. No MySQL. No wp-admin. No plugins. Zero WordPress files anywhere. Yet within 72 hours of going live, automated scanners — primarily from France-based infrastructure — were already probing us for WordPress credentials and secret files. If you run a website, you're being probed right now.

FIG.01 · What they want

What They're Looking For

Every request below was logged by our Cloudflare telemetry on sunglasses.dev. These aren't hypothetical attacks — this is what actually hit our server in its first 9 days online. France-based infrastructure was the heaviest bot source, concentrated in the first 72 hours after launch.

/wp-login.php

Login brute-force

/wp-admin/

Admin panel access

/xmlrpc.php

Auth amplification

/.env

Secret theft

/wp-config.php

DB credentials

/.git/config

Source code theft

/.git/HEAD

Repo discovery

/administrator

CMS panel fishing

Relative request volume from our telemetry sample. Exact counts vary by day.

FIG.02 · Attack intent

Three Classes of Attack Intent

PathAttacker intentIf successful
/wp-login.phpCredential brute-forceFull admin access to WordPress dashboard
/xmlrpc.phpAuth amplificationTest thousands of passwords in a single request
/wp-admin/Admin panel discoveryConfirm target runs WordPress, attempt login
/wp-config.phpDatabase credential theftDirect database access, full data compromise
/.envEnvironment secret theftAPI keys, tokens, passwords in plaintext
/.git/configSource code theftClone entire codebase including embedded secrets
FIG.03 · After they get in

What Happens After They Get In

sunglasses://report-wordpress-bot-attacks#progression
Context

This is the standard attack progression for WordPress compromise — from first scan to AI agent poisoning.

Step 1 — Recon

Spray /wp-admin, /xmlrpc, /.env across millions of IPs.

Step 2 — Login

Brute-force wp-login, XML-RPC multicall batching.

Step 3 — Foothold

Exploit weak credentials or unpatched plugin.

Step 4 — Persist

Rogue admin, backdoor plugin, webshell in PHP.

Step 5 — Monetize

SEO spam, redirects, crypto miners, ad injection.

Step 6 — AI Poison

Hidden instructions for AI agents that read the page.

Observed

Steps 1 and 2 are what we observed. We caught the recon phase on a site that has nothing to find. On a real WordPress site with weak credentials, step 3 happens in minutes.

FIG.04 · Why WordPress

Why WordPress Is the #1 Commodity Target

sunglasses://report-wordpress-bot-attacks#why-target
Scale
  • 42.5% of all websites run WordPress (W3Techs, April 2026) — the largest attack surface on the internet
  • 7,966 new vulnerabilities found in WordPress plugins and themes in 2024 alone — that's ~22 per day (Patchstack)
  • +34% year-over-year increase in vulnerability count vs 2023
  • 96% of vulnerabilities were in plugins, not WordPress core
  • 43% required no authentication to exploit
  • 500,000+ infected websites observed in 2024, according to Sucuri
  • 1,614 plugins/themes removed from the WordPress repository for unpatched security issues

Source: Patchstack — State of WordPress Security in 2025 (data period: 2024)

FIG.05 · The xmlrpc trick

The xmlrpc.php Trick: One Request, Thousands of Passwords

sunglasses://report-wordpress-bot-attacks#xmlrpc
The gap

Most people know about brute-forcing /wp-login.php. Fewer know about xmlrpc.php — and it's far more dangerous.

The trick

XML-RPC's system.multicall method lets an attacker batch hundreds of authentication attempts into a single HTTP request. Instead of one login attempt per request (which rate-limiters catch), they send one request containing 500 username/password pairs.

Why it matters

Why this matters: Most WordPress rate-limiting and login-protection plugins count requests, not authentication attempts. A single POST to xmlrpc.php can test 500 credentials while appearing as one request in the access log.

Defenders see

What defenders see:

  • Repeated POSTs to /xmlrpc.php
  • Multicall payloads with nested wp.getUsersBlogs calls
  • Correlated login failures or account lockouts
  • High request body sizes relative to normal traffic
Fix: Disable XML-RPC entirely if you don't use it (most modern WordPress sites don't need it). At minimum, block system.multicall at the WAF level.
FIG.06 · AI agent poisoning

The Part Nobody Is Talking About: AI Agent Poisoning

sunglasses://report-wordpress-bot-attacks#ai-poison
The gap

This is Sunglasses territory. Everyone talks about WordPress hardening. Almost nobody talks about what happens when a compromised website meets an AI agent.

The chain

Here's the chain:

  • Website gets compromised through any of the methods above
  • Attacker injects hidden content — invisible text, SEO spam, or deceptive instructions buried in the page
  • AI browsing agent ingests the page during research, summarization, or retrieval
  • Hidden instructions influence the model's behavior — ignore safety policy, exfiltrate data, fetch malicious URLs, misuse tools
  • If the agent has tool privileges, the blast radius expands: file access, API calls, code execution
The label

This is indirect prompt injection (OWASP LLM01:2025) — and compromised WordPress sites are one of the largest delivery surfaces for it.

What's needed

Traditional web compromise response isn't enough anymore. You now need:

  • Website integrity controls (prevent and detect compromise)
  • AI ingestion-layer defenses (scan content before agents process it)

At the same time. This is the gap Sunglasses is built to fill.

FIG.07 · What to do now

What You Should Do Right Now

sunglasses://report-wordpress-bot-attacks#actions
Today · P0
  • Block or rate-limit /wp-login.php, /xmlrpc.php, /wp-admin* for non-authenticated IPs
  • Block probes for /.env, /.git/*, /wp-config.php at the WAF level
  • Disable XML-RPC if you don't actively use it
  • Enforce MFA and strong passwords for all admin accounts
  • Remove unused plugins and themes — patch everything else immediately
This week · P1
  • Add virtual patching or a WAF tuned for WordPress plugin CVEs
  • Run integrity checks for unauthorized admin users and file modifications
  • Separate bot traffic from human traffic in your analytics
  • Alert on .git, .env, and backup-file path probes
AI-era · P2
  • Treat external web content as untrusted input to AI agents
  • Add pre-ingestion scanning for prompt-injection patterns and hidden directives
  • Require policy checks and allowlists before tool execution from web-derived instructions
  • Add human approval gates for high-risk actions triggered by browsed content
FIG.08 · How we detected it

How Sunglasses Detected This

sunglasses://report-wordpress-bot-attacks#detection
Method
  • Cloudflare telemetry surfaced concentrated 4xx request patterns against CMS and secret-file paths
  • Honeypot analysis converted noisy scanner traffic into attributable threat intelligence
  • Pattern classification categorized probes by intent: credential abuse, secret-file recon, source theft
  • Cross-analysis separated commodity spray from higher-risk targeted behavior
Turned into

What we turned "error noise" into: Most site operators ignore 4xx errors — they look like broken links. We treated them as attacker telemetry. The result is this report and a clearer picture of how commodity recon works at internet scale.

FIG.09 · How bots found us

How Bots Found Us Within 72 Hours of Launch

sunglasses://report-wordpress-bot-attacks#ct-logs
Timing

We launched on April 1. The bots arrived within 72 hours. How?

CT logs

Certificate Transparency (CT) logs. The moment our SSL certificate was issued, it appeared in public CT logs. Automated scanners monitor these feeds in real time using tools like CertStream. Research from SANS ISC and UC Santa Barbara confirms: network probes arrive "just seconds" after a CT log entry is published.

Source

The heaviest early traffic came from France-based infrastructure — primarily OVH (OVHcloud), Europe's largest hosting provider headquartered in Roubaix, France. OVH operates 4.5+ million IP addresses and is well-documented as a source of automated scanning traffic:

  • Scamalytics rates OVH traffic at a 59/100 fraud risk score
  • Imperva's Bad Bot Report named OVH SAS as a known bot infrastructure provider
  • 51% of all internet traffic in 2024 was bots (Imperva/Thales 2025 report)
Takeaway

This is not unique to us. Every new website on the internet goes through this. The difference is that we caught it, measured it, and are sharing the data.

FIG.10 · Honest assessment

Honest Assessment

What we know for certain
  • 28,000+ total requests hit sunglasses.dev in its first 9 days online (Cloudflare analytics, verified April 9, 2026)
  • 123 attacks were blocked by Cloudflare in the same period
  • France-based infrastructure was the heaviest bot traffic source, concentrated in the first 72 hours after launch
  • Bot requests targeted WordPress admin panels, login pages, config files, .env files, and .git directories
  • Traffic originated from 75+ countries (US, FR, AU, CA, IN, NL, DE and others confirmed)
  • Our site has zero WordPress components — every WordPress-path request was an automated probe
What we don't claim
  • We cannot attribute specific requests to specific threat actors — this is commodity scanning, not targeted APT activity
  • Exact per-path request counts are not available in Cloudflare's free tier analytics — bar chart shows relative volume from firewall event samples
  • "France-based" means the request origin infrastructure was geolocated to France — not that the attackers are French
  • Not all 28K requests were malicious — this total includes legitimate visitors, search engine crawlers, and bot traffic combined
Why we publish what we don't know: Security reports that overstate confidence lose trust. We tell you what we verified, what we sampled, and what still needs deeper export. That's how credibility works.
FIG.11 · Sources

Sources

sunglasses://report-wordpress-bot-attacks#sources
References

Scan your AI agent inputs

Scan your AI agent inputs for prompt injection, secret theft, and supply chain attacks. Free. Open source. Local only. pip install sunglasses