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 ”,即可通关。

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

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

相关文章

python_在钉钉群@人员发送消息

python_在钉钉群人员发送消息 1、第一种 企业内部机器人群聊实现人接入指南,适用于群机器人接收消息,处理完一系列的动作之后,将消息返回给发消息的人员,同时该人员。 需要在企微后台新建一个自建应用,在自建应用里…

天机学堂5-XxlJobRedis

文章目录 梳理前面的实现:Feign点赞改进 day07-积分系统bitmap相关命令签到增加签到记录计算本月已连续签到的天数查询签到记录 积分表设计签到-->发送RabbitMQ消息,保存积分对应的消费者:**消费消息 用于保存积分**增加积分查询个人今日积…

【Block总结】Conv2Former的Block,结合卷积网络和Transformer的优点|即插即用

背景与动机 Conv2Former是一种新型的卷积神经网络(ConvNet),旨在结合卷积网络和Transformer的优点,以提升视觉识别任务的性能。传统的卷积神经网络在处理局部特征提取方面表现优异,但在建模全局信息和长距离依赖关系时…

智能化植物病害检测:使用深度学习与图像识别技术的应用

植物病害一直是农业生产中亟待解决的问题,它不仅会影响作物的产量和质量,还可能威胁到生态环境的稳定。随着人工智能(AI)技术的快速发展,尤其是深度学习和图像识别技术的应用,智能化植物病害检测已经成为一…

【TCP】rfc文档

tcp协议相关rfc有哪些 TCP(传输控制协议)是一个复杂的协议,其设计和实现涉及多个RFC文档。以下是一些与TCP协议密切相关的RFC文档列表,按照时间顺序排列,涵盖了从基础定义到高级特性和优化的各个方面: 基…

机器学习皮马印第安人糖尿病数据集预测报告

目录 1.项目选题与设计方案 1.1项目选题 1.2设计方案 2.功能实现 2.1 主要功能介绍 2.2 开发环境及平台介绍 2.3 实现过程 2.3.1数据分析 2.3.2算法设计 2.3.3 python代码 3.个人心得体会 1.项目选题与设计方案 1.1项目选题 我国的糖尿病患者初诊时约8&a…

HTML5+Canvas实现的鼠标跟随自定义发光线条源码

源码介绍 HTML5Canvas实现的鼠标跟随自定义发光线条特效源码非常炫酷&#xff0c;在黑色的背景中&#xff0c;鼠标滑过即产生彩色变换的发光线条效果&#xff0c;且线条周围散发出火花飞射四溅的粒子光点特效。 效果预览 源码如下 <!DOCTYPE html PUBLIC "-//W3C//D…

Dart语言

基础篇&#xff1a; 第 1 部分&#xff1a;Dart 的基础语法 1.1 Dart 程序的结构 一个简单的 Dart 程序通常包含一个 main() 函数&#xff0c;这是程序的入口点。所有 Dart 程序都会从 main() 函数开始执行。 void main() {print(Hello, Dart!); } void 表示 main() 函数没…

通过idea创建的springmvc工程需要的配置

在创建的spring mvc工程中&#xff0c;使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库&#xff0c;主要包括spring-aop、spring-web、spring-webmvc&#xff0c;示例配置如下&#xff1a; <project xmlns"http:/…

Ansible实战:如何正确选择 command 和shell模块?

在使用Ansible进行自动化运维时&#xff0c;command 和 shell 模块是我们执行命令的好帮手。虽然它们看起来很相似&#xff0c;但在功能特性和适用场景上其实有着明显的不同。正确选择合适的模块不仅能够提高任务的效率&#xff0c;还能帮助我们规避一些潜在的风险。在这篇文章…

【STM32-学习笔记-4-】PWM、输入捕获(PWMI)

文章目录 1、PWMPWM配置 2、输入捕获配置3、编码器 1、PWM PWM配置 配置时基单元配置输出比较单元配置输出PWM波的端口 #include "stm32f10x.h" // Device headervoid PWM_Init(void) { //**配置输出PWM波的端口**********************************…

学习微信小程序的下拉列表控件-picker

1、创建一个空白工程 2、index.wxml中写上picker布局&#xff1a; <!--index.wxml--> <view class"container"><picker mode"selector" range"{{array}}" bindchange"bindPickerChange"><view class"pick…

【神经网络基础】

目录 一、神经网络的构成 1.1什么是神经网络&#xff1f; 1.2 激活函数 1.2.1 Sigmoid 1.2.2 Tanh 1.2.3 ReLU 1.2.4 softmax 1.2.5 其他激活函数 1.2.6 选择激活函数 1.3 参数初始化 1.4 模型构建 二、损失函数 2.1 分类问题 2.1.1多分类&#xff08;多分类交叉…

STM32 学习笔记【补充】(十)硬件I2C读写MPU6050

该系列为笔者在学习STM32过程&#xff08;主线是江科大的视频&#xff09;中的记录与发散思考。 初学难免有所纰漏、错误&#xff0c;还望大家不吝指正&#xff0c;感谢~ 一、I2C 外设简介 I2C&#xff08;Inter-Integrated Circuit&#xff09;是一种多主多从的串行通信协议…

.Net Core webapi 实现JWT认证

文章目录 需求准备创建JWT配置创建JWTService注册JWT创建中间件读取jwt的token在需要的接口上添加属性启动认证启动swagger的授权认证使用 需求 实现一个记录某个用户所有操作的功能 准备 创建你的webapi项目从nuget下载安装JWT资源包根据你的项目使用.net版本下载对应的jwt…

leetcode203-移除链表元素

leetcode203 什么是链表 之前不懂链表的数据结构&#xff0c;一看到链表的题目就看不明白 链表是通过next指针来将每个节点连接起来的&#xff0c;题目中给的链表是单向链表&#xff0c;有两个值&#xff0c;一个val表示值&#xff0c;一个next&#xff1a;表示连接的下一个…

在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)

人无完人&#xff0c;持之以恒&#xff0c;方能见真我&#xff01;&#xff01;&#xff01; 共同进步&#xff01;&#xff01; 文章目录 一、strncpy函数的使用二、strncat函数的使用三、strncmp函数的使用四、strstr的使用和模拟实现五、strtok函数的使用六、strerror和pe…

stack_queue的底层,模拟实现,deque和priority_queue详解

文章目录 适配器Stack的模拟实现Queue的模拟实现vector和list的对比dequedeque的框架deque的底层 priority_queuepriority_queue的使用priority_queue的底层仿函数的使用仿函数的作用priority_queue模拟实现 适配器 适配器是一种模式&#xff0c;这种模式将类的接口转化为用户希…

LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145188660 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

杰盛微 IRS2336STRPBF 700V带使能和故障报告的三相反逻辑驱动芯片 SOP28封装

IRS2336STRPBF 700V带使能和故障报告的三相反逻辑驱动芯片 IRS2336是 N型高压、高速功率 MOSFET/IGBT高低侧三相栅极驱动芯片&#xff0c;包含三路独立的半桥驱动电路。内部集成了欠压保护和过流保护功能&#xff0c;出现异常时立即关断六通道输出。提供外部使能控制可同时关断…