PHP2Shell ohne PHP-Entwickler beheben: Zugänge wiederherstellen, Backups testen und die Laufzeit bestimmen. Danach zwischen gepatchtem PHP, Migration und statischem Archiv entscheiden.
01
Zugriff und Verantwortung zurückgewinnen
Registrar, Hosting, Server/Panel, Quellcode, Datenbankzugang und Rechnungsverantwortliche erfassen. Wartung und Wiederherstellung einer Person zuordnen. Anwendung und genaue Version anhand lokaler Dateien bestimmen. Fehlende Konten oder Quellen vor einem PHP-Wechsel wiederherstellen.
02
Beweise sichern und Wiederherstellung proben
Bei Verdacht Zugriffs-, Fehler- und Anwendungslogs vor der Bereinigung sichern. Code, Datenbank, Uploads, Konfiguration und Zeitpläne als datierten Satz verschlüsselt und zugriffsbeschränkt speichern. Kodierung notieren. Privat wiederherstellen und Inhalte sowie Anmeldung prüfen; eine Erfolgsmeldung reicht nicht.
Ein Patch schließt einen Einbruch nicht aus ↗03
PHP-Generationen einzeln prüfen
PHP 5.3/5.6 kann entfernte APIs nutzen. PHP 7 entfernt ext/mysql; PHP 8 entfernt each()/create_function() und verschärft Typen/Signaturen; PHP 8.2 meldet dynamische Eigenschaften als veraltet. Jede übersprungene Migrationsanleitung lesen. Historische Mindestwerte sind keine Betriebsempfehlung und kein Test eigener Anpassungen.
04
Reparatur, Migration oder Archiv wählen
Ein belegter Herstellerpatch kann Zeit für die Migration schaffen; beide CVEs und laufenden Support prüfen. Nicht unterstütztes PHP braucht ein unterstütztes Ziel, keine dauerhafte WAF-Ausnahme. Gepflegte Anwendungen reparieren, verlassene Abhängigkeiten ersetzen. Für reine Inhalte statisches Archiv erwägen und dynamische Anmeldung, Suche und Formulare ersetzen.
05
Private realistische Testumgebung bauen
Web-PHP, Erweiterungen, INI, Datenbank und Routing dem Ziel anpassen. Bereinigte Kopien abschirmen; echte E-Mails, Zahlungen und Produktions-Webhooks verhindern. Framework, Plugins und Eigenentwicklungen gemeinsam testen. Produktspezifische Abnahme und Logs dokumentieren; Betreiber können diese Nachweise vom Hoster verlangen.
06
Rollback mit Datenänderungen planen
Passende Dateien und Datenbank sichern. PHP zurückzustellen macht keine Schemaänderung rückgängig. Schreibpause oder getestete Synchronisierung vereinbaren, Fehlerkriterien, Verantwortliche und Zeitlimit festlegen. Neue Bestellungen nach dem Snapshot berücksichtigen und Wiederherstellung samt Abgleich proben.
07
Tatsächliche Dienste nach Umstellung prüfen
Web-PHP, alle FPM-Pools, Queues, Zeitpläne, Container und Replikate prüfen; alte Worker ersetzen. Beide CVEs durch Upstream-Versionen oder Herstellerhinweise belegen. Unterseiten, Login, Uploads und Geschäftsabläufe testen, Logs und Rollback-Fenster behalten. CLI und Startseite reichen nicht.
PHP2Shell-Patches prüfen ↗Funktionstests nach dem PHP2Shell-Fix
Anmeldung, Sitzungen und Rollen
Anmeldung, Abmeldung und Passwortwechsel mit Testkonto prüfen; Sitzungen, Adminrechte und Rollen nach neuer Browsersitzung testen.
Unterseiten und HTTP-Status
Bestehende Unterseite, Formular und fehlende Seite aufrufen; Parameter, Weiterleitungen und HTTP-Status vergleichen.
Datenbankzugriffe und Transaktionen
Repräsentative Daten in der Testdatenbank lesen/schreiben; Treiber, striktes SQL, Transaktionen und Rücklesen prüfen.
Eigene Vorlagen und Escaping
Artikel-, Listen-, Konto- und Fehlervorlagen rendern; eigene Tags, Escaping, Cache und Warnungen kontrollieren.
Uploads und Vorschaubilder
Harmloses Testbild hochladen, Vorschaubild abrufen und löschen; Rechte, Pfade und URLs prüfen, ausführbare Uploads weiter sperren.
Alte und neue Queue-Jobs
Neue und vorhandene Jobs mit neuem Worker verarbeiten; Serialisierung, Wiederholung und doppelte Aktionen prüfen.
Zeitpläne und PHP-Pfade
Tatsächliche PHP-Datei, INI und Benutzer des Schedulers prüfen; harmlose Aufgabe im Test ausführen und nach Umstellung vergleichen.
Kalte/warme Caches und OPcache
Caches nach Dokumentation neu bauen; kalte/warme Anfragen, alte Serialisierungen und OPcache-Prozesse prüfen.
Testmail-Zustellung
Testmails an einen Mail-Sink senden; Vorlagen, Warteschlange und Transport ohne echte Kunden prüfen.
Bestellungen, Steuer und Bestand
Sandbox-Bestellung mit Versand, Steuer, Rabatt und Erstattung testen; Summen, Bestand und Historie vergleichen.
Sandbox-Zahlungen und Rückrufe
Erfolg, Fehler und asynchrone Zahlungsnachricht im Sandbox-Modus testen; Signatur und Idempotenz gegen Doppelbuchungen prüfen.
Suchindex und Filter
Testindex erneuern und bekannte Suchanfragen, Filter und Rechte vergleichen; PHP-Erfolg bestätigt keinen Suchdienst.
Websites, Domains und Sprachen
Jede Website, Domain und Sprache mit passender Rolle prüfen; Cookies, URL-Zuordnung und Konfiguration vergleichen.
GBK/UTF-8 und Datenprüfung
Sonderzeichen durch Formular, Datenbank und Export prüfen; GBK/UTF-8 bis zur separat getesteten Konvertierung bewahren.
API-Verträge und Rückrufe
API mit und ohne Anmeldung prüfen; JSON-Typen, Fehler, HTTP-Status und Rückrufe vergleichen.
Web/CLI-Erweiterungen und ABI
Erweiterungen in Web und CLI mit passender ABI/NTS/ZTS prüfen; Treiber und Dienste tatsächlich testen.
PHP2Shell-Patches prüfen
Anwendungskompatibilität, Wartungsstatus und PHP-Sicherheit getrennt prüfen. Einen unterstützten PHP-Zweig mit beiden CVE-Korrekturen wählen und alle Web-Worker, geplanten Aufgaben und Replikate kontrollieren. Ein Framework- oder Plugin-Update ersetzt PHP nicht.
| PHP-Zweig | Upstream-Versionen unter | Erste korrigierte Version | Ende der Sicherheitsupdates |
|---|---|---|---|
| PHP 8.5 | < 8.5.12 | ✓ 8.5.12 | 31. Dez. 2029 |
| PHP 8.4 | < 8.4.27 | ✓ 8.4.27 | 31. Dez. 2028 |
| PHP 8.3 | < 8.3.36 | ✓ 8.3.36 | 31. Dez. 2027 |
| PHP 8.2 | < 8.2.35 | ✓ 8.2.35 | 31. Dez. 2026 |
Für diese Zweige gibt es keine reguläre PHP-Veröffentlichung. Minimale Quellcode-Backports existieren für 7.4, 8.0 und 8.1. Herstellerunterstützung separat prüfen. Anleitung lesen ↗