今天复现S2-001 远程代码执行漏洞,Apache Struts2 是一个用于开发Java Web应用程序的开源框架。S2-001 是 Struts2 中的一个早期安全漏洞,特别是 2.0.0 到 2.0.8 版本,Struts2 在处理 HTTP 请求时,没有正确验证和过滤用户输入的数据。这导致攻击者可以通过特定的请求参数注入恶意代码。 ailx10 1931 次咨询 4.9...
S2-001 漏洞由于其解析 jsp 文件的标签数据时,官方举例是 form 标签的 textfield 数据中,在验证表单出错时,页面再次回到验证出错页面,这时如果开启了 altSyntax (默认开启)且为字符串类型时,struts2会对标签在值栈中自栈顶向栈底找与表单 name 名同名的属性值进行 ognl 表达式解析并显示。故在表单中输入形如 %{...
(1)假设输入的是其abc或者2+2字符串,进入解析时候的表达式是%{name},而getValue("name")返回值则是2+2的字字符串,再次进入循环时,被判断不是表达式直接返回给前台(漏洞没有触发)。 (2)若输入的是%{2+2},进入解析时候的表达式也是getValue("name"),getValue("name")返回的则是%{2+2},而解析方法由于...
漏洞 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 复现系列-Apache Struts2远程代码执行漏洞(S2-001)复现 hyh303 2022-06-10 10:09:44 165548 所属地 北京该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} ...
复现 一、服务搭建 1、进入vulhub中s2-001所在目录 /usr/vulhub/struts2/s2-001(根据vulhub个人安装目录自行调整) ![在这里插入图片描述](https://img-blog.csdnimg.cn/104a3f9992d34ab6828ccd1a984a6b01.png 2、查看漏洞说明 catREADME.zh-cn.md (README.md为英文版) ...
复现 一、服务搭建 1、进入vulhub中s2-001所在目录 /usr/vulhub/struts2/s2-001(根据vulhub个人安装目录自行调整) 1. 2、查看漏洞说明 cat README.zh-cn.md (README.md为英文版) 1. 3、docker容器启动 docker-compose up 1. 4、查看docker进程,确定服务端口 ...
Struts2漏洞复现 Struts2是一个基于MVC设计模式的Web应用框架 S2-001 漏洞原理: 后端将用户之前提交的参数使用OGNL表达式%{}进行解析,然后重新填充到对应的表单数据中,例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用%{value}对提交的数据执行了一次OGNL表达式解析,所以可以直接构造payload进行...
由于之前在校时面向对象语言学习的是C++,而后又学的是php和Python,从而完全没有涉及过java的领域,java安全这块的内容也一直没怎么涉及。看着师傅们在讨论java的漏洞利用时也无法参与。 于是想着,趁着暑假这最后还有一两个星期的时间,入门学习一下java安全。于是就挑了个struts2 S2-001来复现。
漏洞的产生在于WebWork 2.1 和Struts 2的’altSyntax’配置允许OGNL 表达式被插入到文本字符串中并被递归处理(Struts2框架使用OGNL作为默认的表达式语言,OGNL是一种表达式语言,目的是为了在不能写Java代码的地方执行java代码;主要作用是用来存数据和取数据的)。这就导致恶意用户可以提交一个字符串(通常通过HTML的text字段...
struts2漏洞 S2-001是当用户提交表单数据且验证失败时,服务器使用OGNL表达式解析用户先前提交的参数值,%{value}并重新填充相应的表单数据。例如,在注册或登录页面中。如果提交失败,则服务器通常默认情况下将返回先前提交的数据。由于服务器用于%{value}对提交的数据执行OGNL表达式解析,因此服务器可以直接发送有效载荷来执...