免费发布信息
当前位置:APP交易 > 热点资讯 > app交易 >  入门JAVA反序列化必读

入门JAVA反序列化必读

发表时间:2021-04-25 15:59:48  来源:红帽社区  浏览:次   【】【】【
红帽社区是一个垂直网络安全社区,融合“红帽先锋”正能量精神,每日分享最新安全资讯,提供安全问答、靶场、众测、漏洞库等功能,是网络安全爱好者学习、交流的优质社区。

一则故事

文章主要面向准备入门的同学。咱们先来看一则小故事,指挥官的发报方式被敌台截获;敌台第一次伪装发报(载体),收报人员执行炸毁商场(执行函数),结果上了新闻(显式回显)。指挥官更换方式为卫星通讯(载体),但是因为有内鬼敌人分析(开源代码分析)传输方式,敌台第二次伪装发报(载体),收信人偷走机密资料(执行函数),送到指定地点(隐式回显)。

反序列化三个主要部分

通过故事咱们能看出,反序列化RCE分为三个部分,载体、执行函数、回显。载体包括协议、加解密算法等等。执行函数则是通过载体后的反序列化函数。回显则分为显式回显和隐式回显,显式回显例如Webshell、HTTP response body、图片隐写,隐式回显例如RMI、URLDNS等等。

如何去学习

在了解基本构成之后,按照顺序找相关的部分,然后拼起来即可。
载体:
载体普遍存在一些大型JAVA项目之中,例如Apache Software Foundation的一堆。

执行函数:
在执行函数阶段,反序列普遍使用ObjectInputStream,当然如果你看到名字不同,可能是经过封装和继承。

FileInputStream fis = new FileInputStream("");
ObjectInputStream ois = new ObjectInputStream(fis);

显示回显:

1、文件写入
2、HTTP response body
3、延迟
4、HTTP banner
5、图片隐写
...

隐式回显:

1、RMI
2、URLDNS
3、LADP
4、JNDI
...

参考案例

载体部和执行函数分参考大佬们的文章,回显参考https://github.com/wh1t3p1g/ysomap/tree/master/core/src/main/java/ysomap/core/payload。
剩下的步骤,看代码!读代码!理解代码!


文章来源:https://www.freebuf.com/articles/web/267623.html


责任编辑:
声明:本平台发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。

德品

1377 678 6470