Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Discover installed WordPress plugins through REST API namespace probing, readme.txt version detection, and HTML/JS source analysis. Cross-reference discovered versions against known CVEs for exploitation. WordPress plugin vulnerabilities are one of the most reliable paths to RCE — confirmed CVEs include Elementor, Slider Revolution, ElementsKit, Gravity Forms, Jetpack, WooCommerce, and LiteSpeed Cache.
When to Use
WordPress confirmed on target (via wp-mass-recon).
Running deep-invade Phase 3.
You need an exploitation vector beyond CORS/XMLRPC.
Target has a plugin-heavy WordPress site (e-commerce, page builder, forms).
Prerequisites
terminal tool with curl, python3.
WordPress target confirmed (/wp-json/ or /wp-login.php accessible).
For CVE exploitation: knowledge of specific CVE PoCs (reference security-arsenal skill).
TARGET="$1"# Slider Revolution CVE-2024-2534 (RCE via file upload)# Requires: revslider < 6.6.20# Attack: POST to /wp-json/revslider/v1/upload with ZIP containing PHP# See: security-arsenal skill for full PoC# ElementsKit CVE-2023-6853 (RCE via file upload, unauthenticated)# Requires: elementskit < 2.9.4# Attack: POST to /wp-json/elementskit/v1/upload with specially crafted file# See: security-arsenal skill for full PoC# Gravity Forms CVE-2024-6115 (auth bypass)# Requires: gravityforms < 2.8.2# Attack: Unauthenticated access to form entries via REST API
curl -sk "https://$TARGET/wp-json/gf/v2/forms" 2>/dev/null | python3 -m json.tool | head -20
# LiteSpeed Cache CVE-2024-50550 (privilege escalation)# Requires: litespeed < 6.5.0# Attack: Crawler token manipulation to gain admin access
curl -sk "https://$TARGET/wp-json/litespeed/v1/token" 2>/dev/null
Pitfalls
REST namespace 200 ≠ plugin present. Some themes and security plugins return 200 for all /wp-json/ paths. Verify response content has actual plugin data (JSON with id, name, or slug fields).
readme.txt blocked on many hosts. WP Engine, Hostinger, and Cloudflare often block readme.txt at the CDN level. Fall back to REST namespaces or HTML source grep.
Custom plugin slugs. Premium plugins may have custom directory names. gravityforms may be gravityforms-clientsite. Check HTML source for actual slugs via wp-content/plugins/ paths.
SliderRev v1 endpoints 404 on 6.x. Slider Revolution renamed its REST endpoints — toolking.com confirmed that ALL v1 paths return 404 while the plugin is still active. Probe non-v1 paths too: /wp-json/sliderrevolution/sliders/.
Plugin version comparison needs semantic versioning. Bash string comparison (<) fails on 10.x vs 2.x. Use sort -V or python for complex comparisons.
Elementor 500 leak = info disclosure./wp-json/elementor/v1/favorites returning HTTP 500 with stack trace (Wave8, toolking.com) reveals server paths and internal structure even without plugin exploitation.
Hosting Provider Pattern (P-23 — critical for plugin detection)
Different hosting providers have distinct vulnerability profiles for plugin detection:
Host
REST Users
readme.txt
CORS
XMLRPC
Best Plugin Detection Method
GoDaddy
Usually exposed
Usually accessible
Often reflects
Usually open
readme.txt (most accessible)
Cloudflare + WP Engine
Usually blocked
Blocked at CDN
May work
Blocked
HTML source grep + REST namespace brute force
Hostinger
Exposed
Accessible
Often reflects
Open
readme.txt + REST namespace
WP Engine (direct)
Blocked (401)
Blocked
Mixed
Blocked
HTML source only
Bluehost
Exposed
Accessible
Often reflects
Open
All methods work
SiteGround
Mixed
Often accessible
Mixed
Mixed
REST namespace + readme.txt
Verification
Every detected plugin MUST be confirmed via at least 2 detection methods (REST + readme, or REST + HTML source).
Every CVE MUST be matched against the exact version number, not just plugin presence.
CVE exploitation MUST be verified with a PoC that demonstrates impact (not just version detection).
Plugin vulnerabilities that require authentication must have a credential acquisition path (CORS, brute force, open reg) documented.
"wpforms/v1/forms"
"mailchimp"
"mailchimp-for-woocommerce/v1"
"automatewoo"
"automatewoo/v1"
"give"
"give-api/v1/forms"
"buddypress"
"buddypress/v1/members"
"learndash"
"ldlms/v1/courses"
"restrictcontent"
"rcp/v1/memberships"
"eventscalendar"
"tribe/events/v1/events"
"woosubscriptions"
"wc/v1/subscriptions"
"woomemberships"
"wc/v1/memberships"
"wpml"
"wpml/v1/languages"
"polylang"
"pll/v1/languages"
"translatepress"
"trp/v1/languages"
"nextgen"
"nextgen-gallery/v1"
"envira"
"envira-gallery/v1"
"essentialgrid"
"essential-grid/v1/grids"
"thegrid"
"the-grid/v1/grids"
"masterslider"
"masterslider/v1/sliders"
"smartslider3"
"smart-slider-3/v1/sliders"
"metaslider"
"ml-slider/v1/slideshows"
"duplicator"
"duplicator/v1"
"updraft"
"updraftplus/v1"
"backupbuddy"
"backupbuddy/v1"
"aioseo"
"aioseo/v1/settings"
"seopress"
"seopress/v1/settings"
echo
"[*] Probing ${#PLUGIN_NAMESPACES[@]} plugin namespaces on $TARGET..."
echo
""
for
in
"${!PLUGIN_NAMESPACES[@]}"
do
"${PLUGIN_NAMESPACES[$plugin]}"
"%{http_code}"
"https://$TARGET/wp-json/$ns"
if
"$resp"
"200"
then
wc
# Check if response is real plugin data, not SPA catch-all