# Wordpress Full Compromise

> Use when verified WordPress findings may combine into an authorized path to administrative or server control.

- Skill: `uphiago/wordpress-full-compromise` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add uphiago/wordpress-full-compromise`
- Raw SKILL.md: https://api.skillmd.com/api/skills/uphiago/wordpress-full-compromise/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: uphiago (https://skillmd.com/u/uphiago)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/uphiago/wordpress-full-compromise

---


# WordPress Compromise Path Analysis

Use this skill to determine whether verified WordPress primitives actually
compose into administrative control or benign code-execution proof. It is a
chain gate, not a checklist for forcing escalation after a prerequisite fails.

## When to Use

- A plugin vulnerability has exact version and route evidence.
- An approved identity may have an unexpected WordPress capability.
- An upload or configuration write could reach executable handling.
- CORS, XML-RPC, staging, or source exposure may supply a missing prerequisite.

## Prerequisites

- Explicit authorization for registration, authentication, upload, write, and
  execution testing.
- An approved synthetic account and disposable content.
- Exact WordPress, plugin, theme, and hosting behavior.
- A benign marker for any execution test.
- Cleanup and stop conditions.

## How to Run

Build a prerequisite table:

```text
Step                         State       Required evidence
Component vulnerability      observed    exact version and affected operation
Authorized identity          confirmed   approved account and current role
Write or upload capability   unverified  synthetic artifact accepted
Executable handling          unverified  benign marker executed
Administrative control       not tested  approved admin-only action
Cleanup                      planned     artifact and account removal
```

Do not proceed past an unverified prerequisite.

## Procedure

### 1. Confirm the Component

Use `hunt-wordpress` and `wordpress-plugin-hunt` to establish:

- component identity from more than one signal;
- exact version or commit;
- vulnerable route or handler;
- authentication and role prerequisite;
- affected configuration and file type.

A public readme or stale asset is not sufficient by itself.

### 2. Confirm Identity and Capability

Use only approved test identities. Record the current role and the exact
capability checked by the operation. Subscriber, customer, author, editor, and
administrator roles are not interchangeable.

Do not bridge missing authorization with password spraying, credential
stuffing, or unrelated leaked credentials.

### 3. Validate State Change With Synthetic Data

Use a uniquely named synthetic post, object, or inert file. Record:

- request and identity;
- response and resulting object ID;
- location and content;
- expected authorization policy;
- cleanup result.

If the object cannot be removed safely, stop before creation.

### 4. Separate Upload From Execution

An accepted upload proves only an upload boundary. Establish executable
handling separately:

- server maps the stored extension to an interpreter;
- MIME and extension validation permit the tested type;
- storage path is web reachable;
- plugin processing does not rename or sanitize the file;
- a benign marker can execute in the approved environment.

Never deploy a command shell as a generic proof.

### 5. Evaluate Administrative Impact

Administrative control requires an approved admin-only effect, such as reading
a synthetic private setting or changing a disposable configuration value and
restoring it. User enumeration, REST metadata, or an available login page does
not establish account takeover.

### 6. Assemble the Path

Use `cross-attack-chains` to connect only confirmed transitions. Use
`wordpress-cors-xmlrpc-rce-chain` when CORS and XML-RPC are actual
prerequisites, not merely additional findings on the same installation.

## Pitfalls

- Open registration normally creates a low-privilege role.
- XML-RPC method presence is not authorization to call that method.
- Enabled PHP process functions do not create an upload primitive.
- Plugin version evidence can be stale or backported.
- A staging site may have a separate database and no production trust path.
- Failure of a prerequisite is evidence that the proposed chain stops there.

## Verification

- Component identity, version, route, and prerequisites are confirmed.
- The approved identity has the exact required capability.
- State changes use synthetic resources and are reversed.
- Upload and execution are demonstrated as separate steps.
- Administrative impact uses an approved disposable action.
- Every missing step remains inferred or not tested.

