web安全不安全的反序列、命令执行漏洞解析
1.不安全的反序列化
原理:
序列化即是把对象转变为字节流,存放在内存、文件数据库中,而反序列化即是把字节流转变为对象。该漏洞的原因出自于如果应用对恶意构造的用户输入的数据进行反序列化,这样就会产生非预期的对象,从而有可能产生远程代码执行。或者应用中存在可以在反序列化过程中或者之后被改变行为的类,则攻击者可以通过改变应用逻辑或者实现远程代码执行攻击。我们将其称为对象和数据结构攻击。
危害:
1.远程执行代码:攻击者可能会在序列化数据中注入恶意代码,并将其发送到受感染的应用程序。一旦反序列化,攻击者就可以远程控制应用程序的执行,可能导致整个系统被完全接管。
2.数据泄露:攻击者可以在序列化数据中注入想要泄露的数据,如用户凭据或其他机密信息。一旦这些数据被反序列化,攻击者就可以接触这些敏感信息并进行不良用途。
3.拒绝服务攻击:攻击者可以向目标应用程序发送大量的恶意序列化数据,以导致应用程序崩溃或停止响应,从而拒绝服务攻击。
4.身份劫持:攻击者可以使用反序列化漏洞,通过窃取和使用受信任的用户凭据来冒充受信任的用户,并对应用程序进行未授权的操作。
5.恶意应用程序附加:攻击者可以注入恶意应用程序代码,使其附加到反序列化的对象上并被执行,从而导致任何类型的攻击,如间谍软件或恶意挖矿软件等。
防御手段:
1.最安全的方法是不接受来自不受信源的序列化对象,或使用只允许原始数据类型的序列化媒体
2.反序列化之前,先进行严格的数据类型校验。由于校验规则容易被攻击者探索出来,进而