栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

yso-cc5

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

yso-cc5

yso-cc5
1.从入口看

关键类BadAttributevalueExpException。

BadAttributevalueExpException类的readobject,调用 val = valObj.toString()
val已被赋值为TiedMapEntry类,toString方法如下:

 public String toString() {
        return this.getKey() + "=" + this.getValue();
    }
    //调用getValue()方法如下
        public Object getValue() {
        return this.map.get(this.key);
    }
    //this.map 被赋值为lazyMap ,
    //	final Map lazyMap = LazyMap.decorate(innerMap, transformerChain);
lazyMap .class中方法实现如下:
     public static Map decorate(Map map, Transformer factory) {
        return new LazyMap(map, factory);
    }

    protected LazyMap(Map map, Factory factory) {
        super(map);
        if (factory == null) {
            throw new IllegalArgumentException("Factory must not be null");
        } else {
            this.factory = FactoryTransformer.getInstance(factory);
        }
    }
    

LazyMap的get方法,触发了transform方法。

    public Object get(Object key) {
        if (!super.map.containsKey(key)) {
            Object value = this.factory.transform(key);
            super.map.put(key, value);
            return value;
        } else {
            return super.map.get(key);
        }
    }

this.factory被赋值transform链,触发
jdk7中测试发现BadAttributevalueExpException类的tostring方法,无法触发漏洞

 public String toString()  {
      return "BadAttributevalueException: " + val;
  }
  ```
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/337223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号