Beispielanalyse der Site-Risiken des Struts2-Frameworks
1. Übersicht
Ein von der Apache Software Foundation (ASF) gesponsertes Open-Source-Projekt ist Struts. Das Projekt begann als Zweig des Jakarta-Projekts und wurde anschließend zu einem Spitzenprojekt der ASF befördert. Durch die Verwendung der Java Servlet/JSP-Technologie wird das Anwendungsframework [Web Framework] basierend auf dem Model-View-Controller [MVC]-Entwurfsmuster von Java EE-Webanwendungen implementiert. Es handelt sich um ein klassisches Produkt im klassischen MVC-Entwurfsmuster.
In den frühen Tagen der Entwicklung von Java EE-Webanwendungen wurde neben der Verwendung der Servlet-Technologie im Allgemeinen eine Mischung aus HTML- und Java-Code im Quellcode von JavaServer Pages (JSP) verwendet. Diese beiden Methoden sind bei der Vermischung von Leistung und Geschäftslogikcode unvermeidlich, was eine enorme Komplexität in der frühen Entwicklung und späteren Wartung mit sich bringt. Um die oben genannten Einschränkungen und Einschränkungen zu beseitigen und den Geschäftslogikcode klar von der Präsentationsschicht zu trennen, übernahm Craig McClanahan im Jahr 2000 das MVC-Entwurfsmuster, um Struts zu entwickeln. Dieses Framework-Produkt galt einst als das umfangreichste und beliebteste JAVA-WEB-Anwendungs-Framework. Struts2 ist ein Webanwendungs-Framework, das auf dem MVC-Entwurfsmuster basiert. Im MVC-Entwurfsmuster dient Struts2 als Controller . (Controller), um die Dateninteraktion zwischen dem Modell und der Ansicht herzustellen. Struts 2 ist das Produkt der nächsten Generation von Struts 2, das die Technologien von Struts 1 und WebWork
2 vereint In den letzten Jahren wurden mehrere Regierungsseiten, Banken, große Internetunternehmen und andere Einheiten betroffen. Im Dezember 2016 wurden beispielsweise Benutzerdaten von JD.com 12G durchgesickert. Telefonnummer, Personalausweis und andere Dimensionen mit zig Millionen Datenelementen. Der Grund liegt in der Sicherheitslücke von Struts 2 im Jahr 2013. Damals waren fast alle Internetunternehmen sowie zahlreiche Banken und Regierungsbehörden im Land betroffen, was zu zahlreichen Datenlecks führte. Jedes Mal, wenn eine Sicherheitslücke in Struts2 auftrat, erhielten auch große Internet-Schwachstellenplattformen mehrere Rückmeldungen, z als:
Das Codeausführungsproblem von Struts2 geht auf das Jahr 2010 zurück. Damals entdeckte Meder Kydyraliev vom Google Security Team, dass die Filterung des Sonderzeichens „#“ durch den Parameter Interceptor durch die Verwendung von unicde umgangen werden konnte Verschlüsselung, was zu Problemen bei der Codeausführung führt.
Wenn wir auf die Geschichte der Schwachstellen von struts2 zurückblicken, stellen wir fest, dass die Entwickler nicht über ein ausgeprägtes Sicherheitsbewusstsein verfügen Obwohl Sicherheitsmaßnahmen ergriffen wurden, waren sie wirkungslos. Zweitens sind wir der Meinung, dass es den offiziellen Reparaturmaßnahmen an Wirksamkeit mangelt und sie scheinbar nur oberflächlich sind, ohne die Ursache des Problems wirklich zu lösen. Darüber hinaus ist der offizielle Offenheitsgeist wirklich schockierend. Sie haben den PoC der Sicherheitslücke sogar direkt auf der offiziellen Website veröffentlicht. Dies gab vielen Menschen die Möglichkeit, die Ausnutzung der Sicherheitslücke weiter zu untersuchen ernster.
2.2. Struts2-Schwachstelleninventur
Die Schwachstelle in Struts2 hat relativ große Auswirkungen und wird häufig ausgenutzt:
CVE-2010-1870XWork ParameterInterceptors-Bypass ermöglicht die Ausführung von OGNL-Anweisungen
CVE-2012-0392struts2 DevMod Remote Command Execution Vulnerability
CVE- 2011- 3923Struts
CVE-2013-1966Struts2
CVE-2013-2251Struts2
Struts2
Struts2
CNVD-2016-02506, CVE-2016-3081, betroffene Versionen von Struts 2.3.20 – StrutsStruts 2.3.28 (außer 2.3.20.3 und 2.3.24.3)
CVE-Nummer: CVE-2016-4438 Struts (S2-037) Sicherheitslücke bei Remotecodeausführung, betroffene Version: Struts 2.3.20 – Struts Struts 2.3.28.1
CVE-2017-5638 Betroffene Versionen: Struts 2.3.5 – Struts 2.3.31
Struts 2.5 – Struts 2.5.10
Weitere Details finden Sie im Schwachstellenverlauf auf der offiziellen Website von struts2 :https://cwiki.apache.org/confluence/display/WW/Security+Bulletins
3. Verteilung
Angesichts des Struts2-Frameworks mit häufigen Schwachstellen haben wir eine Umfrage zum durchgeführt Verteilung des Struts-Frameworks, das in der Provinzstatistik verwendet wird, durch Fingerabdruckidentifizierung einzelner Standorte auf Präfekturebene wird das Verteilungsdiagramm der Verwendung des Strust2-Frameworks in verschiedenen Städten in der Provinz wie folgt gezeichnet:
Spezifische Tabellendaten:
Seriennummer | Branchentyp | Menge | Prozentsatz |
1 | Regierungsministerium | 447 | 28,29 % |
2 | Bildungseinrichtungen | 155 | 9,80 % |
3 | Finanzindustrie | 110 | 6,96 % |
4 | Versicherungsbranche | 28 | 1,77 % |
5 | Wertpapierindustrie | 14 | 0,88 % |
6 | Energiewirtschaft | 8 | 0,50 % |
7 | Transportindustrie | 93 | 5,88 % |
8 | Telekommunikationsbetreiber | 114 | 7,21 % |
9 | Internetunternehmen | 398 | 25,18 % |
10 | Andere Unternehmen | 213 | 13,48 % |
Wie aus dem Bild oben ersichtlich ist, sind die Top Drei (Anmerkung: ohne andere Unternehmen) Regierungsbehörden (mit einem Anteil von 28,29 %), Internetunternehmen (25,18 %) und Bildungseinrichtungen (9,8 %).
Wir haben gesammelt Verwenden Sie die Struts2-Middleware-Site zur Schwachstellenerkennung. Dieses Mal verwenden wir mehrere Schwachstellen mit hohem Risiko, die relativ große Auswirkungen auf das Internet haben, um das Vorhandensein von Schwachstellen zu erkennen (S2-045, S2-037, S2-032, S2). -016) und reparieren und verstärken. Nach dem Testen von 1580 Site-Beispielen wurde festgestellt, dass es immer noch einige Sites gibt, auf denen Struts2-Schwachstellen nicht behoben wurden. Die statistischen Informationen der Sites, auf denen die Schwachstellen entdeckt wurden, sind wie folgt:
Seriennummer | Industrie | Es gibt Schwachstellen Menge |
---|---|---|
1 | Regierungsabteilungen | 3 |
2 | Bildungseinrichtungen | 2 |
3 | Finanzindustrie | 1 |
4 | Internetunternehmen | 2 |
5 | Andere | 2 |
Während der Erkennung haben wir stellte fest, dass viele Websites vor Stuts2 alte Schwachstellen hatten wurden nicht repariert, wodurch registrierte Benutzer der Website Hackern in der Stuts2-Sicherheitslücke vor der Tür stehen.
4. Sicherheitsvorschläge
Da die Situation immer komplexer wird, ist Informationssicherheit zu einem Thema geworden, das mehr als nur Technologie betrifft. Die Entwicklung von Wissenschaft und Technologie ist ein zweischneidiges Schwert. Sie kann der Menschheit zugute kommen, aber auch destruktive Auswirkungen haben. Und dieser Punkt lässt sich zusätzlich zur Technologie selbst besser von der Ebene unseres Bewusstseins aus erfassen. Angesichts der enormen Auswirkungen von Schwachstellen reicht es aus, die Informationssicherheitsexperten in der Internetbranche zu alarmieren: ein Weckruf für Informationen Der Sicherheitsdienst sollte ständig klingeln.
1. Wir sollten bei der Entwicklung von Informationssystemen gute Entwicklungsgewohnheiten entwickeln, und aufgrund von Nachlässigkeit während des Entwicklungsprozesses können Logiklücken usw. auch große Sicherheitsrisiken für das System mit sich bringen.
2. Die Website-Daten werden rechtzeitig gesichert. Wenn das System angegriffen wird, kann das angegriffene System so schnell wie möglich wiederhergestellt werden.
3. Installieren Sie Antivirensoftware im Hintergrunddienst, führen Sie regelmäßig Virenscans und andere Sicherheitsüberprüfungen auf dem Server durch.
4. Achten Sie in Echtzeit auf die neuesten Schwachstellen im Internet und beheben Sie die Schwachstellen im Informationssystem zeitnah.
5. Führen Sie regelmäßig Penetrationstests, Schwachstellentests und andere Arbeiten am System durch, um Probleme rechtzeitig zu erkennen und rechtzeitig zu beheben, um zu verhindern, dass Schwachstellen dem Internet ausgesetzt werden.
6. Schalten Sie Systeme, die nicht mehr verwendet werden, rechtzeitig offline. In alten Systemen gibt es im Allgemeinen mehr Sicherheitsprobleme, und eine schlechte Verwaltung kann dazu führen, dass eine große Menge vertraulicher Informationen verloren geht.
Das obige ist der detaillierte Inhalt vonBeispielanalyse der Site-Risiken des Struts2-Frameworks. 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

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

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 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
