Struts2 漏洞总结(待续)

  • A+
所属分类:漏洞复现
摘要

Struts2 漏洞总结

Struts2 -001

漏洞原理

Struts2的框架的XWork库中,对ognl表达式的解析方法是通过递归循环的方式进行解析,导致可以对输入形如%{*}的表达式字符串进行解析。

该漏洞触发的一个因素之一是在Action执行完成之后,返回“错误”的结果到原先的带有taglib标签的jsp进行渲染,而返回的时候会对字符串进行ognl表达式递归解析。借助一个图更好理解一些

Struts2 漏洞总结(待续)

漏洞复现

Struts2 漏洞总结(待续)

Struts2 -005

漏洞原理

漏洞复现

Poc

执行任意命令POC(无回显,空格用@代替):

Struts2 -007

漏洞原理

当类型验证转换出错,后端默认会将用户提交的表单值通过字符串拼接,然后执行一次 OGNL 表达式解析并返回

当用户提交 age 为字符串而非整形数值时,后端用代码拼接 "'" + value + "'" 然后对其进行 OGNL 表达式解析。要成功利用,只需要找到一个配置了类似验证规则的表单字段使之转换出错,借助类似 SQLi 注入单引号拼接的方式即可注入任意 OGNL 表达式。

Struts2 漏洞总结(待续)

漏洞复现:

Poc

把构造好的payload 输入到age

Struts2 漏洞总结(待续)

总结:

s007漏洞触发的原因是因为配置了验证规则,当验证规则出错时,后端默认会将用户提交的表单值通过字符串拼接,然后执行一次ognl 表达式并返回。

Struts2 -045

漏洞描述

通过Content-Type这个header头,注入OGNL语言,进而执行命令。

漏洞的点在于,由于Strus2对错误消息处理时,出现了纰漏。

漏洞原理

Struts2默认解析上传文件的Content-Type头,存在问题。在解析错误的情况下,会执行错误信息中的OGNL代码。

漏洞复现

Poc

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: