码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-02-09 13:27:32      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:error   one   tostring   unset   invoke   private   变量   static   set   

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

漏洞成因:
反序列化对象中存在魔术方法,而且魔术方法中的代码可以被控制,漏洞根据不同的代码可以导致各种攻击,如代码注入,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!!!"即可

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

标签:error   one   tostring   unset   invoke   private   变量   static   set   

原文地址:https://www.cnblogs.com/Hydraxx/p/10357335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!