burp靶场-API testing

burp靶场

1.服务端主题

1.API测试

https://portswigger.net/web-security/api-testing#top

1.1 api探测api路径,数据格式,交互方法,参数是否必选:

## 使用Burp Scanner来爬取 API
https://portswigger.net/burp/vulnerability-scanner
GET /api/books HTTP/1.1
Host: example.com
联想:/api/books/mystery## 插件:查找js中的api:
https://portswigger.net/bappstore/0e61c786db0c4ac787a08c4516d52ccf
## 重点注意:
API 处理的输入数据,包括必选参数和可选参数。
API 接受的请求类型,包括支持的 HTTP 方法和媒体格式。
速率限制和身份验证机制## 查找公开的api文档说明:它以 JSON 或 XML 等结构化格式编写
## OpenAPI 规范可以从文件或 URL 中解析。该扩展还可以使用目标 ->
## 站点地图上下文菜单中的发送到OpenAPI 解析器选项直接从 URL 获取 OpenAPI 规范
## 插件:OpenAPI Parser
https://portswigger.net/bappstore/6bf7574b632847faaaa4eb5e42f1757c## 使用burp Scanner来爬取API:
/api
/swagger/index.html
/openapi.json
寻找基本路径:
/api/swagger/v1
/api/swagger
/api##
GET /api/tasks- 检索任务列表。
POST /api/tasks- 创建一个新任务。
DELETE /api/tasks/1- 删除任务。## 识别数据包类型
## 插件:尝试转换数据类型:使用插件修改
https://portswigger.net/bappstore/db57ecbe2cb7446292a94aa6181c9278
触发泄露有用信息的错误。
绕过有缺陷的防御。
利用处理逻辑的差异。例如,API 在处理 JSON 数据时可能是安全的,但在处理 XML 时容易受到注入攻击。## fuzz的参数需要结合系统业务来进行收集整理:
PUT /api/user/update
/update的列表来模糊路径的位置 。 deleteadd

1.2 寻找隐藏的参数:

## 挖掘参数:
插件:Param Miner
https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943## 目录发现:
https://portswigger.net/burp/documentation/desktop/tools/engagement-tools/content-discovery

在这里插入图片描述

实操实验1:发现api

https://portswigger.net/web-security/api-testing/lab-exploiting-api-endpoint-using-documentation
Lab: Exploiting an API endpoint using documentation
要求:
要解决该实验室问题,请找到公开的 API 文档并删除carlos. 您可以使用以下凭据登录您自己的帐户:wiener:peter。

靶场测试前先登陆账户:
burp官网账户密码:
2105709486@qq.com
.p$'|7WD6[Qb8^7%zTc&k3Y/R!y=JD.+

https://0a6c000d04452323804fbde700e50064.web-security-academy.net/
使用以下凭据登录您自己的帐户:wiener:peter

Your username is: wienerYour email is: wiener@normal-user.net

登陆站点后,浏览功能点,点击功能,到处浏览,查看功能:my account站点,填写测试数据,burp 代理查看流量历史:
在这里插入图片描述
发现可疑数据包:
在这里插入图片描述
将数据包发送到repeapter:

## 尝试修改请求方法:PATCH GET POST...
## 尝试测试path的payload:
/api/user/wiener
/api/user/
/api/
/api

payload发现泄露的api信息:
在这里插入图片描述
测试泄露的api:
使用泄露的api进行用户删除操作,造成危害:
DELETE /api/user/carlos
在这里插入图片描述

实验2:找到未使用的接口:

Lab: Finding and exploiting an unused API endpoint
实验要求:
要解决该实验室问题,请利用隐藏的 API 端点购买Lightweight l33t Leather Jacket。您可以使用以下凭据登录您自己的帐户: wiener:peter
站点逐个点击功能,burp查看流量包:
点击对应商品:将GET /api/products/1/price查询商品数据流量包发送到repeater:

在这里插入图片描述
在这里插入图片描述
请求包添加请求头:Content-Type: application/json
在这里插入图片描述
根据上面的测试,请求需要提供json数据格式:
在这里插入图片描述
提供参数:将价格修改为1或者0,发现修改成功:
在这里插入图片描述
修改价格为0,将商品添加到购物车,支付,发现实现了0元购:
在这里插入图片描述

实验3:利用批量分配漏洞

实验室:利用批量分配漏洞
Lab: Exploiting a mass assignment vulnerability
通过前端web api接口给后端的实例对象的属性赋值,从而修改了对象属性:
登陆站点:wiener:peter,选择商品——》添加到购物车——》产生订单——》支付——》发现信用额度不够
burp查看数据包,GET与POST的数据包,将两个包发送到repeater,对比参数:发现隐藏的请求参数:
“chosen_discount”:{“percentage”:0}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次刷新购物车订单,发现支付费用为0:
在这里插入图片描述

实验4:服务端参数污染

实验室:利用查询字符串中的服务器端参数污染
Lab: Exploiting server-side parameter pollution in a query string
目的:重置administrator,administrator登陆并删除用户carlos
浏览站点,使用忘记密码功能进行密码重置,输入administrator,使用burp 代理历史查看数据包,查看到忘记密码的数据包,查看739,740,741三个与忘记密码操作相关的数据包:
在这里插入图片描述
对username参数进行测试:尝试参数值:administrator,adminstratorx(一个大概率不存在的参数),查看响应包:
Invalid username,这说明了administrator用户名存在,administratorx用户名不存在,可以用来枚举,但是这里的目的不是枚举用户名。
在这里插入图片描述
构造其他参数进行测试,测试服务是否接受其他参数,如添加【&需要使用url编码】:&x=y,username=administrator%26x=y
从响应结果看出服务大概率是接受多个参数,但是参数x是错误不支持的。

在这里插入图片描述
测试:username=administrator#【#号使用url编码】,username=administrator%23
使用#截断参数测试,发现了参数:Fileld
在这里插入图片描述
测试:&field=x#【&与#需要url编码】,username=administrator%26field=x%23
这个payload指定一个fileld参数的值
在这里插入图片描述
接下来,对field参数的值进行爆破:
在“入侵者”>“有效负载”中,单击“从列表添加”。选择内置的服务器端变量名负载列表,然后开始攻击。
查看结果。请注意,带有用户名和电子邮件负载的请求都会返回响应200
在这里插入图片描述
在这里插入图片描述
爆破成功:得到一个email参数
在这里插入图片描述
在忘记密码的js中发现了,重置密码的url:/forgot-password?reset_token=${resetToken}
在这里插入图片描述
后续操作:
在“代理”>“HTTP 历史记录”中,查看/static/js/forgotPassword.jsJavaScript 文件。注意密码重置端点,它引用了 reset_token参数:

/forgot-password?reset_token=${resetToken}在Repeater选项卡中,将参数值field从 更改email为reset_token:username=administrator%26field=reset_token%23发送请求。请注意,这会返回一个密码重置令牌,记下重置令牌:6ws18f561lomm78lgqn51skk22qaakjm在 Burp 的浏览器中,在地址栏中输入密码重置端点。添加您的密码重置令牌作为参数的值 reset_token。例如:/forgot-password?reset_token=123456789设置新密码。使用您的密码以用户身份登录administrator。转到管理面板并删除carlos以解决实验。

在这里插入图片描述
/forgot-password?reset_token=6ws18f561lomm78lgqn51skk22qaakjm
浏览器打开重置密码的url:url中附加管理员administrator的参数,重置密码为123test:
在这里插入图片描述
在这里插入图片描述

与owasp对标:

https://portswigger.net/web-security/api-testing/top-10-api-vulnerabilities
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/

参考:

https://mp.weixin.qq.com/s/9-2C7vPHPHcTXBJWH9_tlg
https://blog.csdn.net/m0_50841600/article/details/135456276

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

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

相关文章

虚幻UE 材质-材质图层、材质图层混合

学习材质图层和材质图层混合的使用,便于节点扫盲。 文章目录 前言一、材质图层混合二、使用步骤总结 前言 材质混合我们之前用Bridge的插件进行混合过 而此次我们的材质混合使用UE自带的材质图层和材质图层混合来实现 一、材质图层混合 材质图层混合是一种允许将…

Github镜像加速器-FastGit

简介 FastGit 是一个对于 GitHub.com 的镜像加速器。使用共享资源为 GitHub 加速。 FastGit中文指南 # 基本使用 关于 FastGit 的使用,本质上与 git 有关。常规的面向 GitHub 的 clone 命令可能如下: git clone https://github.com/author/repo使用 F…

烟火检测/周界入侵/视频智能识别AI智能分析网关V4如何配置ONVIF摄像机接入

AI边缘计算智能分析网关V4性能高、功耗低、检测速度快,易安装、易维护,硬件内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音告警播放。算法可按需组合、按…

《C++大学教程》4.25星号正方形

题目: //while循环实现int main() {int n;cout << "请输入边长&#xff1a;";cin >> n;int i 1; while (i < n){ // 控制行数int j 1;while (j < n){ // 控制列数if (i 1 || i n || j 1 || j n){cout << "*";}else{cout <…

yarn包管理器在添加、更新、删除模块时,在项目中是如何体现的

技术很久不用&#xff0c;就变得生疏起来。对npm深受其害&#xff0c;决定对yarn再整理一遍。 yarn包管理器 介绍安装yarn帮助信息最常用命令 介绍 yarn官网&#xff1a;https://yarn.bootcss.com&#xff0c;学任何技术的最新知识&#xff0c;都可以通过其对应的网站了解。无…

浏览器打印无法显示单选框选中效果

上面是原代码&#xff0c;我点击打印&#xff0c;出现打印页面&#xff0c;但单选框并未勾选中&#xff0c;我在外部放了一模一样的代码是能勾选上的&#xff0c;于是我对打印页的input单选框进行分析&#xff0c;发现他丢失了checked属性。然后通过gpt分析原因。得知了default…

软件测试|使用matplotlib绘制多种柱状图

简介 在数据可视化领域&#xff0c;Matplotlib是一款强大的Python库&#xff0c;它可以用于创建多种类型的图表&#xff0c;包括柱状图。本文将介绍如何使用Matplotlib创建多种不同类型的柱状图&#xff0c;并提供示例代码。 创建基本柱状图 首先&#xff0c;让我们创建一个…

【设计模式-05】Facade门面Mediator调停者 | Decorator装饰器 | Chain Of Responsibility责任链

Facade门面Mediator调停者 1、Facade门面图解 2、Mediator调停者 一般是系统内部相互交错&#xff0c;比如消息中间件(MQ)就是这种设计模式&#xff0c;对各个功能或系统之间进行解耦。 Decorator装饰器 1、问题 2、解决方案 Chain Of Responsibility责任链 一、例子场景 业…

网络命令行工具nc的使用复习

之前写过nc的博文&#xff1b;下面复习一下&#xff1b; 可以把nc放到C:\Windows\System32下&#xff1b; nc -l -p 9007&#xff0c;-l 是监听模式&#xff0c;-p指定端口&#xff0c;作为服务端监听9007端口&#xff1b; nc 127.0.0.1 9007&#xff0c;作为客户端去连接指定…

数据洞察力,驱动企业财务变革

我们不得不面对一个现实&#xff0c;就是数据量的剧增。加上大部分企业并不愿意删除历史数据&#xff0c;以防未来预测分析时需要&#xff0c;这造成数据就像一个雪球&#xff0c;越滚越大。然而&#xff0c;过多的数据和数据不足一样会成为企业发展和理解分析的障碍。从海量数…

玩转硬件之Micro:bit的玩法(六)——扫地机器人

众所周知&#xff0c;扫地机器人&#xff0c;又称自动打扫机、智能吸尘、机器人吸尘器等&#xff0c;是智能家电的一种&#xff0c;能凭借人工智能&#xff0c;自动在房间内完成地板清理工作。一般采用刷扫和真空方式&#xff0c;将地面杂物先吸纳进入自身的垃圾收纳盒&#xf…

多示例学习 (multi-instance learning, MIL) 学习路线 (归类、重点文章列举、持续更新)

文章目录 0 要点 0 要点 说明&#xff1a;本文在于能够让大家能够更加快速地了解MIL这个领域&#xff0c;因此将从以下几个方面重点介绍MIL&#xff1a; MIL背景介绍&#xff1b;理论MIL概述&#xff1a; 注意力网络&#xff1b;对比学习&#xff1b;介入学习&#xff1b;强化…

【AI视野·今日Robot 机器人论文速览 第七十四期】Wed, 10 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 10 Jan 2024 Totally 17 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Hold em and Fold em: Towards Human-scale, Feedback-Controlled Soft Origami Robots Authors Immanuel Ampomah Mensah, Je…

【Axure高保真原型】移入放大对应区域的饼图

今天和大家分享移入放大对应扇形区域的饼图的原型模板&#xff0c;鼠标移入时&#xff0c;对应扇形区域的会放大&#xff0c;并且的项目和数据弹窗&#xff0c;弹窗可以跟随鼠标移动。这个原型是用Axure原生元件制作的&#xff0c;所以不需要联网或者调用外部图表……具体效果可…

GAMES101-Assignment7

一、问题总览 在之前的练习中&#xff0c;我们实现了Whitted-Style Ray Tracing 算法&#xff0c;并且用BVH等加速结构对于求交过程进行了加速。在本次实验中&#xff0c;我们将在上一次实验的基础上实现完整的Path Tracing算法。 二、代码框架 2.1 修改内容 相比上一次实验…

QT报错记录

Ubuntu22.04安装Qt之后启动Qt Creator报错&#xff1a; Fron 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platforn plugin. Could not load. This application failed to start because no Qt platforn plugin could be initialized. Reinstalling t…

RSA原理理解以及攻防世界(初识RSA)解题思路-0基础理解

题目 下载附件后&#xff0c;我们看到的是这样一个界面&#xff0c;这里需要理解RSA的构造 RSA原理理解 RSA加密算法是一种非对称加密算法&#xff0c;在公开密钥加密和电子商业中被广泛使用。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之&#xff0c;对一极大整…

Java SE入门及基础(14)

二重循环 1. 什么是二重循环 二重循环就是一个循环结构中又包含另外一个循环结构 while ( 外层循环条件 ){ //外层循环操作 while ( 内层循环条件 ){ //内层循环操作 } //外层循环操作 } while ( 外层循环条件 ){ //外层循环操作 for ( 循环变量初始化 ; 内层循环条…

【Docker】在容器中管理数据数据卷挂载以及宿主机目录挂载

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《【Docker】在容器中管理数据》。&#x1f3af…

vector容器解决杨辉三角

一、题目描述 118. 杨辉三角 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRo…