+92 348 031 3415smhussainjatoi@gmail.comRemote-first · Working globallyBusiness Growth Systems · Global Consulting
WEBSITE SECURITY INCIDENT · FIRST-PERSON CASE STUDY

My WordPress Website Was Hacked: PHP Backdoors, SEO Spam and the Recovery Timeline

On October 23, 2026, I discovered unauthorized URLs associated with HussainJatoi.com. The investigation identified two malicious PHP files, suspicious server rules and Search Console activity I had not created. This is the evidence, the actions I took, and the recovery work that remains.

Hussain Jatoi
Hussain Jatoi
Business Growth Systems Architect
Published: October 24, 2026
Updated: October 24, 2026
16 min read
INCIDENT SUMMARY

Incident at a Glance

Domainhussainjatoi.com
Incident DiscoveredOctober 23, 2026
Previous EnvironmentWordPress on Hostinger VPS
Server StackUbuntu 24.04 + OpenLiteSpeed
Confirmed Unauthorized PHP Files2 files
Confirmed Filenamesmanga.php, shop.php
File Location/var/www/html/
Approximate File Size~90 KB each
File Appearance TimestampOctober 22, 2026, approximately 03:13 UTC
Suspicious Server ConfigurationModified .htaccess with unauthorized rewrite rules
Search SymptomUnauthorized query URLs and suspicious sitemap submissions
Suspicious Sitemap Reports1,001 discovered URLs reported for each PHP sitemap in Search Console
Immediate Containment ActionHostinger VPS stopped immediately
Public-Site RecoveryDomain moved to clean, decoupled static architecture
Search Recovery StatusOngoing
Initial Entry PointNOT CONFIRMED
Important Factual Boundary: The initial vector of compromise has not been established. While outdated plugins or theme vulnerabilities are common in WordPress environments, no conclusive log evidence has proven which specific plugin, credential, or service was initially abused. Speculation is excluded from this report.
INCIDENT ARCHITECTURE

Figure 1. HussainJatoi.com incident discovery and recovery sequence

1. Unexpected Website Behaviour
2. Search Console Review
3. Suspicious URLs + PHP Sitemaps
4. VPS Server Investigation
5. PHP Backdoors + .htaccess Injections
6. VPS Containment (Power Off)
7. Public Website Moved to Clean Stack
8. Malicious URL Removals Submitted
9. Search Recovery & Continuous Monitoring

Flow sequence from initial anomaly detection through host isolation, frontend decoupling, and search remediation.

SECTION 01

How I Realized Something Was Wrong

On the morning of October 23, 2026, at approximately 5:00 AM Pakistan time, I was running routine checks across my personal infrastructure. As someone whose work centers on business growth systems, organic search architecture, and website engineering, I routinely inspect HTTP headers, crawl responses, and search health.

Nothing was visibly broken on the homepage. The WordPress theme rendered, the design looked crisp, and there was no visual defacement. But when I began probing query parameters and server responses, the system behaved abnormally. Clean URLs were behaving as expected, but certain unusual request paths were triggering unexpected server executions rather than standard 404 responses.

Most website hacks today do not announce themselves with neon spray-paint or homepage graffiti. Modern compromises are commercial attacks: they operate silently, inject doorway URLs into search engines, and hide from human visitors while serving spam to search engine crawlers. My immediate priority was to verify whether search engines were seeing pages that I had never created.

SECTION 02

What Google Search Console Showed

When I logged into Google Search Console for hussainjatoi.com and opened the Sitemaps report, the anomaly was confirmed immediately.

My legitimate sitemap was present:

/sitemap.xml
Status: Success · Discovered pages: 62

Directly below it, however, were two submissions I had never created:

/manga.php?sitemap.xml
Status: Couldn't fetch · Discovered URLs: 1,001
/shop.php?sitemap.xml
Status: Couldn't fetch · Discovered URLs: 1,001

In addition, a submission for /sitemap_index.xml was shown as successful with 1,001 discovered pages, indicating that whatever script had been uploaded was actively generating XML feeds specifically structured to trigger Googlebot crawling.

Critical Distinction: Discovered URLs ≠ Indexed URLs

In Search Console terminology, "Discovered URLs" means Google saw a list of URLs inside a submitted sitemap file and queued them for crawling. It does not mean that all 1,001 URLs were indexed, approved, or displayed in search results. Claiming that 1,001 URLs were indexed would be factually incorrect. The real danger was that Google had been pointed directly at malicious endpoints on my domain.

SECTION 03

Why the URLs Were a Serious Warning Sign

The presence of manga.php and shop.php as sitemap endpoints is a textbook signature of automated SEO spam injection, commonly referred to in the web security community as search poisoning or doorway attacks.

In these campaigns, attackers do not want to destroy the site. They want to exploit the clean domain reputation and search authority of established websites. By generating hundreds or thousands of programmatic URLs containing Japanese manga titles, streaming keywords, or counterfeit goods terms, attackers attempt to rank high-intent commercial queries on Google using the victim's domain authority.

When a human visits the URL from a desktop browser, the script often displays a 404 or redirects to a harmless page. But when a search engine crawler visits with a Googlebot user-agent from a Google IP range, the script executes conditional cloaking, returning spam text, keyword-stuffed links, and affiliate redirects. This cloaking behavior is why many website owners remain unaware of compromises for months until Google issues a manual action for cloaking or hacked content.

SECTION 04

What the Hostinger VPS Investigation Found

Armed with the Search Console evidence, I immediately accessed the hosting environment. The site was previously running on a Virtual Private Server (VPS) hosted at Hostinger, configured with Ubuntu 24.04 and the OpenLiteSpeed web server.

I connected to the server via secure terminal and began inspecting the web document root at /var/www/html/. A directory listing ordered by modification time revealed the exact files responsible:

# Server document root inspection: /var/www/html/
-rw-r--r-- 1 www-data www-data 91,240 Oct 22 03:13 manga.php
-rw-r--r-- 1 www-data www-data 89,864 Oct 22 03:13 shop.php
-rw-r--r-- 1 www-data www-data 1,842 Oct 22 03:14 .htaccess

Two foreign standalone PHP scripts were sitting directly in the root directory alongside legitimate WordPress files like index.php and wp-config.php. Both had been written to disk within minutes of each other on October 22, 2026, at approximately 03:13 UTC.

SECTION 05

The PHP Backdoor Evidence

Each file was approximately 90 KB in size. In typical WordPress core installations, standalone root scripts do not reach 90 KB unless they contain bundled libraries or heavily obfuscated payloads.

Inspecting the contents of manga.php and shop.php revealed classic webshell architecture:

  • Obfuscated Execution Layers: Layers of base64 encoding, string compression, and character manipulation used to bypass basic pattern scanners.
  • User-Agent Detection Filters: Logic dedicated to examining the HTTP_USER_AGENT header to differentiate between Googlebot, Bingbot, and normal desktop browsers.
  • Dynamic Sitemap Generation: Code routines that generated valid XML response headers when requested with the query string ?sitemap.xml, producing hundreds of programmatic URL targets on the fly.
  • Command and Control Capabilities: Secondary functions capable of downloading remote code updates and modifying permissions if the server user had write access.
SECTION 06

The Modified .htaccess File

Finding malicious PHP files is only half the picture. The second critical component was how those files were being triggered.

A standard WordPress .htaccess file contains a simple rewrite rule block that directs non-file requests to index.php. During my inspection, I found foreign rewrite conditions injected above the WordPress block.

These injected rules were designed to intercept incoming requests matching specific query patterns or URL parameters and route them silently into manga.php and shop.php, preventing WordPress core from handling the request or logging it as a 404. This configuration allowed the backdoor scripts to operate independently of the WordPress application layer.

EVIDENCE BOUNDARIES

What I Can Confirm and What I Cannot Confirm

What Is Confirmed
  • ✓Two unauthorized PHP files were identified in the web root.
  • ✓The files were named manga.php and shop.php.
  • ✓The server .htaccess configuration contained unauthorized rewrite rules involving those files.
  • ✓Google Search Console showed suspicious sitemap and URL discovery activity.
  • ✓The affected Hostinger VPS was powered down to contain further activity.
  • ✓The public website was migrated to an entirely separate, clean hosting environment.
What Is Not Confirmed
  • ?I do not know who carried out the attack or their physical location.
  • ?I cannot confirm that outdated plugins were the original entry point.
  • ?I cannot confirm that every discovered URL was indexed by Google.
  • ?I cannot confirm that every suspicious filename referenced by .htaccess existed.
  • ?Moving the website did not prove that the legacy VPS had been fully cleaned.
INCIDENT TIMELINE

How the Incident Unfolded

October 22, 2026 · ~03:13 UTC
Unauthorized PHP Files Injected

Filesystem timestamps indicate manga.php and shop.php were written to /var/www/html/.

October 23, 2026 · ~5:00 AM PKT
Anomaly Detected During Audit

Routine morning systems inspection revealed unusual routing behavior on query parameters.

October 23, 2026
Search Console Review & Suspicious Sitemaps Discovered

Google Search Console inspected. Discovered unauthorized submissions for /manga.php?sitemap.xml and /shop.php?sitemap.xml showing 1,001 discovered URLs.

October 23, 2026
VPS Investigation Confirms Backdoors & Modified .htaccess

SSH access to Hostinger VPS confirmed physical existence of both backdoor scripts and modified rewrite directives.

October 23, 2026
Hostinger VPS Contained (Powered Off)

Server stopped to immediately sever all network connectivity and halt any potential automated execution.

October 23, 2026
Public Domain Repointed to Clean Stack

DNS migrated to a clean, isolated modern web stack (Lovable / TanStack SSG), eliminating server-side PHP execution.

October 23–24, 2026
Search Index Removals & Monitoring Initiated

Submitted urgent URL removal requests in Search Console, updated clean sitemaps, and configured 404/410 handling.

October 24, 2026
Initial Incident Report Published

Comprehensive evidence-led documentation released for transparency, peer review, and site recovery tracking.

SECTION 09

Why I Didn't Just Delete the PHP Files

When less experienced site owners find unauthorized files, their instinctive reaction is to click "Delete" and assume the crisis is over. In real server security, deleting surface artifacts without addressing persistence is dangerous.

Automated compromise toolkits rarely rely on a single file. They routinely install multiple persistence mechanisms:

  • Scheduled Cron Jobs: Hidden cron tasks in /etc/cron.* or user crontabs that re-download the payload every few hours if deleted.
  • Core File Injections: Malicious functions appended to legitimate core files like wp-settings.php or wp-blog-header.php.
  • Database Payloads: Serialized scripts stored inside the wp_options table under autoloaded keys.
  • Alternative Webshells: Obfuscated files buried inside deep upload subdirectories with randomized names.

Simply deleting manga.php and shop.php would have created a false sense of security while leaving potential persistence intact. Complete host isolation was the only responsible first step.

SECTION 10

Why I Stopped the VPS

Rather than attempting a live, unverified clean-up on a production server, I logged into Hostinger's control panel and shut down the Virtual Private Server completely.

Stopping the server achieved four vital containment objectives:

  1. Severed Outbound Connectivity: It immediately halted any potential command-and-control communications or automated data exfiltration.
  2. Stopped Search Spam Crawling: It prevented Googlebot or Bingbot from continuing to fetch cloaked spam pages from the backdoor scripts.
  3. Preserved Forensic Evidence: Powering off the machine preserved file timestamps, system logs, and shell history in their exact state at discovery.
  4. Prevented Lateral Movement: It eliminated the risk of the compromised environment attacking other network services or sending outbound email spam.
SECTION 11

Why I Moved the Public Website

My priority for visitors and clients was immediate, uncompromised integrity. I had already been developing a decoupled, high-performance static architecture for HussainJatoi.com built on modern static site generation (SSG) hosted on Lovable's infrastructure.

By repointing the domain's DNS away from the Hostinger VPS to the new decoupled hosting stack, I achieved immediate security separation. The new architecture does not use WordPress, does not execute PHP scripts on the web tier, has no SQL database attached to public request handlers, and contains no file-write permissions for incoming web visitors.

Within minutes of DNS propagation, visitors were served from a clean, high-performance static environment, eliminating any possibility of malware execution on client browsers.

SECTION 12

What Moving Hosting Did Not Solve

It is crucial to be honest about the limitations of migrating a website during a security incident. Moving DNS solved the immediate public presentation problem, but it did not resolve everything:

  • The Old Server Was Not Cleaned: The legacy VPS remains stopped and contained. Moving away does not prove what happened or sanitize the operating system.
  • Historical Backups May Be Contaminated: Any backups generated between October 22 and October 23 potentially contain the infected files and cannot be restored without rigorous file-by-file sanitization.
  • Search Engines Retain Memory: Moving hosting does nothing to erase search engine index records or crawl queues already registered in Google's index.
SECTION 13

The SEO Problem Did Not End When the Server Went Offline

Many webmasters believe that once the infected server is dead, the SEO recovery is complete. In reality, that is when the search remediation begins.

Googlebot retains discovered URLs in its crawl scheduling pipeline for weeks or months. When Googlebot attempts to re-crawl those 1,001 URLs on the new hosting environment:

  • If the server returns soft 404s or redirects them to the homepage, Google interprets the spam URLs as legitimate pages and retains them in index calculations.
  • If Google continues finding spam snippets in search results, user click-through rates and brand trust plummet.
  • If Google's algorithms detect substantial search spam on the domain, algorithmic quality penalties can suppress organic impressions across legitimate service and case study pages.
SECTION 14

How I Started Removing the Hacked URLs From Google

To protect brand visibility and accelerate index cleansing, I executed a structured, multi-layer search cleanup workflow:

  1. Search Console URL Removals: I used Google Search Console's Removals tool to submit urgent prefix removal requests for the malicious paths. Temporary removals mask the URLs from appearing in Google Search results within hours while permanent de-indexing takes place.
  2. Hard HTTP 404 / 410 Response Configuration: On the new hosting stack, I ensured that any request matching the unauthorized scripts or legacy spam parameters returns a clean HTTP 404 Not Found status code rather than redirecting to the homepage.
  3. Clean XML Sitemap Resubmission: I verified that /sitemap.xml contained strictly valid, canonical HTTP 200 URLs and resubmitted it to Google to guide crawl priority toward legitimate pages.
  4. Index Coverage Monitoring: I established daily tracking inside Search Console's Pages report to monitor the transition of spam URLs into the "Not indexed (404)" bucket.
PRACTICAL RECOVERY GUIDE

How to Check Whether Your Own Website Has Been Hacked

A 10-step practical verification and recovery methodology for business owners, developers, and agency teams.

Step 01

Check Your Sitemap

Visit your live XML sitemap (usually /sitemap.xml or /sitemap_index.xml). Inspect every listed URL. If you see thousands of URLs you never wrote, unusual languages (Japanese, Russian), or query strings targeting pharmaceutical, gambling, or manga terms, your sitemap generator or server rewrite rules have been hijacked.

Step 02

Check Google Search Console

Log into Search Console. Review the Sitemaps report for unexpected submissions. Review the Security Issues report for malware or deceptive content alerts. Check the Pages report to see if discovered URLs suddenly spiked from tens of pages to thousands of unknown paths.

Step 03

Contact Your Hosting Provider

Open a high-priority ticket with your hosting provider. Provide exact timestamps, filenames, and paths. Below is the exact format I recommend using to avoid generic automated replies:

Example message to hosting support

Subject: Urgent: Unauthorized files and sitemap injection on [YOUR DOMAIN]

Hello Support,

I have identified an active security incident on my account for domain [YOUR DOMAIN].

Investigation findings:

- Unauthorized PHP files discovered: [FILENAMES, e.g. manga.php, shop.php] in [/PATH, e.g. /var/www/html/]

- File timestamps: [TIMESTAMPS, e.g. Oct 22, 2026 ~03:13 UTC]

- Modified configuration: [.htaccess / web server rewrite rules modified]

- Search symptom: [Suspicious sitemaps injected into Search Console]

Actions requested:

1. Please isolate or temporarily power off this instance to prevent outbound abuse.

2. Please preserve raw server access logs and authentication logs for forensic review.

3. Confirm whether any automated snapshots exist from immediately prior to [COMPROMISE DATE].

Thank you,

[YOUR NAME]

Step 04

Back Up and Preserve Evidence Before Cleanup

Never start deleting files blindly before creating an isolated snapshot or tarball of the compromised state. You need the original modified timestamps, access logs, and infected files to analyze the timeline and confirm how the intrusion occurred.

Step 05

Remove Verified Malicious Content From the Hosting Environment

Once contained, remove verified malicious files, restore pristine core WordPress files from official WordPress.org releases, reset .htaccess to the default WordPress rules, and inspect the database for injected admin users or malicious options.

Step 06

Use Google Search Console's Removals Tool

Open Search Console > Removals > New Request. Submit removal requests for specific URL prefixes containing spam patterns. While temporary removals last approximately 6 months, they prevent immediate traffic destruction while Google re-crawls the 404 responses.

Step 07

Submit a Clean Sitemap

Ensure your XML sitemap generator contains exclusively legitimate, canonical HTTP 200 pages. Delete any unapproved sitemap submissions inside Search Console and resubmit your primary /sitemap.xml.

Step 08

Audit Internal Links and URLs

Crawl your website using a crawler like Screaming Frog or a custom script. Confirm that zero internal links point to infected endpoints, that your menu navigation is intact, and that no external script tags have been injected into theme templates.

Step 09

Secure WordPress and Your Hosting

Rotate all database passwords, SFTP/SSH keys, and hosting account credentials. Regenerate WordPress authentication salts in wp-config.php. Enforce mandatory multi-factor authentication (MFA) on all administrative accounts.

Step 10

Monitor the Recovery

Check Search Console indexing trends weekly. Monitor server access logs for repeated probing of the deleted filenames. Search for site:yourdomain.com in Google to confirm that spam results have dropped from search listings.

SECTION 16

Security and Recovery Lessons: Technical Warnings

Incidents like this highlight critical technical distinctions that are frequently misunderstood in online tutorials and generic security advice:

A query parameter or PHP file is not automatically malicious in isolation.

WordPress and legitimate plugins routinely use query parameters and PHP scripts. The evidence comes from the combined context: unauthorized creation timestamps, packing/obfuscation, user-agent filtering, and unapproved sitemap registration.

eval() or str_rot13() alone does not prove malware.

Certain legitimate plugins use dynamic evaluation. Security claims require demonstrating that the file executes unauthorized tasks outside the application's normal operational scope.

Moving hosting does not clean the old server.

Repointing DNS is a containment measure that protects public users. The old server remains in an untrusted, compromised state until audited or decommissioned.

Deleting a sitemap submission does not automatically remove URLs from Google.

Once Googlebot discovers a URL, removing the sitemap merely stops Google from checking that sitemap file. The discovered URLs remain in Google's crawl queue until crawled and confirmed as 404/410.

robots.txt is not a security system.

Disallowing hacked URLs in robots.txt blocks Googlebot from crawling them, which prevents Google from seeing the 404 status code required to permanently de-index them.

Backups can contain malware if created after the intrusion window.

Restoring a backup taken 24 hours after an intrusion simply reinstalls the attacker's backdoors. Always verify backup creation dates against verified filesystem timestamps.

SECTION 17

Where My Website Stands Now

As of October 24, 2026, HussainJatoi.com is operating in an entirely secure, decoupled production environment:

Production Site Integrity

Running on static SSG with zero server-side PHP execution, zero database exposure, and sub-second load times.

VPS Isolation

The legacy Hostinger VPS has been stopped and powered down to guarantee zero outbound connectivity.

Search Index Remediation

Search Console temporary removals active; clean sitemap resubmitted; 404 responses verified for all legacy spam URLs.

Continuous Monitoring

Daily tracking of crawl anomalies, index coverage status, and organic search appearance.

PRIMARY EVIDENCE

Incident Evidence Library

Documented artifacts captured during the investigation of HussainJatoi.com.

Google Search Console · Sitemaps ReportCaptured Oct 23, 2026
https://hussainjatoi.com/sitemap.xmlSuccess (62 URLs)
https://hussainjatoi.com/manga.php?sitemap.xmlCouldn't fetch (1,001 URLs)
https://hussainjatoi.com/shop.php?sitemap.xmlCouldn't fetch (1,001 URLs)
Evidence 01: Google Search Console Sitemaps report showing unauthorized sitemap entries targeting manga.php and shop.php, reporting 1,001 discovered URLs.
Hostinger VPS Ubuntu 24.04 · File AuditPath: /var/www/html/
-rw-r--r-- 1 www-data www-data 91240 Oct 22 03:13 manga.php
-rw-r--r-- 1 www-data www-data 89864 Oct 22 03:13 shop.php
-rw-r--r-- 1 www-data www-data 1842 Oct 22 03:14 .htaccess
-rw-r--r-- 1 www-data www-data 405 Jan 12 2024 index.php
Evidence 02: Filesystem directory listing of /var/www/html/ identifying standalone manga.php and shop.php files created October 22 at 03:13 UTC.
Configuration Inspection · /var/www/html/.htaccessModified Oct 22, 2026
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(manga|shop)\.php$ - [L]
RewriteCond %{QUERY_STRING} ^sitemap.*$ [NC]
RewriteRule ^.*$ manga.php [L]
</IfModule>
Evidence 03: Modified .htaccess rewrite directives routing specific query parameter conditions directly into backdoor scripts.
Google Search Console · URL Removals DashboardProcessed Oct 23–24, 2026
Prefix removal: https://hussainjatoi.com/manga.phpTemporarily removed
Prefix removal: https://hussainjatoi.com/shop.phpTemporarily removed
Evidence 04: Google Search Console temporary URL prefix removal submissions used to urgently block malicious search appearances during search recovery.
Active Clean Sitemap · Google Search ConsoleVerified Production URL
https://hussainjatoi.com/sitemap.xmlStatus: Success (58 verified canonical pages)
Evidence 05: New production sitemap submission showing clean status with exclusively verified canonical URLs following architecture migration.
PRESS & RESEARCH

For Journalists & Researchers

Incident: HussainJatoi.com WordPress/VPS compromise
Discovered: October 23, 2026
Reported by: Hussain Jatoi
Evidence available: Search Console captures, server investigation findings, suspicious PHP file paths, .htaccess findings and recovery records
Status: Search recovery ongoing as of October 24, 2026
Suggested attribution: Hussain Jatoi, Business Growth Systems Architect
Suggested source title: My WordPress Website Was Hacked: PHP Backdoors, SEO Spam and the Recovery Timeline
Canonical source: https://hussainjatoi.com/websites/case-studies/wordpress-hack-php-backdoor-seo-spam-recovery/

Need evidence for a story or research paper?

I can provide additional redacted screenshots, timestamp verification records, and technical incident documentation where appropriate. Contact me through my official advisory and enquiry channel.

SECTION 20

References & Technical Sources

Authoritative first-party technical documentation referenced throughout this incident recovery:

MAINTENANCE & UPDATES

Incident Update Log

October 24, 2026

Initial incident report published. Google Search Console prefix removals active. Search recovery and crawl log monitoring ongoing.

October 23, 2026

Incident discovered. VPS investigation completed. Hostinger VPS powered down for containment. Public site migrated to new decoupled static hosting environment.

Hussain Jatoi

Hussain Jatoi

Business Growth Systems Architect

Hussain Jatoi is a Business Growth Systems Architect working across website systems, search visibility, conversion, automation and business operations. He documents practical lessons from building, auditing and managing connected business systems.