HACKTHEBOX——Help

nmap
可以看到对外开放了22,80,3000端口

可以看到80端口和3000端口都运行着http服务,先从web着手切入
TCP/80
访问web提示无法连接help.htb,在/etc/hosts中写入IP与域名的映射

打开只是一个apache default页面,没什么好看的

使用gobuster扫描网站目录看看会不会有什么结果
gobuster http://10.10.10.121 /usr/share/wordlists/dirb/big.txt -o dir80.log

support目录跳转至helpdeskz界面

检索发现该项目1.0.2版本存在漏洞

在github中发现软件存在README.md文件

拼接url访问时,下载了相关文件,阅读发现md文件中显示该版本为1.0.2

HelpDeskZ 1.0.2 - Arbitrary File Upload
版本号暂时对上了,先看看该如何利用文件上传漏洞,阅读漏洞利用代码,介绍了漏洞如何利用,程序允许上传php文件,因为对上传的文件进行了重命名,但是重命名只是和时间进行了连接,所以如果利用上传文件的时间猜到改过的名字,并且知道上传路径的话,就可以获取到上传文件的url,从而访问url以解析php文件
The software in the default configuration allows upload for .php-Files ( ?!?! ). I think the developers thought it was no risk, because the filenames get "obfuscated" when they are uploaded. However, there is a weakness in the rename function of the uploaded file:
/controllers <https://github.com/evolutionscript/HelpDeskZ-1.0/tree/006662bb856e126a38f2bb76df44a2e4e3d37350/controllers>/*submit_ticket_controller.php - Line 141* $filename = md5($_FILES['attachment']['name'].time()).".".$ext;
So by guessing the time the file was uploaded, we can get RCE.
Steps to reproduce:
http://localhost/helpdeskz/?v=submit_ticket&action=displayForm
Enter anything in the mandatory fields, attach your phpshell.php, solve the captcha and submit your ticket.
Call this script with the base url of your HelpdeskZ-Installation and the name of the file you uploaded:
需要利用代码暴力破解找到文件上传url,代码如下

先尝试提交一个tiket,其他的都是随便填写,在附件中上传提前写好的php一句话木马


提交后页面显示文件不被允许,不用管它,运行上文中的exploit脚本即可,需要写入文件保存路径和上传文件名,一旦找到url,就会立马停止运行并将url打印出来
验证能否利用上传的shell
http://help.htb/support/uploads/tickets/a6f05daf9d5edc2b8df6a3752cc71a75.php

可以直接在kali中监听,然后在https://www.revshells.com/找一个合适的指令反弹一个shell即可

TCP/3000
访问3000端口时,显示如下,得到了一个名字Shiv,并提示需要给一个查询

查看headers,发现X-Powered-By标头表示服务器支持Express

在google搜索相关的东西,发现了一个GraphQL

尝试访问/graphql

而输入其他的则会报错

GraphQL 充当 REST API 的替代品。Rest API 要求客户端向 API 上的不同端点发送多个请求,以从后端数据库查询数据。使用 graphQL,你只需要发送一个请求来查询后端。这要简单得多,因为您不必向 API 发送多个请求,单个请求可用于收集所有必要的信息。
默认情况下graphQL 不实现身份验证,这是由开发人员实现的。这意味着默认情况下 graphQL 允许任何人查询它,任何敏感信息都将提供给未经身份验证的攻击者。
在https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/graphql中可以找到有关graphql的利用方式
拼接url查询,找到了username和password字段,尝试查询对应内容

构造如下url,找到了一组用户名和密码

在https://crackstation.net/中破解得到密码,使用用户名和密码可以登录helpdeskz

HelpDeskZ < 1.0.2 - (Authenticated) SQL Injection
在描述中写道,小于或等于1.0.2版本的程序存在sql注入漏洞,并且允许未授权访问下载文件
HelpDeskZ <= v1.0.2 suffers from an sql injection vulnerability that allow to retrieve administrator access data, and download unauthorized attachments.
首先需要登录系统并创建一个ticket,创建ticket如下所示

点击上传的附件,会将附件下载下来,parm[]=7之后添加and 1=1,数据包返回正常,显示文件中写入的内容,而在之后添加and 1=2数据包返回异常,页面显示如下图,可以初步判断该处存在sql注入点


将该数据包保存至桌面,使用sqlmap攻击数据库,使用命令sqlmap -r sql.txt -p param[] --batch

添加--dbs爆破数据库名得到数据库,之后就直接添加--dump爆破数据就好了,因为有很多表,而且users表中并没有需要的东西,直接选择support数据库,然后暴力破解,等待运行完成即可。
之前扫描存在22端口,将收集到的和猜测的用户名密码等做成字典,然后使用hydra爆破ssh,很简单就不演示了,得到用户名和密码组合help/Welcome1
cve-2017-16995
使用用户名和密码组合可以登录ssh,可以获取user的flag
查阅linux版本信息

搜索版本信息,发现一个本地提权漏洞

首先利用python的http服务,将.c文件上传至靶标

使用gcc编译exp.c,在运行得到的文件即可拿到root权限

over!

相关文章:
HACKTHEBOX——Help
nmap可以看到对外开放了22,80,3000端口可以看到80端口和3000端口都运行着http服务,先从web着手切入TCP/80访问web提示无法连接help.htb,在/etc/hosts中写入IP与域名的映射打开只是一个apache default页面,没什么好看的使用gobuster扫描网站目…...
Qt广告机客户端(下位机)
目录功能结构adClient.promain.cppadclient.h 客户端adclient.cpp 客户端addate.h 时间处理addate.cpp 时间处理adsocket.h 客户端Socket处理adsocket.cpp 客户端Socket处理weather.h 天气信息处理weather.cpp 天气信息处理rollmassege.h 滚动信息处理rollmassege.cpp 滚动信息…...
JavaScript新手学习手册-基础代码(二)
与上篇博客相接 一:函数: 案例:通过函数实现绝对值的输出 方法一: function absoluate(x){if(x>0){return x;}else{ return -x;}} 在控制台调用函数 方法二: var demo1 function(x){if(x>0){return x;}els…...
wireshark 抓包使用记录
文章目录前言wireshark 抓包使用记录一、wireshark的基础使用二、wireshark的常用功能1、开始混杂模式2、过滤器操作2.1、抓包过滤器2.2、显示过滤器3、时间格式显示4、统计流量图5、标记显示6、导出数据包7、增加、隐藏、删除显示列前言 如果您觉得有用的话,记得给…...
pd dataframe 读取处理 有合并单元格的excel方式
from pathlib import Path import openpyxl 拆分所有的合并单元格,并赋予合并之前的值。 由于openpyxl并没有提供拆分并填充的方法,所以使用该方法进行完成 def unmerge_and_fill_cells(worksheet): all_merged_cell_ranges list( worksheet.merged_…...
七,iperf3源代码分析:状态机及状态转换过程--->运行正向TCP单向测试时的服务端代码
本文目录一、测试用命令二、iperf3状态机中各个状态解析三、iperf3状态机迁移分析K-初始化测试对象(NA--->初始化状态):A-服务器端测试对象开始运行(初始化状态--->IPERF_START状态):B-建立控制连接(初始化状态-…...
【网络篇】----- 传输层协议 之 UDP(协议格式,协议特性和编程影响三方面详细分析)
文章目录 前言1、UDP协议2、协议格式 2.1、协议格式模型2.2、字段分析3.协议特性4.编程影响总结前言 1、UDP协议 UDP协议,又名数据报传输协议,是传输层协议之一!!! 在TCP/IP五层模型中,在传输层中ÿ…...
【基于STM32的多功能台灯控制】
基于STM32的多功能台灯控制 在之前一篇博文中已出过智能台灯相关的介绍,在这里对之前的模块以及功能上进行了优化和功能上的改进,需源码或实物可私【创作不易-拒绝白嫖】 功能说明 1、按键模式多功能台灯在设计上使用了4个按键分别做为 按键1模式的切换…...
Mac 编译x264源码No working C compiler found 错误
在mac上编译x264源码时,报错No working C compiler found 。网上找了一圈方案也无法解决 只能硬着头皮看configure这个脚本,通过一步一步抽丝拨茧终于是在mac上可以编译了。 这里只当记录一下,为后续同学遇到同样问题提供一个辅助解决方案。…...
如何有效地降低软件开发风险?
1、科学分析风险 高风险自动预警 一般对风险进行科学分析,主要从3个维度进行划分:影响的严重性、发生的可能性、产生的影响性。 根据风险对项目的影响程度,从3个维度将其划分5个等级:很低、比较低、中等、比较高、很高。这样我们能…...
【python】剑指offer代码大集合2
本文是【python】剑指offer代码大集合的姊妹篇,用于完善标识todo的代码! 刷题网站:https://leetcode.cn/problem-list/xb9nqhhg/ 剑指 Offer 14- I. 剪绳子 https://leetcode.cn/problems/jian-sheng-zi-lcof/ todo 剑指 Offer 14- II. 剪绳子 II https://leetcode.cn/pr…...
经纬恒润再传佳讯,斩获大奖
阳春二月,经纬恒润屡传佳讯,凭借产品、研发等多方面的出色表现,再次斩获东风柳汽“优秀供应商”和广汽传祺“科技创新奖”,以实力印证良好口碑,不忘初心,载誉而行! 东风柳汽:优秀供…...
说说转义字符 “\”
转义字符-escape character character 表示字符,包含两层含义, 1.字母 2.符号 转义: 改变含义 字符: 字母、符号 转义字符: 把 字母、符号 的含义改变了注意:这里有 2 个常常被忽视、忽略、轻视的转义规则&…...
2023高质量设计竞赛汇总,想证明自己实力的快来
对于设计师来说,参加设计比赛不仅能够提升自己的设计能力,也是一条证明实力最好的捷径。小编也收集整理了不少近期设计大赛,分别标注了截止日期和官网等,宝子们记得码住收藏,赶紧SHOW起来!优酷X站酷 一千零…...
MongoDB与MySQL有区别吗?用一个表格跟你说明
MongoDB MySQL 数据库模型 非关系型 关系型 存储方式 虚拟内存持久化 不同引擎有不同存储方式 查询语句 独特MongoDB查询方式 传统SQL语句 架构特点 可通过副本集和分片实现高可用 常见有单点、M-S、MHA、MMM、Cluster等架构方式 数据处理方式 基于内存…...
ElasticSearch - 分布式文档索引、搜索、更新和删除文档的过程
文章目录1. 分布式文档存储1. 路由一个文档到一个分片中2. 主分片和副本分片如何交互3. 新建、索引和删除文档4. 取回一个文档5. 局部更新文档2. ElasticSearch相关问题1. 路由计算方式?2. 分片控制3. 分布式文档写入(索引)的过程?4. 分布式文档搜索的过…...
Python之re库用法细讲
文章目录前言一、使用 re 模块的前期准备工作二、使用 re 模块匹配字符串1. 使用 match() 方法进行匹配2. 使用 search() 方法进行匹配3. 使用 findall() 方法进行匹配三、使用 re 模块替换字符串四、使用 re 模块分割字符串总结前言 在之前的博客中我们学习了【正则表达式】的…...
MATLAB | 如何绘制github同款日历热力图
应粉丝要求,出一个类似于github热图的日历热力图,大概长这样: 依旧工具函数放在文末,如有bug请反馈并去gitee下载更新版。 使用教程 使用方式有以下几种会慢慢讲到: heatmapDT(Year,T,V)heatmapDT(Year,T,V,MonLim)h…...
认识适配器模式
适配器模式 一、定义 在不修改原来代码的情况下,适配器模式使接口不兼容的那些类可以一起工作。 二、适配器结构 1、Target(目标抽象类):目标抽象类定义客户所需的接口,可以是一个抽象类或者接口,也可以…...
JavaSe第6次笔记
1.不建议使用c语言的数组的表示方法。 2.二维数组表示方法 3.数组整体初始化时,只能在定义时初始化。 int[] array; array new int[]{1, 2}; 4. boolean类型数组,默认值是false,String类型数组,默认是null,其它是…...
终极指南:如何用sndcpy将Android音频无损转发到电脑
终极指南:如何用sndcpy将Android音频无损转发到电脑 【免费下载链接】sndcpy Android audio forwarding PoC (scrcpy, but for audio) 项目地址: https://gitcode.com/gh_mirrors/sn/sndcpy 你是否曾经想在电脑上收听手机上的音乐、播客或游戏音频࿱…...
3分钟拯救你的B站缓存视频:m4s-converter让珍贵回忆永不消失
3分钟拯救你的B站缓存视频:m4s-converter让珍贵回忆永不消失 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过这样的困扰…...
Python Redis 缓存策略实战:提升应用性能的最佳实践
Python Redis 缓存策略实战:提升应用性能的最佳实践 引言 在后端开发中,缓存是提升系统性能的关键技术。作为一名从Rust转向Python的开发者,我深刻认识到缓存策略在高并发场景下的重要性。Redis作为一款高性能的内存数据库,已成为…...
Tiny AI Client:零依赖、轻量化的AI API调用库设计与实战
1. 项目概述与核心价值最近在折腾AI应用本地化部署和轻量化客户端时,发现了一个挺有意思的项目——piEsposito/tiny-ai-client。这名字起得就很直白,“tiny”意味着小巧,“ai-client”点明了它是一个AI客户端。乍一看,你可能会觉得…...
Musa并行搜索工具:重塑信息检索工作流,提升多源对比效率
1. 项目概述:重新定义你的搜索工作流如果你和我一样,每天的工作都离不开在浏览器里反复横跳——为了一个技术问题,先在 Google 搜一遍,再去 Stack Overflow 看看有没有新答案,接着打开 ChatGPT 问问它的看法࿰…...
避坑指南:在CentOS 7.5上成功安装Ansys 19.2的完整流程(附字体问题终极解决方案)
CentOS 7.5与Ansys 19.2黄金组合:工业仿真环境搭建实战手册 在工程仿真领域,Ansys作为行业标准工具链的核心组件,其Linux环境部署一直是技术人员的痛点。经过长达三个月的多版本交叉测试,我们意外发现CentOS 7.5与Ansys 19.2的组合…...
基于大语言模型的网页自动化智能体:Elsa OpenClaw 实战指南
1. 项目概述与核心价值 最近在折腾一些自动化流程,发现很多重复性的网页操作,比如数据抓取、表单填写、状态监控,手动来做不仅耗时,还容易出错。于是我开始寻找一个能真正理解网页结构、像人一样操作浏览器的工具。市面上有不少自…...
VLSI时代下74系列离散逻辑芯片的现代应用与设计实践
1. 从“胶水逻辑”到“系统粘合剂”:离散逻辑芯片的现代生存法则 在今天的数字电路设计领域,提起“7400系列”或者“74HC04”,很多年轻工程师的第一反应可能是博物馆里的古董,或者教科书上的历史章节。主流叙事已经被SoC、FPGA和高…...
Zotero Duplicates Merger:5分钟搞定文献库重复问题
Zotero Duplicates Merger:5分钟搞定文献库重复问题 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为Zotero文献库中堆积如山…...
Gemini在Android Automotive OS上的首次深度集成(车规级低延迟通信协议逆向分析+CAN总线AI指令映射表)
更多请点击: https://intelliparadigm.com 第一章:Gemini在Android Automotive OS上的首次深度集成(车规级低延迟通信协议逆向分析CAN总线AI指令映射表) Google Gemini模型通过定制化Android Automotive OS(AAOS&…...
