【Hackthebox 中英 Write-Up】Web Request | 分析 HTTP 请求和响应

欢迎来到我的writeup分享!我希望大家不要只关注结果或答案,而是通过耐心阅读,尝试逆向工程理解背后的运作原理。在这里,你不仅能找到解题的思路,还能学到更多与Hack The Box等平台相关的技术和技巧,期待与你们一起成长为更优秀的黑客!

在这里插入图片描述废话不多说,我们开始解题啦~


在这里插入图片描述

Objective | 目标

The goal of this task was to simulate user behavior, bypass the frontend interface, and interact directly with the backend to retrieve the flag by analyzing HTTP requests and responses.

目标是模拟用户行为,绕过前端界面,直接与后台交互,通过分析 HTTP 请求和响应获取 flag。


Environment Setup | 环境设置

  1. Target URL | 目标地址:
    http://94.237.62.184:57129/
  2. Credentials | 登录凭据:
    Username: admin
    Password: admin

Steps | 操作步骤

Step 1: Authentication via cURL | 使用 cURL 登录

Run the following command in the terminal to authenticate and verify the server is accessible:

在终端运行以下命令进行身份验证并确认服务器可访问:

curl -u admin:admin http://94.237.62.184:57129/

Explanation | 解释:

  • curl: Command-line tool for making HTTP requests.
    用于发送 HTTP 请求的命令行工具。
  • -u admin:admin: Sends the Basic Authentication credentials (admin and admin).
    使用 Basic Auth 方式发送用户名和密码。
  • http://94.237.62.184:57129/: The target URL to test server access.
    目标服务器的 URL。

Result | 结果: This verifies that the credentials are valid and the server is accessible.

验证凭据有效,并确认服务器可以访问。


Step 2: Inspect script.js for Search Functionality | 在 script.js 中检查搜索功能

  1. Open the browser and visit the target URL.
    打开浏览器并访问目标 URL:

    http://94.237.62.184:57129/
    
  2. Open the Developer Tools in the browser (Ctrl+Shift+I or Cmd+Option+I) and navigate to the Sources tab.
    打开浏览器的 开发者工具,切换到 Sources 标签页。

  3. Look for the file script.js. Search within it for search.
    找到 script.js 文件,并在其中搜索关键字 search

Observation | 观察:
You will find the following code:

fetch(`/search.php?search=${input.val()}`);

This indicates that the backend search functionality is handled via the /search.php endpoint with a parameter search.

这说明后台搜索功能通过 /search.php 接口处理,参数为 search


Step 3: Send the cURL Request | 发送 cURL 请求

Use the knowledge from the script.js file to directly construct a search query for flag:

根据 script.js 文件的信息,直接构造搜索 flag 的请求:

curl 'http://94.237.62.184:57129/search.php?search=flag' -H 'Authorization: Basic YWRtaW46YWRtaW4='

Explanation | 解释:

  • 'http://94.237.62.184:57129/search.php?search=flag': Sends a request to the search.php endpoint with the flag parameter.

    发送带有 search=flag 参数的请求到 search.php

  • -H 'Authorization: Basic YWRtaW46YWRtaW4=': Adds an HTTP header for Basic Authentication, where YWRtaW46YWRtaW4= is the Base64 encoding of admin:admin.

    添加 HTTP 认证头,其中 YWRtaW46YWRtaW4= 是用户名和密码 admin:admin 的 Base64 编码。

Result | 结果: The command returns the flag in the response:

命令返回响应,其中包含 flag:

HTB{curl_g3773r}

HTB{curl_g3773r}


在这里插入图片描述

Why This Works | 背后原理

  1. Backend APIs Are Exposed | 后端接口暴露:
    The /search.php endpoint is directly accessible and processes input without strict validation or user restrictions.

    /search.php 接口可以直接访问,并处理输入,而没有严格的验证或用户权限限制。

  2. Bypassing the Frontend | 绕过前端:
    Instead of interacting with the frontend (browser), we directly sent requests to the backend using curl. This allows us to bypass restrictions or additional checks imposed by the frontend.

    我们绕过浏览器前端的交互,直接使用 curl 向后端发送请求,从而绕过了前端的限制或额外验证。

  3. Understanding HTTP Basics | HTTP 基础原理:
    By analyzing script.js, we identified how the application communicates with the backend. This is a common way to understand and exploit poorly protected APIs.

    通过分析 script.js,我们理解了应用如何与后端通信。这是理解并利用保护不当的 API 的常见方法。


Applications in Real Life | 实际应用

  1. For Ethical Hacking and Penetration Testing | 用于道德黑客和渗透测试:

    • These techniques are used to identify and report security vulnerabilities in websites.
      这些技术用于识别并报告网站的安全漏洞。
    • For example, poorly protected APIs can expose sensitive user data or allow unauthorized access.
      例如,保护不当的 API 可能暴露敏感用户数据或允许未经授权的访问。
  2. To Protect Your Own Website | 用于保护自己的网站:

    • Ensure all backend endpoints require authentication and validate user inputs.
      确保所有后端接口需要认证,并验证用户输入。
    • Avoid exposing sensitive APIs or debug functionalities to public access.
      避免向公众开放敏感 API 或调试功能。

Conclusion | 结论

  1. We successfully retrieved the flag by directly interacting with the backend API.

    我们通过直接与后端 API 交互成功获取了 flag。

  2. This process demonstrated how developers can unintentionally expose vulnerabilities, highlighting the importance of secure API design.

    此过程展示了开发者如何无意中暴露漏洞,强调了安全 API 设计的重要性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

物联网控制期末复习

第3章 物联网控制系统的过程通道设计 3.1 模拟量输出通道 3.1.1单模拟量输出通道的构成 计算机控制系统的模拟量输出通道将计算机产生的数字控制信号转换为模拟信号(电压或电流)作用于执行机构,以实现对被控对象的控制。 多D/A结构&#…

探索Wiki:开源知识管理平台及其私有化部署

在如今的信息时代,企业和团队的知识管理变得愈发重要。如何有效地存储、整理、共享和协作,是提高团队效率和创新能力的关键因素之一。今天,我要为大家介绍一款非常有用的github上开源知识管理工具——Wiki,并分享它的私有化部署方…

PDF文件提示-文档无法打印-的解决办法

背景信息 下载了几个签名的PDF文件,想要打印纸质版,结果打印时 Adobe Acrobat Reader 提示【文档无法打印】: 解决办法 网上的方案是使用老版本的PDF阅读器, 因为无法打印只是一个标识而已。 PDF文件不能打印的五种解决方案-zhihu 这些方…

快速上手LangChain(三)构建检索增强生成(RAG)应用

文章目录 快速上手LangChain(三)构建检索增强生成(RAG)应用概述索引阿里嵌入模型 Embedding检索和生成RAG应用(demo:根据我的博客主页,分析一下我的技术栈)快速上手LangChain(三)构建检索增强生成(RAG)应用 langchain官方文档:https://python.langchain.ac.cn/do…

【前端系列】Pinia状态管理库

文章目录 一、前言🚀🚀🚀二、Pinia状态管理库:☀️☀️☀️2.1 pinia基本使用① pinia充当中转站存放token② 使用步骤 2.1 axios请求拦截器 一、前言🚀🚀🚀 ☀️ 回报不在行动之后,…

Springboot - Web

Spring Boot 是一个用于简化 Spring 应用程序配置和部署的框架。它提供了一种快速开发的方式,通过默认配置、自动化配置等特性,使得开发者能够更快捷地构建和部署基于 Spring 的应用。 Spring Boot Web 是 Spring Boot 的一个子模块,它专注于…

鸿蒙应用开发搬砖经验之—使用DevTools工具调试前端页面

环境说明: 系统环境:Mac mini M2 14.5 (23F79) 开发IDE:DevEco Studio 5.0.1 Release 配置步骤: 按着官方的指引来慢慢一步一步来,但前提是要配置好SDK的路径(没有配置的话,可能先看下面的配…

Java-数据结构-顺序表(ArrayList)

在之前的博客中,我们大部分都在学习数据结构相关的理论知识,而今天我们要学到的ArrayList便有所不同了,ArrayList这部分算是重要的知识,所以大家打起精神,让我们一起学习~ 在学习ArrayList之前,我们需要先…

stable diffusion安装mov2mov

第一步: 下载mov2mov,地址:https://gitcode.com/gh_mirrors/sd/sd-webui-mov2mov 下载包到web-ui的sd-webui-aki-v4.10\extensions文件夹面解压 第二步:在文件夹中调出cmd窗口,执行下列命令, git restore…

RWKV 语言模型

RWKV Language Model是一种独特的循环神经网络(RNN)架构的语言模型,具有诸多优势和特点,在自然语言处理领域展现出了良好的性能和应用潜力,以下是具体介绍: 核心原理 融合RNN与Transformer优点:…

基于单片机的温湿度采集系统(论文+源码)

2.1系统的功能 本系统的研制主要包括以下几项功能: (1)温度检测功能:对所处环境的温度进行检测; (2)湿度检测功能:对所处环境的湿度进行检测; (3)加热和制冷功能:可以完成加热和制冷功能。 (4)加湿和除…

「Mac畅玩鸿蒙与硬件49」UI互动应用篇26 - 数字填色游戏

本篇教程将带你实现一个数字填色小游戏,通过简单的交互逻辑,学习如何使用鸿蒙开发组件创建趣味性强的应用。 关键词 UI互动应用数字填色动态交互逻辑判断游戏开发 一、功能说明 数字填色小游戏包含以下功能: 数字选择:用户点击…

OCR图片中文字识别(Tess4j)

文章目录 Tess4J下载 tessdataJava 使用Tess4j 的 demo Tess4J Tess4J 是 Tesseract OCR 引擎的 Java 封装库,它让 Java 项目更轻松地实现 OCR(光学字符识别)功能。 下载 tessdata 下载地址:https://github.com/tesseract-ocr/…

Redis面试相关

Redis开篇 使用场景 缓存 缓存穿透 解决方法一: 方法二: 通过多次hash来获取对应的值。 小结 缓存击穿 缓存雪崩 打油诗 双写一致性 两种不同的要求 强一致 读锁代码 写锁代码 强一致,性能低。 延迟一致 方案一:消息队列 方…

【快速实践】深度学习 -- 数据曲线平滑化

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! 在观察数据结果时,我们通常希望获得整体趋…

RS485方向自动控制电路分享

我们都知道RS485是半双工通信,所以在传输的时候需要有使能信号,标明是发送还是接收信号,很多时候就简单的用一个IO口控制就好了,但是有一些低成本紧凑型的MCU上,一个IO口也是很珍贵的,因此,如果…

DevSecOps自动化在安全关键型软件开发中的实践、Helix QAC Klocwork等SAST工具应用

DevSecOps自动化对于安全关键型软件开发至关重要。 那么,什么是DevSecOps自动化?具有哪些优势?为何助力安全关键型软件开发?让我们一起来深入了解~ 什么是DevSecOps自动化? DevSecOps自动化是指在软件开发生命周期的各…

【ArcGISPro/GeoScenePro】解决常见的空间参考和投影问题

修复空间参考缺失的图像 数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 查看属性坐标 查看属性范围 范围值并不是零或接近于零。 这意味着栅格具有范围,因此其已正确进行

十二、Vue 路由

文章目录 一、简介二、安装与基本配置安装 Vue Router创建路由实例在应用中使用路由实例三、路由组件与视图路由组件的定义与使用四、动态路由动态路由参数的定义与获取动态路由的应用场景五、嵌套路由嵌套路由的概念与配置嵌套路由的应用场景六、路由导航<router - link>…

C#实现画图,及实现图像运动,C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)C#之快速入门GDI+绘图 C#实现快速画图功能

下载源码 <-------- 在C#的世界里&#xff0c;GDI如同一位多才多艺的艺术家&#xff0c;以其强大的绘图能力&#xff0c;让开发者能够轻松地在应用程序中挥洒创意&#xff0c;绘制出丰富多彩的图形世界。GDI不仅支持基本的几何图形绘制&#xff0c;还能处理复杂的图像处理任…