weblogic之cve-2015-4852分析(重写) (5)

weblogic之cve-2015-4852分析(重写)

所以我们知道它会跳到ChunkedDataInputStream#read()方法中。我们F7跟进去查看

weblogic之cve-2015-4852分析(重写)

weblogic之cve-2015-4852分析(重写)

这边我们可以思考是不是这些序列化数据的大小呢?

img

img

因为是false,所以直接跳过这个条件,进入了return;

weblogic之cve-2015-4852分析(重写)

然后返回给了var2中

weblogic之cve-2015-4852分析(重写)

此处通过switch对var2值进行判断,此处为0,所以进入了第一个条件语句

return (new InboundMsgAbbrev.ServerChannelInputStream(var1)).readObject();

那么我们先进入InboundMsgAbbrev#ServerChannelInputStream()中查看虚实

weblogic之cve-2015-4852分析(重写)

进入后,继续深入getServerChannel()

weblogic之cve-2015-4852分析(重写)

this.connection之中存储着一些连接的数据,如地址,端口等等,然后调用getChannel(),这边是处理T3协议的socket地方;我们F7跟进查看

weblogic之cve-2015-4852分析(重写)

我们进入之后可以看到还有静态代码块,而这静态代码块则是服务器返回过来的版本,我们继续看看

weblogic之cve-2015-4852分析(重写)

随后会return 回这串地址,端口信息。我们再f8返回

weblogic之cve-2015-4852分析(重写)

我们跳了三层,返回到之前的路口点,那么接下来我们就是进入InboundMsgAbbrev#readObject()中

weblogic之cve-2015-4852分析(重写)

此处我们跳到了read()当中,因为前面的不重要,我们也不需要深究了

weblogic之cve-2015-4852分析(重写)

这边再次进入到父类中的read()方法中,我们依旧进入到了ChunkedInputStream# read(),该方法主要是读取head数据也就是我们发送的包

weblogic之cve-2015-4852分析(重写)

随后继续返回到了上一步

weblogic之cve-2015-4852分析(重写)

几次的F7和F8后,进入了read(byte[] var1, int var2, int var3)中

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfyyx.html