WordPress Pentest Checklist: What TigerStrike Tests in 2026
WordPress sits behind more revenue than any single CMS deserves to: marketing sites, e-commerce storefronts, member portals, blogs on acquired-company domains, campaign microsites nobody remembers. Any WordPress core RCE — CVE-2026-119977 is this month's example — becomes a volume event within hours. This is the pentest checklist TigerStrike runs against every WordPress asset we find — ten focus areas, each with the specific tests, the usual failures, and what we report back.
The ten focus areas
- 1. Core & plugin version fingerprinting
- 2. REST API exposure
- 3. XML-RPC endpoint
- 4. admin-ajax.php abuse
- 5. Authentication, sessions, user enumeration
- 6. File-upload paths
- 7. Content security and output handling
- 8. Wp-config and secret exposure
- 9. Infrastructure around the site (DB, PHP, hosting)
- 10. Supply chain of the admin surface
1. Core and plugin version fingerprinting
The first question is always: what is this site actually running, and how old is it?
- Fingerprint WordPress core version from
<meta name="generator">,/readme.html,/wp-includes/js/wp-embed.min.js?ver=query strings, and feed metadata. Many sites strip the generator meta but forget the asset version strings. - Enumerate plugins and themes from
/wp-content/plugins/and/wp-content/themes/403 vs 404 responses, plus asset version query strings and plugin-specificreadme.txtfiles. - Match each identified core, plugin, and theme version against the WPScan vulnerability database and the CISA KEV catalog.
- Failure pattern we see weekly: core is patched but a popular plugin is two years out of date and has a public exploit.
2. REST API exposure
- Probe
/wp-json/and/wp-json/wp/v2/users— the latter returns the enumerated author list on sites that have not disabled it. - Check
/wp-json/wp/v2/comments,/pages,/mediafor unauthenticated reads of sensitive content. - For each plugin that ships REST endpoints (
/wp-json/<plugin>/), probe with auth and without — plugins frequently register endpoints that skip the core permission check. - Test Application Passwords (
/wp-json/wp/v2/users/me/application-passwords) for weak creation/listing enforcement. - Failure pattern: a form plugin registers an unauthenticated
/submitendpoint that does not validate request origin and gives form-data leakage or spam-abuse paths.
3. XML-RPC endpoint
- Probe
/xmlrpc.php. If it responds, test for thesystem.multicallbrute-force amplification path. - Test
wp.getUsersBlogsandmetaWeblog.getPostfor credential-oracle behaviour. - If the site does not legitimately use XML-RPC (most do not, in 2026), recommend disabling the endpoint entirely via
wp-config.php,.htaccess, or at the WAF. - Failure pattern: XML-RPC is live, pingbacks are enabled, and the site is being used as an SSRF reflector.
4. admin-ajax.php abuse
- Enumerate the registered AJAX actions by crawling JavaScript bundles and plugin source. Every
wp_ajax_<action>andwp_ajax_nopriv_<action>is a candidate endpoint. - For each
noprivaction, test for parameter-tampering, SQL injection, path traversal, and SSRF. These are the top-of-funnel RCE sources on WordPress in 2026 — including CVE-2026-119977-class flaws. - For authenticated-only actions, confirm the nonce is actually validated server-side (many plugins check the nonce only in the UI layer).
- Failure pattern: a plugin registers
wp_ajax_nopriv_import_settingsthat accepts a URL and fetches it server-side with no allow-list — instant SSRF.
5. Authentication, sessions, user enumeration
- Test user enumeration via
/?author=1redirect,/wp-json/wp/v2/users, and/wp-sitemap-users-1.xml. - Rate-limit test: POST
/wp-login.phpwith increasing frequency; confirm the site enforces lockouts, CAPTCHA, or MFA. - Session: inspect
wordpress_logged_in_*cookie attributes (Secure,HttpOnly,SameSite) and lifetime. Test session invalidation on password change. - MFA coverage: test whether MFA is enforced for all admin and editor roles, not just the account that happens to have it set up.
- Failure pattern: user enumeration is open, no rate limit on login, no MFA — credential-stuffing lands weekly.
6. File-upload paths
- Test the media library upload for extension-filter bypass (
.phtml,.phar, double-extension, polyglot). - Test plugin upload endpoints (form uploaders, avatar pickers, document-management plugins). Many ship their own uploader with weaker filters than core.
- Verify that
wp-content/uploads/has PHP execution denied at the webserver level (.htaccessor Nginx location rule). Test with a known-good payload. - Test SVG upload for stored-XSS via embedded JavaScript if SVGs are rendered inline anywhere.
- Failure pattern: PHP execution is allowed in
uploads/, a plugin's "quote request" form accepts.phtml, and you have a webshell.
7. Content security and output handling
- Test for stored XSS in post content, comment content (if enabled), custom-field inputs, and plugin settings pages.
- Reflected XSS: parameter-sweep
?s=,?p=,?page_id=, and plugin-registered GET params. - Check security headers:
Content-Security-Policy,Strict-Transport-Security,X-Content-Type-Options,Referrer-Policy,Permissions-Policy. - Test for open redirects in
wp-login.php?redirect_to=and plugin-registered redirect params. - Failure pattern: a page-builder plugin stores HTML without sanitisation; low-privilege editor role can inject JavaScript that fires when an admin visits the page.
8. wp-config and secret exposure
- Probe for
/wp-config.php.bak,.swp,.save,.old,.orig, and other editor-leftover variants. - Check
/debug.log,/error_log,/.git/,/.env,/phpinfo.php, and/info.php. - Test for backup archives in web-root (
backup.zip,site.tar.gz,wp-backup.sql). - Review public-facing
readme.html,license.txt, and pluginreadme.txtfor information disclosure. - Failure pattern: migration tool leaves
wpallimport.login web-root with DB credentials in plain text.
9. Infrastructure around the site
- PHP version and
phpinfoexposure. WordPress-era PHP RCE chains like PHP2Shell × Fragnesia apply to WordPress hosts too. - Database: is the MySQL/MariaDB port externally reachable? Is the WordPress DB user limited to the
wp_schema only? - Webserver: directory-listing enabled anywhere? HSTS enforced? OCSP stapling on?
- CDN / WAF posture: can the origin be reached directly bypassing Cloudflare / AWS WAF? Is admin area restricted by IP?
- Email: is SMTP open? SPF / DKIM / DMARC configured? A compromised WordPress site is an ideal phishing launchpad.
10. Supply chain of the admin surface
The most underappreciated angle. Even a fully patched WordPress is compromised if an admin's laptop is compromised or an integration token leaks.
- Admin access: via IP allow-list? MFA enforced? From corporate device-posture, not any laptop?
- Application Passwords and REST API tokens — rotation cadence, ownership, logging.
- Backup provider (Jetpack, BlogVault, UpdraftPlus to S3/GCS): is the backup bucket private? Is encryption at rest enabled?
- Hosting provider admin panel: MFA enforced? Audit log reviewed? SFTP credentials rotated?
- Git / CI integrations that push code or assets to the WordPress host. Each is a credential surface.
- Failure pattern: compromised developer laptop → plugin repo write access → next release contains a backdoor → every site auto-updates to a pre-pwned version.
What TigerStrike delivers
The VAPT AI Engine ships a WordPress detection + exploitation pack that runs against every WordPress site discovered by ASM. Each run produces, per site:
- A core + plugin version inventory with CVE / KEV match.
- Pass / fail per focus area above, with reproducible payloads for the failures.
- Attack-path linkage — which failures chain into which business-critical outcomes.
- Deduplicated, Jira-ready findings with suggested fixes and one-click re-test.
- Signed evidence artefacts retained for your SOC 2 / ISO 27001 / PCI DSS audit cycle.
See continuous VAPT for the surrounding program — scheduled runs against your live WordPress estate rather than a once-a-year audit.
Related reading
- WordPress RCE CVE-2026-119977 added to CISA KEV — 13k attacks in 24 hours
- PHP2Shell: PHP RCE chain — Nov 2026 update (WordPress hosts are directly affected)
- Continuous AI VAPT vs annual pentest
Run the WordPress checklist on your live estate
14-day trial. TigerGate ASM enumerates every WordPress site you own — including the microsites nobody remembers — and the VAPT AI Engine runs the ten-area checklist on each in one scheduled sweep.