序列化和反序列化
序列化(Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。
反序列化:从存储区中读取该数据,并将其还原为对象的过程,成为反序列化。
小例子:
使用writeObject()函数对person对象进行序列化,并把序列化后的字符串存入文件d:/person.txt中
使用readObject()对文件d:/person.txt中序列化后的字符串进行反序列化操作并返回对象person
注意:
下方的特征可以作为序列化的标志参考:
一段数据以rO0AB开头,你基本可以确定这串就是JAVA序列化base64加密的数据。
或者如果以aced开头,那么他就是这一段java序列化的16进制。|
思考:
如果目标会把反序列化后的结果当成系统命令执行,此时反序列化的内容也是可控的,但是目标网站无回显(不会显示你执行命令后的结果)此时应该怎么办?可以尝试反弹shell
反弹shell:将对方执行命令的会话结果,返回到另一台服务器上进行显示