【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 设计的重要性。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【密码学】基于 fastcoll 实现 MD5 碰撞快速生成(MD5碰撞)

【密码学】基于 fastcoll 实现 MD5 碰撞快速生成(MD5碰撞) 原理 MD5碰撞 MD5碰撞是指两个不同的输入数据通过MD5哈希算法生成相同的哈希值。这种情况会导致哈希值无法唯一标识原始数据,从而破坏哈希函数的完整性和安全性。 步骤 准备一个…

[pdf、epub]260道《软件方法》强化自测题业务建模需求分析共216页(202412更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 260道《软件方法》强化自测题业务建模需求分析共216页(202412更新) 已上传到本CSDN账号的资源 如果下载不到,也可以访问以下链接: ht…

WireShark抓包学习

1.数据包结构解析 下图中,即为一条条数据包。 点击某一条数据包后可看见该数据的详细信息,包含了物理层、IP层和TCP协议的相关信息。 2.使用捕获过滤器筛选相应的数据包 想要抓包的话,首先第一步就需要使用捕获过滤器找到相应的数据包。WireS…

家用电器销售系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

vim里搜索关键字

vim是linux文本编辑器的命令,再vi的基础上做了功能增强 使用方法如下 1. / 关键字, 回车即可, 按n键查找关键字下一个位置 2.? 关键字, 回车即可, 按n键查找关键字下一个位置 3.示例

[JAVA]MyLogger

import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.*;/*** 可以自已定义日志打印格式,这样看起来比较方便些**/ class MyFormatter extends Formatter {Overridepublic String format(LogRecord ar…

HuatuoGPT-o1:基于40K可验证医学问题的两阶段复杂推理增强框架,通过验证器引导和强化学习提升医学模型的推理能力

HuatuoGPT-o1:基于40K可验证医学问题的两阶段复杂推理增强框架,通过验证器引导和强化学习提升医学模型的推理能力 论文大纲理解1. 确认目标2. 分析过程3. 实现步骤4. 效果展示 解法拆解全流程提问俩阶段详细分析 论文:HuatuoGPT-o1, Towards …

springboot中,怎么把对象的空属性转为json的时候过滤掉

全局配置 ObjectMapper java Bean Data Component NoArgsConstructor AllArgsConstructor ConfigurationProperties(prefix "person") public class Person {private String userName;private Boolean boss;private Date birth;private Integer age;private Pet p…

基于TCP的Qt网络通信

基于TCP的Qt网络通信 项目源码:https://github.com/say-Hai/TcpSocketLearn/tree/QTcpSocket 在标准C没有提供专门用于套接字通信的类,所以只能使用操作系统提供的基于C的API函数,但是Qt就不一样了,它是C的一个框架并且里边提供了…

[CCGridW 2023]Performance Modelling of Graph Neural Networks

论文网址:Performance Modelling of Graph Neural Networks | IEEE Conference Publication | IEEE Xplore 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正&#xf…

git reset --hard(重置到当前提交,所有未提交的更改都会被永久丢弃)

git reset --hard 是一个强大的命令,它会将你的工作目录、暂存区和当前分支的 HEAD 指针重置到指定的提交状态,所有未提交的更改都会被永久丢弃。因此,使用这个命令时需要非常小心。 基本用法 重置到当前提交(丢弃所有未提交的更…

springboot 整合 rabbitMQ (延迟队列)

前言: 延迟队列是一个内部有序的数据结构,其主要功能体现在其延时特性上。这种队列存储的元素都设定了特定的处理时间,意味着它们需要在规定的时间点或者延迟之后才能被取出并进行相应的处理。简而言之,延时队列被设计用于存放那…

PLC(01)

一.职业规划 电路----------------->电工------------------>电气-------------------plc---------------------DCS--------------------> 机器人 二.交流电直流电的概念 1.交流电AC alternating current 大小方向随时间发生周期性变化 2.直流电 Direct current…

基本算法——分类

目录 创建项目 导入依赖 加载数据 特征选择 学习算法 对新数据分类 评估与预测误差度量 混淆矩阵 通过模型的预测结果生成 ROC 曲线数据 选择分类算法 完整代码 结论 创建项目 首先创建spring boot项目,我这里用的JDK8,springboot2.7.6&…

2024年中国新能源汽车用车发展怎么样 PaperGPT(二)

用车趋势深入分析 接上文,2024年中国新能源汽车用车发展怎么样 PaperGPT(一)-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程:2024年纯电车辆月均行驶超过1500公里&…

典型常见的基于知识蒸馏的目标检测方法总结三

来源:Google学术2023-2024的顶会顶刊论文 NeurIPS 2022:Towards Efficient 3D Object Detection with Knowledge Distillation 为3D目标检测提出了一种知识蒸馏的Benchmark范式,包含feature的KD,Logit的cls和reg的KD&#xff0c…

2024年中国新能源汽车用车发展怎么样 PaperGPT(一)

概述 在国家政策的强力扶持下,2024年中国新能源汽车市场迎来了新的发展机遇。本文将基于《中国新能源汽车用车报告(2024年)》的数据,对新能源汽车的市场发展和用车趋势概述。 新能源汽车市场发展 政策推动:国家和地…

Ceph 手动部署(CentOS9)

#Ceph手动部署、CentOS9、squid版本、数字版本19.2.0 #部署服务:块、对象、文件 一、部署前规划 1、兼容性确认 2、资源规划 节点类型节点名称操作系统CPU/内存硬盘网络组件安装集群节点CephAdm01CentOS94U/8GOS:40G,OSD:2*100GIP1:192.169.0.9(管理&集群),IP2:…

CUDA与Microsoft Visual Studio不兼容问题

简介:在安装一些 python库时,涉及到第三方库(特别是需要引用 C 代码)时,通常的安装方式会涉及到编译过程,通常称为"源代码安装"(source installation),或是 “…

网络安全 | 企业网络安全管理

网络安全 | 企业网络安全管理 一、前言二、企业网络安全面临的威胁2.1 网络攻击类型2.2 数据泄露风险2.3 恶意软件感染 三、企业网络安全管理的策略与措施3.1 网络架构安全设计3.2 访问控制机制3.3 数据加密技术3.4 员工安全培训 四、企业网络安全监测与应急响应体系4.1 安全监…