• php代码审计9审计反序列化漏洞


    序列化与反序列化:
    序列化:把对象转换为字节序列的过程称为对象的序列化
    反序列化:把字节序列恢复为对象的过程称为对象的反序列化

    漏洞成因:
    反序列化对象中存在魔术方法,而且魔术方法中的代码可以被控制,漏洞根据不同的代码可以导致各种攻击,如代码注入,sql注入,目录遍历等等

    序列化的不同结果
    public:
    private:
    protect:

    漏洞本质:unserialize函数的变量可控,php文件中存在可利用的类,类中有魔术方法

    魔术方法:
    _construc(),_destruct()
    _call(),_callStatic()
    _get(),_set()
    _isset(),_unset()
    _sleep(),_wakeup()
    _toString()
    _invoke()
    _set_state()
    _clone()
    _debuginfo()

    代码:
    <?php
    error_reporting(0);
    include "flag.php";
    $KEY = "D0g3!!!";
    $str = $_GET['str'];
    if (unserialize($str) === "$KEY")
    {
        echo "$flag";
    }
    show_source(__FILE__);

    直接上传s:7:"D0g3!!!"即可

    友情链接 http://www.cnblogs.com/klionsec

                   http://www.feiyusafe.cn

  • 相关阅读:
    Java IO: 读取classpath资源
    Java IO: Reader和Writer
    Java IO: 读写zip文件
    OpenFlow运行机制总结
    OpenFlow流表概述
    Java日志系统(学习总结)
    卷积神经网络重要回顾
    Java Servlet学习笔记
    fragment实例
    Fragment应用
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/10357335.html
Copyright © 2020-2023  润新知