toolkit

Injected-content scan · Playbook

Site compromise & injected content — high-level pointers (local fallback)

growlithe tells you that injected content exists on a page. The detailed, current incident- response runbook — rotating credentials, auditing plugins/themes for the entry point, verifying a cleanup actually holds — lives in the team wiki (set OUTLINE + OUTLINE_API_URL and the report links them directly). This file is the minimal high-level fallback for when the wiki isn’t configured: direction only, deliberately not step-by-step, so there’s no detailed content to drift out of sync with the wiki.

  • A match is a compromise, not a copy edit — removing the visible text alone does nothing; the injector re-adds it until the entry point is closed.
  • Find the entry point first — a compromised plugin, a stale/shared admin credential, or a writable upload directory are the usual routes; look there before cleaning content.
  • Rotate credentials — every admin/FTP/hosting password with access to the site, not just the one that looks suspicious.
  • Audit installed plugins and themes — for anything unrecognised, unlicensed, or recently added without a corresponding change request.
  • Phishing / bank-impersonation content is a liability event, not a support ticket — escalate immediately rather than queuing it as routine work.
  • Verify the cleanup holds — re-scan after a fix; if the same pattern reappears within days, the entry point is still open.
  • URL-cluster injections (a sitemap suddenly claiming thousands of pages) usually mean a compromised endpoint is auto-generating content — treat it the same as a visible-page injection.

Full playbook → the team wiki’s site compromise & injected-content incident-response standards.