Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
liferay-ga4-rce-research — Sicherheitsforschung zu Liferay CE 7.0.3 GA4: Pre-Auth-RCE als Root (CVE-2020-7961-Klasse) Ende-zu-Ende reproduziert, plus 16 weitere Erkenntnisse — 8+ ohne bekannte CVE. Agentischer Loop-Hunt: 25 Generatoren, 22 Prüfer, 9 Live-Validatoren auf Docker. Beweiskette + Ein-Klick-Checker enthalten. | Kitploit
Tools/GitHubGitHub/dinosn/liferay-ga4-rce-research
Dynamische Analyse (Sandboxing)SchwachstellenanalyseExploitationScripting & AutomatisierungWebanwendungs-ExploitationWebsicherheitPenetrationstestsPapers & ForschungRed Teaming

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
GitHubdinosn/liferay-ga4-rce-research

liferay-ga4-rce-research

Repository anzeigen
65vor 1 MonatNoch nicht geprüft

Über

Sicherheitsforschung zu Liferay CE 7.0.3 GA4: Pre-Auth-RCE als Root (CVE-2020-7961-Klasse) Ende-zu-Ende reproduziert, plus 16 weitere Erkenntnisse — 8+ ohne bekannte CVE. Agentischer Loop-Hunt: 25 Generatoren, 22 Prüfer, 9 Live-Validatoren auf Docker. Beweiskette + Ein-Klick-Checker enthalten.

Teilen

Liferay CE 7.0.3 GA4 – Schwachstellenforschung (RAPTOR Loop-Hunt)

Ein Sicherheitsaudit von Liferay Portal CE 7.0.3 GA4 (Git-Tag 7.0.3-ga4, Commit b2d7cc68a), durchgeführt mit der RAPTOR-Loop-Hunt-Methodik: deterministische Aufklärung → 25 isolierte Generator-Agenten, die aus dem Rohquellcode lesen → 22 unabhängige Judge-Agenten, die anhand des Rohquellcodes widerlegen → 9 Live-Validatoren, die eine echte GA4-Instanz in Docker angreifen.

Kernaussage: Nicht authentifizierte RCE als root Ende-zu-Ende reproduziert (Klasse CVE-2020-7961), plus 8 weitere live-verifizierte Schwachstellen – einige davon ohne bekannte CVE.

⚠️ Rechtlich/ethisch: Alles hier richtet sich gegen eine selbst gehostete Testinstanz. Liferay CE 7.0 ist End-of-Life (letzte Veröffentlichung 7.0.6 GA7, 2018); diese Probleme sind upstream nicht gepatcht. Verwenden Sie dieses Material nur gegen Systeme, die Ihnen gehören oder für die Sie ausdrücklich autorisiert sind, sie zu testen.


Sie suchen wahrscheinlich nach :)

https://github.com/dinosn/liferay-ga4-rce-research/blob/main/tools/liferay_ga4_check.py

Befunde auf einen Blick

Status: ✅ live-verifiziert gegen die Docker-GA4-Instanz · 🔬 per Code bestätigt (unabhängiger Judge hat die vollständige Spur aus dem Rohquellcode rekonstruiert) · 🧪 benötigt Konfiguration / konfigurationsabhängig.

IDBefundSchweregradAuthStatusNachweis
F-1JSONWS-Typ-Override → beliebige Klasseninstanziierung + Setter → RCE als root (c3p0 HexAsciiSerializedMap → ObjectInputStream → AspectJWeaver-Dateischreib-Gadget → JSP)Kritischkeine✅verified/f1-jsonws-deser-rce.md
F-2/poller/* jabsorb javaClass-Hinweis → beliebige Klasseninstanziierung + Feldinjektion, vor der userId-ValidierungHoch (potenziell)jedes Konto (Selbstregistrierung standardmäßig aktiv)✅ Senke / RCE-Zweig offenverified/F-2-poller.md
F-4XML-RPC pingback.ping Abruf-vor-Validierung → blinde SSRF + interner Port-Orakel (erreichte Gogo-Shell auf 127.0.0.1:11311)Mittelkeine✅verified/f4-xmlrpc-pingback-ssrf.md
F-5SyncDownloadServlet versionId-IDOR → jede DL-Dateiversion lesen (cross-site, keine VIEW-Prüfung auf dem gestreamten Objekt)Hochkeine (über einen für Gäste sichtbaren „leg")✅verified/F-5.md
F-6XSL-Template-Engine ignoriert Sandboxing (secureProcessing=false, restricted verworfen) → document()-SSRF und XSLTC rt:exec-BefehlsausführungKritischSite-Template-Autor✅verified/F-6-F-7-template-engines.md

Vollständige kuratierte Liste mit Ablehnungen: FINDINGS.md · narrativer Bericht: REPORT.md


Neu vs. bekannt – CVE-Vergleich

Katalog von etwa 50 bekannten Liferay-7.0.x-Problemen als Vorwissen (Prior Art): PRIOR-ART.md (OSV [email protected], NVD-Durchsuchung, Code-White-/CERT-EU-Advisories).

BefundBekannte CVE?Beziehung
F-1 JSONWS-Deserialisierungs-RCECVE-2020-7961 (CISA KEV, in freier Wildbahn ausgenutzt)Reproduktion + unabhängige Neuableitung. Als in GA4 ungepatcht bestätigt; vollständige Kette mit einem AspectJWeaver-Dateischreib-Gadget nachgewiesen (öffentliche PoCs verwenden normalerweise JdbcRowSetImpl-JNDI).
F-10 TunnelServlet readObjectCVE-2020-15842 (Klassenübereinstimmung)Bekannte Klasse. Nur-Blacklist-Deserialisierungsschutz bestätigt; Pre-Auth-Barrieren live verifiziert (ohne gemeinsames Geheimnis/erlaubten Host nicht ausnutzbar).
F-7 Template-propsUtil-EscapeCVE-2020-13445 (Template-Injection, FreeMarker/Velocity)Variante. Gleiche Fehlerklasse (Template-API schränkt sensible Objekte nicht ein), anderer Mechanismus: rohe PropsImpl/saxReaderUtil-Objekte innerhalb des eingeschränkten Kontexts offengelegt.
F-12 (Enumerationsteil)CVE-2021-33321 (login.secure.forgot.password=false)Bekannte unsichere Standardeinstellung – unabhängig live bestätigt.
F-12 (Orakel + Reset-Ticket bei leerer Antwort)keine gefundenNeu. Fresh-JSESSIONID-Captcha-Bypass in Schritt 2; leere answer erzeugt ein gültiges 24-Stunden-Reset-Ticket für Konten ohne Sicherheitsfrage ohne jegliches Geheimniswissen.
F-11 SimpleCaptcha-Brute-Forcekeine gefunden (CVE-2019-6588 ist ein anderes Captcha-Problem – XSS)Neu. 4-stellige PIN + keine Ungültigmachung + Gästezähler-Bypass.
F-2 Poller-jabsorb-Deserialisierungkeine gefundenNeu. Senke live bestätigt; Waffenisierung durch LiferaySerializer-Feldinjektion blockiert (offene Forschung).
F-4 Pingback-SSRF-Orakelkeine gefundenNeu.
F-5 Sync-versionId-IDORkeine gefundenNeu.
F-6 XSL-Engine-RCEkeine gefunden (CVE-2020-13445 deckt nur FreeMarker/Velocity ab)Neu. Die XSL-Engine lag außerhalb jedes früheren Fixes zur Template-Injection.

„Neu" = zum Stand 2026-07 wurde in OSV-/NVD-/Liferay-Advisories keine passende CVE gefunden; die Befunde wurden nicht zur CVE-Vergabe eingereicht (die Produktlinie ist EOL).

Bekannte CVEs, die in GA4 bestätigt vorhanden sind, aber nicht live erneut getestet wurden

CVE-2020-15840 (Bypass des URL-Filters durch doppelte Kodierung), CVE-2024-8980 + CVE-2025-43748 (CSRF → Script-Console-RCE), CVE-2021-33335 (Company-Admin-Übernahme – GA4 ist die Untergrenze des betroffenen Bereichs), CVE-2017-1000425 (flash.jsp-XSS), CVE-2021-29040 (verbose JSONWS-Fehler), CVE-2022-41414 / CVE-2023-33949 (Enumeration/Registrierungs-Standardeinstellungen), CVE-2025-62261 (Reset-Tokens im Klartext – NVD nennt 7.0.3 GA4 direkt). Siehe PRIOR-ART.md.


Der Prozess (RAPTOR loop-hunt)

RundeWas liefAusgabe
0 – deterministischraptor-sca-Abhängigkeitsaudit (727 Abhängigkeiten), 17 Semgrep-Regeln (1.098 Anker), Bedrohungsmodell, Entrypoint-Manifest aus web.xml, Prior-Art-CVE-KatalogSCA.md SEMGREP.md THREAT-MODEL.md ENTRYPOINTS.md PRIOR-ART.md
1 – generieren25 isolierte Agenten, einer pro Komponentenausschnitt × Bug-Klassen-Linse, Schlussfolgerung nur aus dem Rohquellcode (keine früheren Zusammenfassungen – Anti-Anker)45 Kandidaten in candidates/
2 – bewerten22 unabhängige Agenten, die jeden Kandidaten anhand des Rohquellcodes widerlegen; ein Kill erfordert im Code sichtbare Belege („Geh nicht davon aus, dass die unsichtbare Ebene sicher ist")judge/
3 – live-verifizieren9 Agenten greifen die Docker-GA4-Instanz an; jede Behauptung durch aufgezeichnete Anfrage/Antwort belegt; obligatorische Bereinigungverified/

Ledger: TRIED.md (alles Versuchte, inkl. 3 dokumentierter trockener Durchläufe) · INVENTORY.md (Abdeckungs-Nenner) · Umgebung/Fixtures: ENV.md


Lokal mit Docker reproduzieren

Es gibt kein offizielles liferay/portal:7.0.3-ga4-Image, daher aus dem offiziellen Bundle bauen:

root@kitploit:~
# Dockerfile
FROM openjdk:8-jdk
RUN apt-get update && apt-get install -y --no-install-recommends unzip curl \
 && rm -rf /var/lib/apt/lists/*
RUN curl -sSL -o /tmp/liferay.zip \
    "https://downloads.sourceforge.net/project/lportal/Liferay%20Portal/7.0.3%20GA4/liferay-ce-portal-tomcat-7.0-ga4-20170613175008905.zip" \
 && unzip -q /tmp/liferay.zip -d /opt \
 && mv /opt/liferay-ce-portal-7.0-ga4 /opt/liferay \
 && rm /tmp/liferay.zip
EXPOSE 8080 11311
CMD ["/opt/liferay/tomcat-8.0.32/bin/catalina.sh", "run"]
root@kitploit:~
docker build -t liferay-ga4 .
docker run -d --name liferay-ga4 -p 8080:8080 liferay-ga4

# first boot takes several minutes — wait for it:
until [ "$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8080/)" = 200 ]; do sleep 10; done

Führen Sie dann den einmaligen Einrichtungsassistenten unter http://localhost:8080/ aus (Standard-HSQL-DB; der Assistent setzt das Admin-Passwort für [email protected]).

Den Einmal-Validator ausführen

tools/liferay_ga4_check.py ist ein einziges, nur auf der Standardbibliothek basierendes Python-3-Skript – richten Sie es auf eine beliebige GA4-Instanz, und es testet jeden live-verifizierten Befund:

root@kitploit:~
# passive validation of all findings (safe, no payloads detonated)
python3 tools/liferay_ga4_check.py http://localhost:8080

# with an account (self-registration is on by default) for the poller sink test
python3 tools/liferay_ga4_check.py http://localhost:8080 --user [email protected] --password '***'

# full RCE proof (opt-in): drops a SELF-DELETING JSP via the deserialization file-write
# gadget and fetches the command output; adjust --web-root to your install
python3 tools/liferay_ga4_check.py http://localhost:8080 --rce \
    --web-root /opt/liferay/tomcat-8.0.32/webapps/ROOT

Erwartete Ausgabe bei einer Standard-GA4-Installation: 9 Befunde VULNERABLE (F-1, F-1+RCE, F-2, F-4, F-5*, F-8, F-11, F-12, F-13*) plus F-10 als nicht verwundbar bestätigt (Tunnel-Barriere hält). *F-5 und F-13 benötigen Fixture-Parameter (--leg-uuid/--version-id, --wcd-page/--group-id/--article-id) – siehe --help.

Das Deserialisierungs-Gadget wird in reinem Python innerhalb des Skripts erzeugt (byte-verifiziert gegen das im Rahmen der Untersuchung verwendete ysoserial-AspectJWeaver-Payload) – kein Java, keine JARs und kein ysoserial erforderlich.


Als solide verifiziert (damit Sie den Rest einordnen können)

Passwort-Reset-Tickets (128-Bit-UUID, einmalig, 24 h), Session-Erneuerung bei Ticket-Login, Remember-me-Cookie AES-128 mit unternehmensspezifischem SecureRandom-Schlüssel, Standard-PBKDF2-Hashing, der portalweite XML-Stack (externe Entitäten standardmäßig deaktiviert), WebDAV/SharePoint-Digest-Gates, /api/axis|/api/liferay|/api/atom-Localhost-IP-Sperren, Upload-Pfadvalidierung, /combo /sprite-Traversal-Schutz, Omni-Admin-Gating der Script-Konsole und der Gogo-Web-UI.

Abdeckungserklärung & Einschränkungen

Die Abdeckung wurde pro Komponente gegen das vollständige Inventar verfolgt (TRIED.md). Nicht abgedeckt: eine tiefgehende funktionsbezogene Prüfung des gesamten 4-GB-Baums (nur Semgrep-Anker), der Großteil von modules/apps außerhalb von foundation/web-experience auf Dateiebene, die F-2-Gadget-Forschung, Live-Tests mit Nicht-Standard-Konfiguration (F-9/F-14) und die Erreichbarkeit der PDFBox-2.0.3-Abhängigkeits-CVEs. Die Schleife wurde für den Bericht pausiert, nicht weil sie versiegte.

Tool herunterladen
F-7Velocity und FreeMaker eingeschränkte Templates legen rohes propsUtil / saxReaderUtil offen → Offenlegung von Portal-Eigenschaften + file:// für GästeHochTemplate-Autor✅verified/F-6-F-7-template-engines.md
F-8Image_-Tabellen-IDOR über /image/*?img_id=N — kein Token, präfixbezogene Prüfungen durch Präfixwechsel umgangen, fortlaufende IDs aufzählbarMittelkeine✅verified/f-8-image-idor.md
F-11SimpleCaptcha = 4-stellige PIN, wird bei falschen Versuchen nie ungültig, Gästezähler wird nie erhöht → nach ca. 5.000 Anfragen gebrochenMittelkeine✅verified/f11-f12-captcha-reminder.md
F-12Passwort-vergessen: Benutzer-Enumeration + Antwort-Orakel für Erinnerungsfrage ohne Captcha (Fresh-Session-Bypass); leere Antwort erzeugt ein echtes Reset-Ticket für Konten ohne SicherheitsfrageMittel-Hochkeine✅verified/f11-f12-captcha-reminder.md
F-13Web Content Display Request-Param-Override (groupId/articleId/ddmTemplateKey) → Cross-Site-Lesen von Nicht-Gast-Artikeln (Standard journal.article.view.permission.check.enabled=false)Hochkeine (benötigt ein WCD auf einer Gästeseite)✅verified/F-13-wcd-param-override.md
F-3OSGi-Axis-Extender überspringt ServiceAccessPolicy / Remote-Access-Kennzeichnung bei Modul-SOAP-DienstenMittel (Hoch mit WSDD-Modul)keine🔬judge/axis-spring-remoting.md
F-9OpenID verknüpft das Opferkonto mit der OpenID des Angreifers, bevor die Assertion verifiziert wird → Kontoverletzung (Account Takeover)Hochkeine (OpenID aktiviert, nicht Standard)🔬 🧪judge/sso-autologin.md
F-10TunnelServlet readObject nur durch eine Klassen-Blacklist geschützt; ROME/JdbcRowSetImpl/c3p0/AspectJWeaver-Gadgets im KlassenpfadKritisch (potenziell)vertrauenswürdiger Peer (gemeinsames Geheimnis + erlaubter Host)✅ Barrieren halten vor der Authentifizierungverified/f10-f20-tunnel-auth-pipeline.md
F-14TokenAutoLogin vertraut einem rohen SM_USER-Header (keine Verifizierung, keine IP-Whitelist)Mittelkeine (Token-SSO aktiviert, nicht Standard)🔬 🧪judge/sso-autologin.md
F-15Site-Admin-LAR-Import schmuggelt RolesAdminPortletDataHandler ein → massenhafte Löschung von Unternehmensrollen / Berechtigungs-WipeMittelSite-Administrator🔬judge/export-import-lar.md
F-16OpenSocial (nicht im Standard-Bundle): Pre-Auth-makeRequest-SSRF, /gadgets/ifr-Origin-JS, fälschbare Sicherheitstokens → Identitätsübernahme, gespeichertes XSSHoch ×4keine / Site-Mitglied🔬 (abhängig von der Bereitstellung)judge/opensocial-shindig.md
F-17WSRP (nicht im Standard-Bundle): Pre-Auth-ProxyServlet-SSRF; Markup-Endpunkt → beliebiges Portlet-Rendering + Persistenz der Layout-typeSettingsMittelkeine🔬 (abhängig von der Bereitstellung)judge/wsrp.md
F-8 Image_-IDORkeine gefundenNeu.
F-13 WCD-Cross-Site-Lesenkeine gefundenNeu. Unsichere Standardeinstellung als Ursache (journal.article.view.permission.check.enabled=false) plus ein neuer Zustellweg (Portlet-Request-Param-Override).
F-3 Axis-Extender-SAP-Bypasskeine gefundenNeu.
F-9 OpenID-Verknüpfung-vor-Verifizierungkeine gefundenNeu.
F-14 SM_USER-Header-Vertrauenkeine gefundenNeu.
F-15 LAR-Rollen-Data-Handler-Schmuggelkeine gefundenNeu.
F-16 / F-17 OpenSocial / WSRPkeine gefundenNeu, aber die Module sind nicht im Standard-GA4-Bundle enthalten (Liferay-Releng-Bundle: false).