【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=

已经成功复现

相关推荐
C澒5 小时前
系统初始化成功率下降排查实践
前端·安全·运维开发
只是懒得想了5 小时前
C++实现密码破解工具:从MD5暴力破解到现代哈希安全实践
c++·算法·安全·哈希算法
云边云科技_云网融合5 小时前
AIoT智能物联网平台:架构解析与边缘应用新图景
大数据·网络·人工智能·安全
若风的雨5 小时前
NCCL 怎么解决rdma 网卡本地send的时候需要对端recv要准备好的问题,或者mpi 怎么解决的?
网络
C澒5 小时前
面单打印服务的监控检查事项
前端·后端·安全·运维开发·交通物流
运维有小邓@5 小时前
生物制药企业 AD 域管理破局:合规 · 效率 · 安全三维解决方案
人工智能·安全
大力财经5 小时前
喜茶2025年批量重装130多家门店
安全
青岛前景互联信息技术有限公司5 小时前
政策支撑:应急部推动化工园区安全风险智能化管控平台有效应用!
大数据·人工智能·安全
珑哥说自养号采购5 小时前
TEMU采购下单,卖家如何搭建安全的环境?
安全
浩浩测试一下5 小时前
DDOS 应急响应Linux防火墙 Iptable 使用方式方法
linux·网络·安全·web安全·网络安全·系统安全·ddos