漏洞复现 - - -Struts2(s2-045)远程命令执行漏洞

这篇具有很好参考价值的文章主要介绍了漏洞复现 - - -Struts2(s2-045)远程命令执行漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,Struts2是什么

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着非常大的变化,但是相对于WebWork,Struts 2的变化很小。

二,s2-045漏洞形成分析

CVE编号:CVE- 2017- 5638

POST请求发送数据
功能:获取WEB路径,任意命令执行,反弹shell和文件上传

 首先,我们先对比一下修复前与修复后的版本,来找到补丁的代码

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 先解压这两个文件beyond Compare 4 这个工具来对所有文件进行比对,来找出修改的文件,中文版如有需要注册码可以私聊领取。

链接:https://pan.baidu.com/s/14Hx9lVfZ2RHa9RQl_f3TSQ 
提取码:ifso 

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 然后来到struts-STRUTS_2_3_32目录,右击struts-STRUTS_2_3_32目录,选择Compareto”struts-STRUTS_2_3_31”来与之前的文件夹里所有文件进行对比

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

打开页面如下是两个新旧文件夹的对比 

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 选择edit再点击Select All(其实就是全选)s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

然后点击菜单栏的Actions,然后选择Compare Contents

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络 在弹出的弹窗中选择Binary comparison     ,并勾选Show results dialog ,点击start等待比较完成

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 比较完发现共有57处不同,点击.xml发现只是修改了版本号,发现又三个比较长的.java文件s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 随机点击一个发现已经标记好不同的位置s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 寻找新版本这个文件的路径,然后打开s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 看findtxet函数,在376行和424行s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 查看调用的getDefaultMessage函数,在这个函数里面调用了TextParseUtil.translateVariables在TextParseUtil.translateVariables方法中存在安全漏洞,可使远程攻击者通过构造的OGNL表达式,执行任意代码s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

在TextParseUtil.java中找到return parser 发现在这调用了ognl的方法,这就是漏洞形成的原因

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 三,s2-045漏洞复现

Struts2漏洞利用扫描工具及其环境

Structs2高危漏洞exp的扫描利用工具(2018)

链接:https://pan.baidu.com/s/1rOMjz-7xOYGyJdh4pdddCQ 
提取码:aero 

漏洞环境

链接:https://pan.baidu.com/s/1w7yAmprETRfPNiF5mJ8Rdg 
提取码:5b1r  

部署s2-045漏洞环境

cd vulhub-master 

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 cd struts2

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 cd s2-045

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

docker-compose up -d

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 访问靶场s2-045

http://your:ip/doUpload.action

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 使用bp随意上传一个文件包进行抓取,

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 根据上面的分析我们是发现了漏洞存在需要利用Content-Type进行修改并且进行传参,将参数修改为如下内容

%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',120*120)}.multipart/form-data  

 s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

再运用漏洞检查工具检测出了        S2-045漏洞 

s2-045,# 经典漏洞复现,网安,struts,servlet,java,网络

 文章来源地址https://www.toymoban.com/news/detail-807597.html

到了这里,关于漏洞复现 - - -Struts2(s2-045)远程命令执行漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • struts2 s2-062 ONGL远程代码执行

    struts2是一种重量级的框架,位于MVC架构中的controller,可以分析出来,它是用于接受页面信息然后通过内部处理,将结果返回。struts2也是一个web层的MVC框架。 Java中SSH框架 SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架。 Java中SSM框架 SS

    2024年02月02日
    浏览(8)
  • 【漏洞复现】锐捷 EWEB auth 远程命令执行漏洞

    【漏洞复现】锐捷 EWEB auth 远程命令执行漏洞

    免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。             

    2024年03月12日
    浏览(6)
  • struts2漏洞

    struts2漏洞

    漏洞原理 该漏洞因用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析,然后重新填充到对应的表单数据中。如注册或登录页面,提交失败后一般会默认返回之前提交的数据,由于后端使用%{value}对提交的数据执行了一次OGNL 表达

    2024年02月06日
    浏览(10)
  • Struts2 漏洞集合

    总结了一部分 Strtus2 漏洞,虽然现在这部分的漏洞很少了,但也是学习的一部分,收集的并不全面,后续会做补充。 漏洞环境搭建可以使用在线的 Vulfocus ,或者使用docker部署 S2-001 (CVE-2007-4556) 该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值

    2024年02月16日
    浏览(13)
  • 多个安全厂商安全设备 远程命令执行漏洞复现

    多个安全厂商安全设备 远程命令执行漏洞复现

    此文章仅用于技术交流,严禁用于对外发起恶意攻击!!! 该漏洞可执行远程代码 FOFA:body=“/webui/images/default/default/alert_close.jpg”

    2024年02月03日
    浏览(10)
  • 漏洞复现-nginxWebUI runCmd前台远程命令执行漏洞(附漏洞检测脚本)

    漏洞复现-nginxWebUI runCmd前台远程命令执行漏洞(附漏洞检测脚本)

    文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担

    2024年04月17日
    浏览(10)
  • xxl-job远程命令执行漏洞复现

    xxl-job远程命令执行漏洞复现

    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。XXL-JOB分为admin和executor两端,前者为后台管理页面,后者是任务执行的客户端。executor默认没有配置认证,未授权的攻击者可

    2024年02月11日
    浏览(9)
  • CVE-2021-22205 GitLab 远程命令执行漏洞复现

    CVE-2021-22205 GitLab 远程命令执行漏洞复现

    目录 一、漏洞信息 二、环境搭建 三、复现过程 1.测试漏洞 2.漏洞利用,反弹shell 四、修复建议 一、漏洞信息 漏洞名称 GITLAB 远程命令执行漏洞 漏洞编号 CVE-2021-22205 危害等级 高危 CVSS评分 6.5 漏洞厂商 Ruby 受影响版本 11.9 = Gitlab CE/EE 13.8.8;13.9 = Gitlab CE/EE 13.9.6;13.10 = Gitlab

    2024年02月05日
    浏览(9)
  • 【漏洞复现】厦门才茂通信网关formping远程命令执行漏洞

    【漏洞复现】厦门才茂通信网关formping远程命令执行漏洞

    厦门才茂通信网关formping存在远程命令执行漏洞,攻击者可通过特定payload对目标服务器发起攻击,造成不可估量的影响。 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所

    2024年02月15日
    浏览(24)
  • 【渗透测试】Struts2系列漏洞

    【渗透测试】Struts2系列漏洞

    🌷S2-001 🌼1、漏洞原理 🌼2、影响版本 🌼3、验证方法 🌷S2-005 🌼1、漏洞原理 🌼2、影响版本 🌼3、验证方法(无回显) 🌼4、验证方法(有回显) 🌷S2-007 🌼1、漏洞原理 🌼2、影响版本 🌼3、漏洞验证 🌷S2-008 🌼1、漏洞原理 🌼2、影响版本 🌼3、漏洞验证 🌷S2-009 🌼

    2023年04月09日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包