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

【Hackthebox 中英 Write-Up】通过 POST 请求绕过前端限制:基于 Cookie 的认证与数据提取实操指南

Bypassing Frontend Restrictions with POST Requests: A Practical Guide to Cookie-Based Authentication and Data Extraction

通过 POST 请求绕过前端限制


Objective | 目标

The purpose of this exercise is to understand how POST requests work and how to authenticate and extract data directly from a web application using cookies and JSON-based POST requests.

本次任务的目的是理解 POST 请求的工作原理,并通过 Cookie 和基于 JSON 的 POST 请求直接从 Web 应用中认证并提取数据。


Steps | 操作步骤

Step 1: Log In to the Web Application | 登录 Web 应用

  1. Open the browser and visit the URL:
    打开浏览器并访问以下 URL:

    http://94.237.62.184:50777/
    
  2. Use the credentials to log in:
    使用以下凭据登录:

    Username: admin  
    Password: admin
    
  3. Open Developer Tools (Ctrl+Shift+I or Cmd+Option+I) and go to the Network tab.
    打开 开发者工具,进入 Network 标签。

  4. Clear previous network requests and log in again. Observe the POST request sent during login. You will see something like this:
    清除旧的网络请求记录,再次登录。观察发送的 POST 请求,你会看到类似以下的数据:

    POST / HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    username=admin&password=admin
    

Step 2: Authenticate with cURL and Extract the Session Cookie | 使用 cURL 认证并提取会话 Cookie

  1. Open the terminal and run the following cURL command to log in: 在终端中运行以下 cURL 命令进行登录:

    curl -X POST -d 'username=admin&password=admin' http://94.237.62.184:50777/ -i
    
  2. Look for the Set-Cookie header in the response. For example:
    在响应中找到 Set-Cookie 头,例如:

    Set-Cookie: PHPSESSID=gg799jqsgbl84sa9mgpr01q2qo; path=/
    
  3. Copy the session ID (PHPSESSID=gg799jqsgbl84sa9mgpr01q2qo). This will be used in subsequent requests for authentication.
    复制会话 ID (PHPSESSID=gg799jqsgbl84sa9mgpr01q2qo),后续请求中将使用它进行认证。


Step 3: Search for the Flag Using a JSON POST Request | 使用 JSON POST 请求搜索 Flag

  1. Construct a JSON POST request to interact with the search function and retrieve the flag:
    构造一个 JSON POST 请求,与搜索功能交互并提取 flag:

    curl -X POST -d '{"search":"flag"}' -b 'PHPSESSID=gg799jqsgbl84sa9mgpr01q2qo' -H 'Content-Type: application/json' http://94.237.62.184:50777/search.php
    

    Explanation | 解释:

    • -X POST: Specifies this is a POST request.
      指定这是一个 POST 请求。
    • -d '{"search":"flag"}': Sends the search term flag in JSON format.
      以 JSON 格式发送搜索词 flag
    • -b 'PHPSESSID=...': Adds the session cookie for authentication.
      添加会话 Cookie 用于认证。
    • -H 'Content-Type: application/json': Specifies the request body is JSON.
      指定请求体为 JSON 格式。
  2. The server will respond with the flag. For example:
    服务器会返回包含 flag 的响应,例如:

    ["flag: HTB{p0$t_r3p34t3r}"]
    

Purpose of the Test | 测试目的

  1. Understand POST Requests | 理解 POST 请求

    • POST requests are commonly used for sensitive data transmission, such as login credentials or search queries. This exercise demonstrates how POST requests work and how they differ from GET requests.

      POST 请求常用于传输敏感数据,如登录凭据或搜索查询。本练习展示了 POST 请求的工作原理及其与 GET 请求的不同。

  2. Simulating Backend Interactions | 模拟后端交互

    • By bypassing the frontend, we directly interact with the backend API, which is a crucial skill for penetration testing and bug bounty hunting.

      通过绕过前端,我们直接与后端 API 交互,这是渗透测试和漏洞赏金挖掘的重要技能。

  3. Exploiting Weak Authentication | 利用弱认证机制

    • Demonstrates how session cookies can be used to persist authentication and how improper handling can lead to vulnerabilities.

      演示了如何使用会话 Cookie 维持认证,以及不当处理如何导致漏洞。

  4. Real-World Application | 现实应用

    • This technique can uncover weaknesses in authentication systems, helping secure web applications against unauthorized access or data breaches.

      该技术可发现认证系统中的弱点,帮助保护 Web 应用免受未授权访问或数据泄露。


Summary | 总结

Steps Recap | 操作回顾

  1. Log in and capture the POST request: Observed login data in the browser’s network tab.

    登录并捕获 POST 请求:在浏览器的网络标签中观察到登录数据。

  2. Authenticate with cURL and extract the session cookie: Logged in via cURL and retrieved the session ID.

    使用 cURL 认证并提取会话 Cookie:通过 cURL 登录并提取会话 ID。

  3. Send a JSON POST request with the cookie: Used the session ID to send a POST request to /search.php and retrieve the flag.

    使用 Cookie 发送 JSON POST 请求:用会话 ID 向 /search.php 发送 POST 请求并获取 flag。

Flag | Flag

HTB{p0$t_r3p34t3r}

How to Prevent This Vulnerability | 如何防范此类漏洞

  1. Secure Session Management | 加强会话管理

    • Use short session lifetimes and enforce reauthentication for sensitive actions.

      缩短会话有效期,并在敏感操作中强制重新认证。

  2. Implement Strong Authentication | 实施强认证机制

    • Enforce multi-factor authentication (MFA) to prevent unauthorized access.

      强制多因素认证 (MFA),防止未授权访问。

  3. Sanitize Inputs and Validate Headers | 清理输入并验证请求头

    • Validate the Content-Type header and sanitize input data to prevent malicious requests.

      验证 Content-Type 头并清理输入数据,防止恶意请求。

  4. Use HTTPS | 使用 HTTPS

    • Encrypt all communications to prevent session hijacking or man-in-the-middle attacks.

      加密所有通信以防止会话劫持或中间人攻击。

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


http://www.kler.cn/a/457853.html

相关文章:

  • Pytorch | 利用DTA针对CIFAR10上的ResNet分类器进行对抗攻击
  • 基于微信小程序的校园点餐平台的设计与实现(源码+SQL+LW+部署讲解)
  • 回顾2024,加油2025!All, You and me!
  • [2474].第04节:Activiti官方画流程图方式
  • 蓝牙|软件 Qualcomm S7 Sound Platform开发系列之初级入门指南
  • 在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件
  • AI大模型语音识别转文字
  • 在 CentOS 7 上安装 Node.js 20 并升级 GCC、make 和 glibc
  • 图像处理-Ch7-快速小波变换和小波包
  • redis cluster实验详解
  • 蓝桥杯速成教程{三}(adc,i2c,uart)
  • vulhub-wordpress靶场
  • 区块链安全常见的攻击合约和简单复现,附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】
  • 【513. 找树左下角的值 中等】
  • 【Leetcode刷题随笔】977 有序数组的平方
  • google广告 google分析
  • wordpress woodmark max_input_vars = 1000 限制问题
  • 使用proxysql代理mysql连接
  • 【Raven1靶场渗透】
  • 钱币找零.
  • 秒鲨后端之MyBatis【1】环境的搭建和核心配置文件详解(重置)
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之5
  • vue.js普通组件的注册-全局注册
  • 7-Gin 中自定义控制器 --[Gin 框架入门精讲与实战案例]
  • CPU性能优化--后端优化
  • upload-labs关卡记录5