HackTheBox-Machines--Lazy

2024-05-29 16:12
文章标签 lazy machines hackthebox

本文主要是介绍HackTheBox-Machines--Lazy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


Lazy测试过程

1 信息收集


1.端口扫描

发现 SSH(22)、HTTP(80)端口

nmap -sC -sV 10.129.159.51

在这里插入图片描述

2.访问 80 端口

在这里插入图片描述

  1.页面中存在注册功能,测试注册功能

在这里插入图片描述

  页面返回登录页面及用户名

在这里插入图片描述

  使用burpsuite观察注册请求 /register.php

在这里插入图片描述

  2.cookie 测试

  登录请求 /index.php,观察cookie,auth不是标准的 PHP 会话管理 cookie,测试auth

在这里插入图片描述

  测试auth,在更改auth的值后,响应显示 Invalid padding,根据响应,猜测可能存在 padding 漏洞

在这里插入图片描述


2 padding 攻击


1.padding oracle攻击技术

  padding oracle攻击技术 是指使用密文的填充验证信息来进行解密的攻击方法。密码学中,可变长度的明文信息通常需要经填充后才能兼容基础的密码原语。

  攻击者可以拦截加密算法加密的消息。通过padding oracle攻击技术,在不清楚 key 和 IV 的前提下解密任意给定的密文。

  使用padbuster工具进行测试:

http://10.129.139.45/index.php
[EncryptedSample] -- Joak7LI%2Bz9Qvv4hc9LhTYxDOk%2FyzkSyT一个有效的 cookie
[BlockSize] - 8,一般为 816-cookies auth=Joak7LI%2Bz9Qvv4hc9LhTYxDOk%2FyzkSyT -- 向 padbuster 传递数据的存放位置
-encoding 0 -- base64
padbuster http://10.129.139.45/index.php Joak7LI%2Bz9Qvv4hc9LhTYxDOk%2FyzkSyT 8 -cookies auth=Joak7LI%2Bz9Qvv4hc9LhTYxDOk%2FyzkSyT encoding 0

在这里插入图片描述

在这里插入图片描述

  使用 padbuster工具加密admin

padbuster http://10.129.139.45/index.php Joak7LI%2Bz9Qvv4hc9LhTYxDOk%2FyzkSyT 8 -cookies auth=Joak7LI%2Bz9Qvv4hc9LhTYxDOk%2FyzkSyT encoding 0 -plaintext user=admin

在这里插入图片描述

在这里插入图片描述


获取权限


  获取到新的cookie,使用cookie进行登录,替换cookie,刷新/index.php

BAitGdYuupMjA3gl1aFoOwAAAAAAAAAA

在这里插入图片描述

  使用admin账户登录成功,页面URI显示用户为 mitsos,及一个RSA私钥

在这里插入图片描述

SSH登录

chmod 600 id_rsa 
ssh -i id_rsa mitsos@10.129.139.45

在这里插入图片描述


3 权限提升


在这里插入图片描述

  在 mitsos 的主目录中有一个 根 SUID 二进制文件backup ,以及 cat 命令,运行backup,它输出的内容类似于 /etc/shadow,该文件只能由 root 读取

在这里插入图片描述
在这里插入图片描述

  因为suid程序正在调用cat命令,我们可以编辑cat使用sudo权限打开/bin/sh

在这里插入图片描述

这篇关于HackTheBox-Machines--Lazy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014004

相关文章

【POJ 2970】The lazy programmer(优先队列+贪心)

这题范围不会超long long全用int存就行了 贪心的话,每次把一个任务加入到队列,如果不能在指定时间完成就到前面找a最小的一个任务补偿时间,当一个任务完成时间等于0的时候这个任务就不再放回队列 #include<cstdio>#include<queue>#include<algorithm>#include<cstring>using namespace std;//ty

HarmonyOS 延迟加载(lazy import)

功能特性 延迟加载特性可使待加载文件在冷启动阶段不被加载,直至应用程序实际运行过程中需要用到这些组件时,才按需同步加载相关文件,从而缩短应用冷启动耗时。 使用方式 文件的调用点,可以直接增加lazy标识。 但需要注意的是,后续执行的加载是同步加载,有可能会阻塞任务执行(如点击任务,触发了延迟加载,那么运行时会去执行冷启动未加载的文件,从而增加耗时),因此是否使用lazy需要开发者自行评估。

从源码角度分析 Kotlin by lazy 的实现

by lazy 的作用 延迟属性(lazy properties) 是 Kotlin 标准库中的标准委托之一,可以通过 by lazy 来实现。 其中,lazy() 是一个函数,可以接受一个 Lambda 表达式作为参数,第一次调用时会执行 Lambda 表达式,以后调用该属性会返回之前的结果。 例如下面的代码: val str: String by lazy{println("aaron

react的use函数可搭配Suspense与lazy

use 是一个用于解析 React v18 及以下版本的 promise 状态的 polyfill hook。请注意,它只实现了消费 promise 的能力。 参考资料 https://www.reactuse.com/zh-Hans/state/usehttps://zh-hans.react.dev/reference/react/use#dealing-with-rejected-pro

RabbitMQ之惰性队列(Lazy Queue)

欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。 欢迎跳转到本文的原文链接:https://honeypps.com/mq/rabbitmq-analysis-of-lazy-queue/ RabbitMQ从3.6.0版本开始引入了惰性队列(Lazy Queue)的概念。惰性队列会尽可能的将消息存入

算法——支持向量机(support vector machines,SVM)

简介:个人学习分享,如有错误,欢迎批评指正 支持向量机(Support Vector Machine, SVM)是一种监督学习算法,广泛用于分类任务,也可以用于回归和异常检测等问题。SVM的核心思想是通过在特征空间中找到一个最优的分隔超平面,将不同类别的数据点分开,使得各类别之间的间隔最大化。 一、SVM的基本概念 1. 超平面 在二维空间中,超平面就是一条直线,而在高维空间中,超平面

Soul Machines——AI生成虚拟主播或虚拟人,模拟真人交互

一、Soul Machines介绍 Soul Machines 致力于开发高度逼真的虚拟人和数字化身,通过结合人工智能、计算机图形学和面部动画技术,打造具有情感交互能力的虚拟角色。这些虚拟角色可以应用于客户服务、教育、健康护理等领域,为用户提供更具人性化和互动性的体验。 二、Soul Machines 的核心功能 1. 虚拟数字人 虚拟数字人是 Soul Machines 的核心产品,这些

vue.js的设计与实现(响应系统 计算属性computed和lazy)

文章目录 概要computed和lazy小结 概要 前面我们写完了effect(依赖收集)函数。这一章我们就通过之前写完的effect来实现computed(计算属性) computed和lazy 在vue3中,computed是经常使用的,现在我们就来用effect来实现它,在此之前,我们先来实现关于懒执行的effect,我们先来举一个例子: effect(()=>

scala 中的def/val/lazy val/的区别,call-by-value/call-by-name

本文简述在Scala中def、val和lazy val的区别 关于val、lazy val和def的概念在此不多说,假设在 ~/Desktop 目录下有有一个 test.dat 文件,内容为: content 1 直接来看在REPL中的效果: 使用val 如果 ~/Desktop/test.dat 文件不存在 scala> val content1 = Source.fr

spring容器的懒加载lazy-init设置

默认情况下,spring的IOC容器中lazy-init是false的,即没有打开懒加载模式。  如果你没有看到这个lazy-init 的参数设置就说明是false啦。  那么什么是懒加载?  懒加载---就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时候,才把这个对象实例化到容器中。  例如我有如下的