最近项目上跟Struts2框架打交道比较多,整理一下比较经典的几个漏洞的测试以及Bypass姿势。首先是S2-016。
PS:升级迁移这个东西真的很费劲。
Struts 2.3.15.1之前的所有版本
一般可以通过在对应的接口,使用如下Payload触发302重定向来进行判断:
会触发302跳转并且执行对应的算数表达式:
利用application(Struts2自带的ActionContext类特性)确定可以执行代码:
通过执行application对象(Web服务器启动时,会自动会每个Web服务目录都创建一个application对象)的 *** ,尝试读取项目中的临时存储目录来判断是否可以执行代码:
主要思路就是绕过关键字检测。
跟Spring框架不一样,Struts2的multipart提交方式并不能通过删除from-data或者大小写变换Content-Type的内容来进行提交。以下是struts2的处理方式:
绕过方式主要是修改成multipart提交方式:
因为是startsWith的检查,所以也可以修改相关内容为multipart/form-databypass进行绕过。
可以通过新建字符串变量的方式,创建超长的字符变量,尝试绕过waf(一般waf对于超大数据包有buffer防守,超过buffer防守的话,即可绕过防护):
创建字符串变量的方式:
payload变形:
针对一些敏感字符例如start()之类的检测拦截,可以考虑调用Java的js引擎进行编码解码操作来进行绕过。
js引擎调用:
payload变形:
针对一些敏感字符例如start()之类的检测拦截,可以考虑调用Java的Base64引擎进行编码解码操作来进行绕过。
前提条件要满足Struts2 version<=2.0.14
主要是这两个编码引擎:
com.sun.xml.internal.messaging.saaj.util.Base64():
sun.misc.BASE64Decoder():
Base64编码部分:
将以下poc写入想要执行的命令,Base64编码然后放入到编码引擎poc中即可:
举例:
com.sun.xml.internal.messaging.saaj.util.Base64:
针对某些waf可能检测类似start、readline等命令关键字。可以通过反射结合byte字节转换来绕过。
这里通过反射调用ProcessBuilder的start *** ,以及BufferedReader的readline *** 。通过结合byte字节转换来屏蔽对应关键字:
相信现在有很多的朋友们对于南宁家具翻新维修多少钱都想要了解吧,那么今天小编就来给大家针对南宁家具翻新维修多少钱进行一个介绍吧,希望小编介绍的内容能够为大家起到帮助哦 家具翻新主要看是什么样的旧家具。...
BT(Build Transfer)即建设移交,是基础设施项目建设领域中采用的一种投资建设模式,是指根据项目发起人通过与投资者签订合同,由投资者负责项目的融资、建设,并在规定时限内将竣工后的项目移...
本文目录一览: 1、什么软件极速版挣钱最快是10000:1 2、能赚钱的软件有哪些? 3、赚钱软件排行榜前十名 4、赚钱软件聊天哪个赚钱多,又安全 5、有哪些可以赚钱的软件? 什么软...
黑客·当你完全掌握这些后·你就成为了一名小黑客 高级·编写自己的黑客工具什么的 在 嘿嘿 你就知道了 需要一个高尚的品德,杜绝做出危害国家的 什么黑客 小孩子好好学习 中国黑客现在很厉害...
本文导读目录: 1、王东临的10万美元被黑客拿走了吗? 2、ipl5世界总决赛是什么时候?在拉斯维加斯的总决赛。。。 3、世界黑客大会是什么?在什么地方举行? 4、黑客巴纳拜·杰克到底有多...
被删除的照片一般不会找回的,除了用恢复软件,我倒是觉得,苹果上的删除的照片很难找回了,只要多次覆盖就不能了~ 手机吗?千万别主动联系所谓的黑客解锁,都是骗子!建议找售后处理!你可以到黑客武林网站上去下...