setParameters 经过一系列调用,最终使用 ognl.Ognl#setValue 对请求上下文进行赋值,即通过请求参数实现调用 Action 中定义的 setter 设置对应 POJO 对象的值,从而完成从 HTTP 到 Java 的参数绑定
也就是说我们可以通过控制传入参数来绑定Action中对应的属性
可以看到,当setUploadFileName被调用了两次,且第二次被重新赋值为目录穿越值
具体的赋值逻辑在OGNL中
ognl.OgnlRuntime#getDeclaredMethods
这里涉及到赋值顺序的问题,
渗透破解
拿站点权限提权
APP渗透
咨询:
@xuanyun5