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

已经成功复现

相关推荐
Flynt3 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
冬奇Lab7 天前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
Aphasia31111 天前
VPN 与内网穿透
安全
Mr_愚人派12 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
DaLi Yao12 天前
【无标题】
人工智能·安全
Alsn8612 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院12 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智12 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest12 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_12 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化