1的体系结构差别巨大struts是什么 2以WebWork為核心,采用拦截器的机制来处理用户的请求这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以struts是什么 2可以理解为WebWork的更新产品虽然从struts是什么 1到struts是什么 2有着太大的变化,但是相对于WebWorkstruts是什么 2的变化很小。
2.5.12攻击者可以通过构造恶意XML请求在目标服务器上远程执行任意代码。漏洞的成因是由于使用XStreamHandler反序列化XStream实例的时候没有执行严格的过滤导致远程代码执行
这里实际上就是对XML和java对象之间进行转化,这裏面的 toObject方法触发了漏洞——反序列化XStream实例的时候没有执行严格的过滤
结合以上两个情况,如果我们拦截住提交数据的请求包将其对应嘚ContentType直接改为 application/xml,则ContentTypeHandler按照Content-type很自然的就把这个包分发给了XStreamHandler这个类来处理,然而这个类没有进行任何校验直接进行了转换,所以服务器就会直接执行我们编写的任意xml代码
直接使用wget命令在官网下载源码包,解压安装即可:
- 打开浏览器访问,出现以下页面:
- 设置浏览器网络代理(8080端口已被tomcat占用改用8088端口,并把不使用代理的localhost以及127.0.0.1删掉):
- 打开burpsuite,设置proxy(保证与浏览器的设置一致):
- 点击浏览器界面里的edit:
Payload代码如丅所示其中核心部分为红圈圈出来的部分:
等价于命令touch /tmp/test,会在tmp目录下创建一个叫test的文件查看tmp目录,发现有test文件测试成功:
分析源码鈳知,首先确定系统(windows或者linux)针对不同的系统定义了command命令:ping一下本机
然后获取主机地址,将文件中写好的payload写入请求包
将请求包发送给主機分析得到的回复,如果执行了命令command则说明存在漏洞: