• 反序列化相关


    1.序列化serialize()

    把一个对象变成可以传输的字符串,目的就是为了方便传输。

     

    2. 反序列化unserialize()

     把被序列化的字符串还原为对象

     java
     将java对象转化为字节序列的过程,反序列化的过程就是
    1.创建一个对象输出流
    2.通过对象输出流的readobject()方法来读取对象

    3.反序列化漏洞产生的原理 

    序列化和反序列化本身都没有漏洞,但是如果反序列化的内容用户可以控制,且后台使用了php中的魔法函数,就会导致安全问题

     产生条件

    1.参数给变量未经过滤,反序列化的内容是可控的

    2.PHP使用了魔法函数

    常见的魔法函数

    _construct()   一个对象创建时被调用

    _destruct()    一个对象销毁时被调用

    _tostring()     一个对象被当作一个字符串使用时

    _sleep()        对象被序列化之前运行

    _wakeup      在序列化之后立即被调用

    4.反序列化的漏洞实验 

    •  PHP反序列化漏洞验证

    O:1:"S":1:{s:4:"test";s:29:"";}

    • jboss反序列化漏洞验证

    dir /s  c:\*.jsp  查找路径

    C:\jboss\server\default\tmp\vfs\automount21f55fc396b809ae\jobfan.war-968075a27bcc5d18\test.jsp

    上传一句话木马jsp  的xxx.jsp

     可以在浏览器访问一下

    菜刀连接

                        

    • weblogic 反序列化漏洞验证

    http://10.0.0.139:7001/console/login/LoginForm.jsp  先打开

    扫描漏洞

    复现漏洞

    • 常见的反序列化漏洞

            Java 反序列化漏洞操作(CVE-2018-2628)、
            任意文件上传漏洞操作(CVE-2018-2894)、

            XML Decoder 反序列化漏洞操作(CVE-2017-10271)、

            SSRF 漏洞(需要安装Weblogic时选择UDDI组件)、

            反序列化漏洞(CVE-2019-2725、未授权访问)                

    •  fastjion反序列化漏洞

     判断
            通过构造错误的post请求,可以查看在返回包中是否含有fastjion这个字符串来判断 
            在安全设备上有这一行代码  prefix":"rmi ://ip:port/exploit"
    原理
            是阿里巴巴开发的一款json字符串和java对象进行序列化和反序列化的开源json解析库。fastion提供了autotype功能,在请求的过程中,我们可以在请求包中通过@type的值,来反序列化为指定的类型,而fastjion 在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类的问题。
    没有回显怎么办
    1.通过dnslog进行数据库外带,如果连不上网无法验证
    2.直接将命令执行结果写入到静态资源文件里,如HTML、js等,通过访问http访问就可以直接看到结果
    3.直接将命令执行结果回显请求POC的http响应中

    5.防御

    1.安全配置好php相关参数:通过Php.ini配置文件里面有个disable_functions = 配置,这个禁止某些php函数,服务器便是用这个来禁止php的执行命令函数
    (1)执行系统命令: assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)
    (2)代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13
    2.升级中间件
    3.严格控制传入变量,严谨使用魔法函数 

  • 相关阅读:
    Spring相关
    TypeScrip6
    计算机网络笔记4 网络层
    Python中的文件操作和异常处理
    箭头函数总结
    【Unity实战100例】文件压缩Zip和ZIP文件的解压
    可视化规则引擎
    BM25(Best Matching 25)算法基本思想
    简单的介绍一下:柔性数组
    基于SSM的小区疫情防控管理系统设计与实现
  • 原文地址:https://blog.csdn.net/2301_79194110/article/details/133301199