PortSwigger靶场练习---第二关-查找和利用未使用的 API 端点

第二关:Finding and exploiting an unused API endpoint

实验:查找和利用未使用的 API 端点

PortSwigger靶场地址: Dashboard | Web Security Academy - PortSwigger

 题目:

官方提示:

  1. 在 Burp 的浏览器中,访问实验室并单击一个产品。

  2. 在 Proxy > HTTP history(代理 HTTP 历史记录)中,请注意产品的 API 请求。例如。/api/products/3/price

  3. 右键单击 API 请求,然后选择 Send to Repeater (发送到 Repeater)。

  4. 在 Repeater 选项卡中,将 API 请求的 HTTP 方法从 更改为 ,然后发送请求。请注意,响应指定允许 和 方法。GETOPTIONSGETPATCH

  5. 将 API 请求的方法从 更改为 ,然后发送请求。请注意,您会收到一条消息。这可能表示您需要进行身份验证才能更新订单。GETPATCHUnauthorized

  6. 在 Burp 的浏览器中,使用凭据 登录到应用程序。wiener:peter

  7. 点击 Lightweight “l33t” 皮夹克 产品。

  8. 在 Proxy > HTTP history (代理 HTTP 历史记录) 中,右键单击皮夹克的请求,然后选择 Send to Repeater (发送到中继器)。API/products/1/price

  9. 在 Repeater 选项卡中,将 API 请求的方法从 更改为 ,然后发送请求。请注意,这会导致错误,因为不正确。错误消息指定 应为 .GETPATCHContent-TypeContent-Typeapplication/json

  10. 添加标头并将值设置为 .Content-Typeapplication/json

  11. 添加一个空的 JSON 对象作为请求正文,然后发送请求。请注意,这会导致错误,因为请求正文缺少参数。{}price

  12. 将值为 的参数添加到 JSON 对象 。发送请求。price0{"price":0}

  13. 在 Burp 的浏览器中,重新加载 leather jacket 商品页面。请注意,皮夹克的价格现在是 。$0.00

  14. 将皮夹克添加到您的购物篮中。

  15. 转到您的购物篮,然后单击 Place order(下订单)以解决实验问题。

第一步:

进入测试界面

第二步:

根据官方提示1 ,先随意的选择一个商品,并建立订单

第三步:

到Burp中,在代理下的HTTP历史记录中可以找到一条有关“ api ”的信息,由于我选择的是列表第三个商品,所以该路径名称为“ /api/products/3/price

第四步:

选中后右键,发送到Repeater(中继器)

第五步:

在中继器中发送一次请求,得到了商品价格和讯息:你的邻居刚刚买了一个!(这些不是重点)

第六步:

将“GET”改为“PATCH”再发送请求,在响应框里可以看到显示“Unauthorized”(未经授权)。

第七步:

返回浏览器,使用“ wiener:peter ”(账号:密码)进行登录。
并返回主页,按照官方提示点击“ Lightweight "l33t" Leather Jacket ”进行下单操作。
随后在burp代理的HTTP历史记录中找到关于皮夹克的PAI,并发送到中继器使用“PATCH”发送请求。

第八步:

响应区显示“仅支持“application/json”Content-Type”,所以我们要更改内容类型。
先修改标头,既:在请求区添加“Content-Type: application/json”,在发送请求后返回了一个错误,它没有找到js对象。

第九步:

添加一个空的json对象,在请求区的最下方输入“ {} ”再点击发送即可。(注意:括号要与上文代码隔开一行
请求后又出现了新的报错,参考官方“提示12”,我们需要在json对象内添加参数“  "price":0  ”

第十步:

再次发送请求,可以看到返回了一个价格为0的提示,这时我们回到浏览器并返回home主页进行刷新。
可以看到皮夹克的价格已经变为了 0刀乐 ,点进去添加顶点,并在界面右上角区域找到“ 购物篮 ”在购物篮界面点击“ Place order ”,即可通关。

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

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

相关文章

深度学习中的张量 - 使用PyTorch进行广播和元素级操作

深度学习中的张量 - 使用PyTorch进行广播和元素级操作 元素级是什么意思? 元素级操作在神经网络编程中与张量的使用非常常见。让我们从一个元素级操作的定义开始这次讨论。 一个_元素级_操作是在两个张量之间进行的操作,它作用于各自张量中的相应元素…

使用C语言实现栈的插入、删除和排序操作

栈是一种后进先出(LIFO, Last In First Out)的数据结构,这意味着最后插入的元素最先被删除。在C语言中,我们可以通过数组或链表来实现栈。本文将使用数组来实现一个简单的栈,并提供插入(push)、删除(pop)以及排序(这里采用一种简单的排序方法,例如冒泡排序)的操作示…

【逆境中绽放:万字回顾2024我在挑战中突破自我】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 一、引言二、个人成长与盘点情感与心理成长学习与技能提升其它荣誉 三、年度创作历程回顾创作内容概…

Spring Boot + Apache POI 实现 Excel 导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并)

目录 引言 Apache POI操作Excel的实用技巧 1.合并单元格操作 2.设置单元格样式 1. 创建样式对象 2. 设置边框 3. 设置底色 4. 设置对齐方式 5. 设置字体样式 6.设置自动换行 7. 应用样式到单元格 3. 定位和操作指定单元格 4.实现标签-值的形式 5.列宽设置 1. 设…

C语言进阶习题【1】指针和数组(2)——字符数组

3. 字符数组练习 sizeof 只关注占用内存空间的大小,单位是字节,不关心内存中存放的是什么 sizeof 是操作符 strlen是求字符串长度的,统计的是\0之前出现的字符个数,一定要找到\0才算结束,所以可能存在越界访问的 strle…

嵌入式工程师必学(67):SWD仿真接口(for ARM)的使用方法

概述: JTAG JTAG代表联合测试行动小组(定义JTAG标准的小组),旨在作为测试板的一种方式。JTAG允许用户与微控制器的各个部分进行对话。在许多情况下,这涉及一组指令或对电路板进行编程。JTAG标准定义了5个引脚: TCK: Test Clock TMS: Test Mode Select TDI: Test Data-…

代理模式实现

一、概念:代理模式属于结构型设计模式。客户端不能直接访问一个对象,可以通过代理的第三者来间接访问该对象,代理对象控制着对于原对象的访问,并允许在客户端访问对象的前后进行一些扩展和处理;这种设置模式称为代理模…

华为HuaweiCloudStack(一)介绍与架构

本文简单介绍了华为HCS私有云解决方案,并从下至上介绍HCS的整体架构,部署架构、部署方式等内容。 目录 HCS简介 HCS架构 纵向结构 ?管理平台类型 HCS节点类型 FusionSphere OpenStack CPS ServiceOM SC 运营面 OC 运维面 HCS部署架构 regi…

【视觉惯性SLAM:十七、ORB-SLAM3 中的跟踪流程】

17.1 跟踪流程流程图 ORB-SLAM3 的跟踪模块是整个系统的重要组成部分,负责实时确定相机在三维空间中的姿态位置,并保持关键帧之间的连续性。其基本目标是将输入的视频流与已有地图数据进行对齐,完成位姿估计和地图更新。 流程图概述 一个…

【机器学习实战入门项目】MNIST数字分类机器学习项目

Python 深度学习项目:手写数字识别 为了使机器更加智能,开发者们正在深入研究机器学习和深度学习技术。人类通过不断练习和重复来学习执行某项任务,从而记住如何完成这些任务。然后,大脑中的神经元会自动触发,他们能够…

Python Pyside6 加Sqlite3 写一个 通用 进销存 系统 初型

图: 说明: 进销存管理系统说明文档 功能模块 1. 首页 显示关键业务数据商品总数供应商总数本月采购金额本月销售金额显示预警信息库存不足预警待付款采购单待收款销售单2. 商品管理 商品信息维护商品编码(唯一标识)商品名称规格型号单位分类进货价销售价库存数量预警…

Ubuntu安装K8S

第一步: 安装docker Install Docker #注意docker是早期的名称已经过时了,因此请使用如下命令,一步到位安装docker-ce。 第二步:设置K8S源: (大陆使用aliyun源,大陆外使用google源)…

Linux图形界面详解以及替换桌面程序方法

说明:本文章主要说明Linux图形界面的启动流程,以及使用自己的图形化应用替换桌面程序的方法,类似与安卓启动会启动Launcher,使用自己程序替换Launcher一样,实现应用独占系统,或者设计自己的桌面程序。 一、…

第4章 Kafka核心API——Kafka客户端操作

Kafka客户端操作 一. 客户端操作1. AdminClient API 一. 客户端操作 1. AdminClient API

使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。

在上一篇博客中主要是使用SpringBootApache POI实现了BOM物料清单Excel表格导出,详见以下博客: Spring Boot Apache POI 实现 Exc()el 导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并&#…

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)边缘检测

OpenCV中边缘检测四种常用算子: (1)Sobel算子 Sobel算子是一种基于梯度的边缘检测算法。它通过对图像进行卷积操作来计算图像的梯度,并将梯度的大小作为边缘的强度。它使用两个3x3的卷积核,分别用于计…

R语言绘图

多组火山图 数据准备&#xff1a; 将CSV文件同一在一个路径下&#xff0c;用代码合并 确保文件列名正确 library(fs) library(dplyr) library(tidyr) library(stringr) library(ggplot2) library(ggfun) library(ggrepel)# 获取文件列表 file_paths <- dir_ls(path &quo…

IDEA2023版中TODO的使用

介绍&#xff1a;TODO其实本质上还是注释&#xff0c;只不过加上了TODO这几个字符&#xff0c;可以让使用者快速找到。 注意&#xff1a;在类、接口等文件中&#xff0c;注释是使用// 即&#xff1a;// TODO 注释内容 在配置文件中&#xff0c;注释是使用# 即&#xff1a;# TO…

Maven的多模块架构设计诺依的多模块

Maven的多模块架构设计 多模块架构设计&#xff0c;本文采用 诺依的多模块架构设计分析

【JsonViewer】Json格式化

使用 Notepad 对 Json 数据进行格式化处理&#xff0c;使数据在结构上更清晰 1.在线安装 安装之后&#xff0c;重启应用&#xff0c;在插件菜单栏即可看到 JsonViewer 选项&#xff0c;在 Notepad 中放入 Json 数据&#xff0c;点击 Format Json 进行数据格式化 2.离线安装 …