【springrce】

Spring动态参数绑定

自动赋值的调用链路:

复制代码
Contry.getProvince()
  - Province.getCity()
    - City.getDistrict()
      -- District.setDistrictName()

PropertyDescriptor

JDK自带

Java Bean PropertyDescriptor

作用:自动调用类对象的getXXX/setXXX方法,进行取值和赋值

BeanWrapperImpl

Spring自带

BeanWrapperImpl

作用:对Spring容器中管理的对象,自动调用get/set方法,进行取值和赋值

access_log属性

server.xml

org.apache.catalina.valves.AccessLogValve 对象

  • directory: access_log文件输出目录

  • prefix: access_log文件名前缀

  • suffix: access_log文件名后缀

  • pattern: access_log文件内容格式

  • fileDateFormat: access_log文件名日期后缀,默认为.yyyy-MM-dd

mvn clean package打包

在本机找到war包

粘贴到这个路径,并改名为ROOT.war,到bin目录下点击startup.bat启动tomcat,可以看到webapps下生成了ROOT文件夹

根据spring的文件内容访问文件

java 复制代码
package com.wuya.controller;

import com.wuya.bean.addr.Country;
import com.wuya.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * 参数自动绑定方式,可以直接将HTTP参数的值赋值到对象属性中,而且支持多级
 */
@Controller
public class UserController {
    /**
     * 测试地址:http://localhost:8083/addUser?name=wuya&department.name=sec
     */
    @RequestMapping("/addUser")
    public @ResponseBody String addUser(User user) {
        System.out.println("HTTP参数自动赋值给对象属性:"+user.getName()+"----"+user.getDepartment().getName());
        return "test OK -- wuya";
    }

    /**
     * 测试地址:http://localhost:8083/addAddr?name=cn&province.city.district.name=yuelu
     */
    @RequestMapping("/addAddr")
    public @ResponseBody String addAddr(Country country) {
        System.out.println("HTTP参数自动赋值给对象属性(多级):"+country.getProvince().getCity().getDistrict().getName());
        return "multi test -- wuya";
    }
}

访问http://localhost:8083/addAddr?name=cn&province.city.district.name=yuelu

IDE 控制台会把 URL 里的请求参数,映射到接口方法入参(Country对象)的多级属性中,最终通过getter方法拿到了赋值后的属性值并打印出来yuelu

双击startup.bat启动tomcat。
ROOT.war会自动解压为ROOT文件夹。

访问:http://localhost:7299/addUser,能打开代表服务启动正常

启动exploit脚本,会看到ROOT下生成jsp文件

访问http://localhost:8083/wuya.jsp?cmd=

已经成功复现

相关推荐
JoyCong19981 天前
打破远程协助的安全信任困局,ToDesk AI审计功能自动操作留痕
网络·人工智能·科技·安全·电脑·远程工作
Mr.HeBoYan1 天前
一次持续三天才出现的丢包故障——深入解析 DPDK Memory Ordering、rte_ring 与 CPU Memory Barrier (下)
linux·网络·算法·架构·dpdk
yunwei371 天前
实证研究:AI Agent 规则需要上下文与分层强制执行
linux·安全·ai编程
kp000001 天前
System Prompt Leakage(系统提示词泄露)及安全防御
网络·安全·网络安全·信息安全·prompt·ai安全
许彰午1 天前
02-网络的抽象层
网络·智能路由器
ttod_qzstudio1 天前
【软考备考】计算机网络详解:OSI/TCP-IP 分层 + IP 子网划分,一篇拿下网络模块(附 10 道练习)
网络·tcp/ip·计算机网络·软考
Geek-Chow1 天前
A Practical Tour of AWS Networking: VPCs, Subnets, Gateways, and More
网络·aws
数据知道1 天前
网络地址转换(NAT)与安全:映射原理、打洞与内网暴露风险
网络·安全·智能路由器·内网安全
KaMeidebaby1 天前
卡梅德生物技术快报|原核膜蛋白表达优化实操手册,膜蛋白的纯化梯度洗脱完整流程
前端·网络·数据库·人工智能·算法
神奇霸王龙1 天前
可审计 Agent 对比:5 旗舰步骤回放
网络·图像处理·人工智能·python·ai·ai编程