反序列化漏洞-PHP

访客3年前黑客资讯1072

序列化

是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。[将状态信息保存为字符串]

反序列化

反序列化就是再将这个状态信息拿出来使用(重新再转化为对象或者其他的)[将字符串转化为状态信息]

特殊写法

<?=$todo>相当于<?php ? echo $todo?>

常见函数

__FILE__ ? ? 获取当前文件路径
show_source() ? ?显示文件源码
print_r() ? ?可以输出非字符串

常见魔术 ***

__construct() ? ? 对象创建时(new)自动调用,但在unserialize()时不会自动调用
__destruct() ? ? ? 对象销毁时自动调用
__wakeup() ? ? ? ?使用unserialize()函数时自动调用
__toString() ? ?当对象被当作字符串输出时自动调用

flag in https://www.freebuf.com/articles/web/flag.php

<?php
Class readme{
? public function __toString()
? {
? ? ? return highlight_file('Readme.txt', true).highlight_file($this->source, true);
? }
}
if(isset($_GET['source'])){
? $s=new readme();
? $s->source=__FILE__;
? echo $s;
? exit;
}
//$todos=[];
if(isset($_COOKIE['todos'])){
? $c=$_COOKIE['todos'];
? $h=substr($c, 0, 32);
? $m=substr($c, 32);
? if(md5($m)===$h){
? ? ? $todos=unserialize($m);
? }
}
if(isset($_POST['text'])){
? $todo=$_POST['text'];
? $todos[]=$todo;
? $m=serialize($todos);
? $h=md5($m);
? setcookie('todos', $h.$m);
? header('Location: '.$_SERVER['REQUEST_URI']);
? exit;
}
?>

<html>
<head>
</head>

<h1>Readme</h1>
<a href="https://www.freebuf.com/articles/web/?source"><h2>Check Code</h2></a>
<ul>
<?php foreach($todos as $todo):?>
? <li><?=$todo?></li>
<?php endforeach;?>
</ul>

<form method="post" href="https://www.freebuf.com/articles/web/.">
? <textarea name="text"></textarea>
? <input type="submit" value="store">
</form>

首先定义了一个类,里面的_toString()是一个魔术 *** ,
表示将Readme.txt和source里面的代码拼接在一起,并高亮显示。
判断get传参中是否有source字符串,
再创建一个readme类的对象s,并将当前文件路径的值,赋值给变量s的参数source,
最后输入s。
判断cookie传参中是否有todos字符串,
如果有将cookie传参的todos字符串赋给变量c,
变量h表示截取变量c从开始到第32位的字符串,
变量m表示变量c 32位以后构成的字符串,
当变量m进行md5加密后的值等于变量h时,输出反序列化的变量m。
表示遍历输出todos,会触发_toString() *** ,
Readme.txt文件是写死的,只有变量source是可控的,
因此可以通过将FILE改为flag.php来返回flag.php的内容。

相关文章

秒视(眇视)

眇视释义:1.偏盲,用一只眼看。语本《易·履》:“眇能视。”宋晁补之《梦觌赋》:“惟一盲而两默兮,与目蓱为何禨;岂眇视不足与明兮,蓱非寄而。 没看过.不过字面的意思很简单:眇,就是代表不清楚,有浩瀚、...

怎么看闺蜜删除的手机短信内容吗

现在的孩子的生活都还是比较幸福的,不过越幸福的孩子皮肤越娇嫩,越容易受到冬天的寒冷气温的摧残,孩子的肌肤也越容易冻伤。不过孩子冻伤其实是小问题,但是如何根治冻伤呢,孩子冻疮好了又长,年年复发怎么办呢,...

随着今年公共卫生事件的爆发,不少医药企业又重新进入了大众的视野

伴随着2020年公共卫生服务恶性事件的暴发,许多 医药行业又再次进入了大家的视线当中。终究在本次的突发事件之中,这种医药行业也算作作出了非常大的奉献,这也促使许多 人到意识上逐渐再次“思考”这种以前不...

个体户经营范围有哪些?最全的个体户经营范围

个体户经营范围有哪些?最全的个体户经营范围

个体户经营范围是企业可以从事的生产经营与服务项目。它反映的是企业业务活动的内容和生产经营方向,是企业业务活动范围的法律界限。初次注册企业,不知道如何确定个体户经营范围时,可以直接参考行业内同类企业...

最好的cpu型号及价格(cpu型号含义图)

最好的cpu型号及价格(cpu型号含义图)  想必现在一些研究过手机行业的网友都会知道手机芯片生产巨头高通,而Snapdragon(即Snapdragon)是高通推出的高度集成的“一体机”移动处理器...

黑客帝国矩阵重启迅雷(黑客帝国重访矩阵免费观看)

黑客帝国矩阵重启迅雷(黑客帝国重访矩阵免费观看)

黑客帝国3:矩阵革命高清完整版下载地址 《黑客帝国3:矩阵革命》(The Matrix Revolutions)是一部好莱坞的科幻电影,在2003年上映。由沃卓斯基兄弟执导,基努·里维斯、劳伦斯·菲什...