S2-016漏洞整理

访客4年前黑客文章745

原文来自SecIN社区—作者:tkswifty?

引言

最近项目上跟Struts2框架打交道比较多,整理一下比较经典的几个漏洞的测试以及Bypass姿势。首先是S2-016。
PS:升级迁移这个东西真的很费劲。
image.png

关于S2-016测试

影响版本

Struts 2.3.15.1之前的所有版本

验证及判断 ***

一般可以通过在对应的接口,使用如下Payload触发302重定向来进行判断:

会触发302跳转并且执行对应的算数表达式:
image.png
利用application(Struts2自带的ActionContext类特性)确定可以执行代码:

通过执行application对象(Web服务器启动时,会自动会每个Web服务目录都创建一个application对象)的 *** ,尝试读取项目中的临时存储目录来判断是否可以执行代码:
image.png

绕过手法

主要思路就是绕过关键字检测。

multipart绕过

跟Spring框架不一样,Struts2的multipart提交方式并不能通过删除from-data或者大小写变换Content-Type的内容来进行提交。以下是struts2的处理方式:

绕过方式主要是修改成multipart提交方式:
image.png
因为是startsWith的检查,所以也可以修改相关内容为multipart/form-databypass进行绕过。

写入超长变量构造超大数据包

可以通过新建字符串变量的方式,创建超长的字符变量,尝试绕过waf(一般waf对于超大数据包有buffer防守,超过buffer防守的话,即可绕过防护):
创建字符串变量的方式:

payload变形:

image.png

调用js引擎编码绕过

针对一些敏感字符例如start()之类的检测拦截,可以考虑调用Java的js引擎进行编码解码操作来进行绕过。
js引擎调用:

payload变形:

image.png

调用base64引擎编码绕过

针对一些敏感字符例如start()之类的检测拦截,可以考虑调用Java的Base64引擎进行编码解码操作来进行绕过。
前提条件要满足Struts2 version<=2.0.14
主要是这两个编码引擎:
com.sun.xml.internal.messaging.saaj.util.Base64():

sun.misc.BASE64Decoder():

Base64编码部分:
将以下poc写入想要执行的命令,Base64编码然后放入到编码引擎poc中即可:

举例:

image.png
com.sun.xml.internal.messaging.saaj.util.Base64:
image.png

通过反射进行调用

针对某些waf可能检测类似start、readline等命令关键字。可以通过反射结合byte字节转换来绕过。
这里通过反射调用ProcessBuilder的start *** ,以及BufferedReader的readline *** 。通过结合byte字节转换来屏蔽对应关键字:

image.png

修复建议

  1. 按照官方建议进行Struts2的版本升级;(可能导致例如Spring不兼容的问题,影响稳定性)
  2. 手工修改Ognl.jar源码,增加恶意代码的过滤;
  3. 重写struts2 DefaultActionMapper的handleSpecialParameters *** ,增加action、redirect、redirectAction等参数的过滤。
  4. 在沙箱中运行OGNL表达式:
    添加-Dognl.security.manager参数
    限制OGNL表达式更大允许长度:struts.ognl.expressionMaxLength
    参考[https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable](

相关文章

找黑客攻克37手游永恒纪元-被黑客攻击怎么报警(怎么知道被黑客攻击了)

找黑客攻克37手游永恒纪元-被黑客攻击怎么报警(怎么知道被黑客攻击了)

找黑客攻克37手游永恒纪元相关问题 黑客犯法吗相关问题 当黑客需要什么条件 黑客怎么进入网赌(找黑客弄回网赌输的钱)...

集中注意力(注意力训练的十个方法)

集中注意力(注意力训练的十个方法) 注意力,是让我们能坚持完成工作的一个重要因素。 而对于现在很多人来说,注意力缺失却成为了他们无法专注完成目标的“头号杀手”。 由于在学习或者工作期间,他们不断...

找黑客攻击群(黑客先接单后付款)

攻击群怎么找黑客 1、接单黑客起名为绿色兵团。攻击群先接单后付款有一个情况对他压力,Aaliyah,所以往往是买个防火墙装上就完事了。接单Trojan。让美国找黑客联邦调查局追着跑了两年。这种人就是一...

世界级黑客有中国人吗(中国黑客有哪些人)

世界级黑客有中国人吗(中国黑客有哪些人)

本文目录一览: 1、郭盛华世界黑客排名 2、中国有顶级黑客么? 3、中国最有影响力的黑客是谁? 郭盛华世界黑客排名 郭盛华在世界十大黑客中排名第六位,他是中国黑客界的传奇人物,也是一个不折不...

黑客怎么盗qq号,美国网络遭黑客攻击,手机模拟黑客网站

受金融类歹意进犯的用户比率(%) 3.体系、软件缝隙[+] C:WindowsMicrosoft.NETFrameworkv2.0.50727SOS.dll-->MinidumpMode Fun...

2020淘宝卖家申请直播流程(教你如何找到合适的淘宝直播达人)

2020淘宝卖家申请直播流程(教你如何找到合适的淘宝直播达人)

关键字:直播间,步骤,优惠劵 可用商家经营规模:全体人员商家 可用领域:总体领域 序言:淘宝直播间是阿里巴巴网发布的网络直播平台,直播间早已变成各种电子商务十...