想象一下,你有一个复杂的玩具(对象),为了方便存放,你把它拆成零件(序列化)。当你需要玩的时候,再把零件拼回去(反序列化)。
-
读取敏感文件:/etc/passwd、数据库配置文件。
-
执行系统命令:删除文件、植入后门。
-
反弹Shell:完全控制服务器。
-
Java:ObjectInputStream.readObject()。
-
PHP:unserialize()。
-
Python:pickle.loads()。
-
.NET:BinaryFormatter.Deserialize()。
1、经典案例:Apache Commons Collections(CC链)
攻击流程:
-
构造恶意序列化数据。
-
触发反序列化,执行任意代码。
2、PHP反序列化
利用链:魔术方法__wakeup()、__destruct()。
3、Python反序列化漏洞
利用链:__reduce__魔术方法
1、禁用危险函数。
2、输入验证:白名单校验。
3、系统层:沙箱隔离。
某云平台漏洞
漏洞点:Kubernetes API未过滤反序列化数据。
后果:删除了生产环境所有容器,导致全球服务中断6小时。
某网站过滤了所有非数字和.字符,如何执行Linux系统中的id命令?
《网安60秒丨JWT攻击》
原文始发于微信公众号(小白学安全):网安60秒丨反序列化漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论