PHP2Shell-Prüfung per API
Binden Sie den PHP2Shell-Check in eigene Skripte, Monitoring oder Kundenportale ein. Eine Anfrage mit der Webadresse, eine JSON-Antwort mit PHP-Version, erkannter Software und Bewertung.
- Einzelprüfung mit sofortiger Antwort, ideal für Formulare und Monitoring.
- Sammelprüfung mit bis zu 10 Websites (kostenlos), läuft im Hintergrund.
- Gleiche Ergebnisse wie auf der Website, inklusive Bericht-Link zum Weitergeben.
- Alle Prüfungen gespeichert in Ihrem Konto unter „Meine Prüfungen“.
Kostenlos mit Google-Konto. Die Anmeldung legt Ihr Konto automatisch an.
Schon registriert? Mit demselben Button melden Sie sich an.
Schnellstart
Jede Anfrage braucht Ihren API-Schlüssel im Header Authorization: Bearer ….
curl -X POST https://php2shellcve.de/api/v1/checks \
-H "Authorization: Bearer p2s_IhrSchluessel" \
-d url=www.example.com
Mit KI-Assistent einbinden
Kopieren Sie diesen Prompt in Claude Code, Cursor oder einen anderen KI-Assistenten in Ihrem Projekt. Der Assistent baut die Anbindung passend zu Ihrem Code.
Binde in diesem Projekt die PHP2Shell-API von php2shellcve.de ein. Sie prüft, ob eine Website von den PHP-Lücken CVE-2026-109618 und CVE-2026-109619 betroffen ist.
API:
- Basis-URL: https://php2shellcve.de/api/v1
- Authentifizierung: Header "Authorization: Bearer <API-Schlüssel>". Lies den Schlüssel aus der Umgebungsvariable PHP2SHELL_API_KEY, nie fest im Code.
- POST /checks mit Parameter url: prüft eine Website sofort (Antwort 201, JSON).
- POST /batches mit JSON {"title": "...", "urls": ["..."]}: startet eine Sammelprüfung (202). Danach GET /batches/:id abfragen, bis status "done" ist (alle 5 Sekunden).
- Wichtige Felder der Antwort: status (vulnerable, unknown, no_php, patched, error), verdict, php_version, fixed_version, report_url.
- Fehler: 401 ungültiger Schlüssel, 404 unbekannte ID, 429 mit "error": "quota_exceeded" bei überschrittenem Limit.
- Vollständige Doku: https://php2shellcve.de/api
Aufgabe:
1. Sieh dir an, welche Sprache und welche Muster das Projekt nutzt, und baue einen kleinen Client im selben Stil.
2. Behandle Timeouts (Einzelprüfung bis 30 Sekunden) und die Fehlercodes oben sauber.
3. Füge einen Test oder ein kurzes Beispiel hinzu, das die API nicht wirklich aufruft.
4. Frag nach, wenn unklar ist, wo die Prüfung im Projekt verwendet werden soll.
Endpunkte
| Methode und Pfad | Zweck |
|---|---|
POST /api/v1/checks | Eine Website prüfen. Parameter url. Antwortet nach wenigen Sekunden mit dem Ergebnis (201). |
GET /api/v1/checks/:id | Gespeicherte Einzelprüfung abrufen. |
POST /api/v1/batches | Sammelprüfung starten. Parameter urls[] (Liste) und optional title. Antwortet sofort (202); die Prüfung läuft im Hintergrund. |
GET /api/v1/batches/:id | Status und Ergebnisse einer Sammelprüfung. status ist pending, running oder done. |
Sammelprüfung starten und abfragen
curl -X POST https://php2shellcve.de/api/v1/batches \
-H "Authorization: Bearer p2s_IhrSchluessel" \
-H "Content-Type: application/json" \
-d '{"title": "Kundenseiten", "urls": ["kunde-a.de", "kunde-b.de"]}'
curl https://php2shellcve.de/api/v1/batches/42 \
-H "Authorization: Bearer p2s_IhrSchluessel"
Beispielantwort einer Einzelprüfung
{
"id": 17,
"url": "www.example.com",
"final_url": "https://www.example.com/",
"status": "vulnerable",
"verdict": "Wahrscheinlich betroffen",
"php_version": "8.3.20",
"technologies": ["WordPress 6.9"],
"server": "Apache",
"php_detected": true,
"fixed_version": "8.3.36",
"backport_possible": false,
"checked_at": "2026-10-23T12:00:00+02:00",
"report_url": "https://php2shellcve.de/r/…"
}
status ist einer von vulnerable (wahrscheinlich betroffen), unknown (PHP erkannt, Version nicht sichtbar),
no_php (kein PHP erkannt, keine Garantie), patched (laut Version gepatcht) oder error (nicht erreichbar).
Grenzen und Fehler
Kostenlos sind bis zu 10 Websites pro Sammelprüfung und 20 Websites pro Stunde möglich,
zusammen mit Prüfungen auf der Website. Darüber antwortet die API mit 429 und "error": "quota_exceeded".
Ein fehlender oder widerrufener Schlüssel ergibt 401, unbekannte IDs 404.