php代码审计9审计反序列化漏洞
Posted XxSec
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!!!"即可
以上是关于php代码审计9审计反序列化漏洞的主要内容,如果未能解决你的问题,请参考以下文章
16-PHP代码审计——Typecho1.0.14反序列化漏洞