API安全

本文介绍了API的基本概念,其在软件开发中的作用以及如何通过API进行数据交换。重点探讨了API在网络安全中的挑战,包括欺骗、篡改等威胁,以及通过实际案例演示如何识别和利用API漏洞。
摘要由CSDN通过智能技术生成

一,什么是API

API指的是应用程序编程接口(Application Programming Interface),是一组定义了软件组件如何相互交互的规范。通过API,不同的软件可以相互通信和交换数据,实现不同软件之间的集成和互操作。

API可以简化软件开发过程,提高开发效率,同时也提供了一种标准化的方式来访问和使用不同软件系统的功能。

API通常包括一系列的函数、方法、类或协议,开发者可以根据API的定义来编写代码,并利用API提供的功能来实现特定的功能或解决特定的问题。

实现的流程:

  1. 根据硬件的架构来提供操作系统的接口;
  2. 而高级语言(如Java)的库会调用操作系统的接口;
  3. 而我们只需要调用高级语言的API即可;

API的使用场景:

调用系统功能;

前端调用后端;

系统内部的相互调用;

企业间相互调用;

常见的API的类型:

  • SOAP/WebService(HTTP+XML)
  • GraphQL API
  • RESTful API(HTTP+JSON)(目前使用最为广泛)

二,概述

1,目标

网络安全,信息(数据)安全,应用安全;

信息安全的三要素:

  • 机密性
  • 完整性
  • 可靠性

2,威胁建模工具

常见的API风险:

1,欺骗;

攻击者的真实身份被伪装,伪装成受害者;

未进行身份验证

2,篡改;

将不希望被修改的数据,信息被修改;

3,抵赖;

不承认自己的行为;

未存在日志,审计的功能

4,信息泄露;

敏感信息被暴露;

未进行权限的控制

5,拒绝服务

妨碍正常的用户去访问;

未进行速率,频率的限制

6,越权

3,API的威胁

OWASP API TOP 10

对于上面的名词进行区分;

三,实战

挑战一:访问其他用户车辆的详细信息;

首先通过burp抓包;

对原始的包进行分析;发现其调用了API接口;

通过点击其他用户;抓到响应包;

将其进行替换;

然后就可以获得其他用户的详细信息;

挑战二:访问其他用户的机械报告;

首先上传并且查看自身的机械报告的包;

存在一个跳转的链接;

猜想可能为GET传值,进行重放;

可以看到自己的机械信息;

发现通过GET传值时存在report_id=...,可以对这个值进行遍历;

通过遍历report_id的值,就可以得到其他用户的就写报告;

挑战三:重置其他用户的密码;

通过前面挑战二得到的数据(邮箱)进行重置;

进行抓包尝试;

发现对次数有限制;

改为V2之后,重复以上的步骤;

正如猜测的一样;爆破成功;

V2应该为V3的以前版本,所以不具备爆破限制的能力;

接下来尝试登录;

登录成功;

挑战四:找到泄露其他用户敏感数据的API接口;

首先进行抓包;

尝试抓取回包;

这个API接口返回了用户敏感数据;

挑战五:找到泄露视频内部属性的API接口;

进行抓包;

对抓到的包进行重放;

可以对id进行遍历,即可获得上传视频的内部属性;

挑战六:使用contack mechanic完成应用层的dos;

首先在这个页面进行抓包;

发现漏洞点所在;

失败之后是否重发:否;

次数:1;

可以在这里进行修改;造成Dos攻击;

挑战七:删除其他用户上传的视频;

在修改界面进行抓包;

在请求包中存在:DELETE /identity/api/v2/user/videos/30 HTTP/1.1

将user改为admin是否可以存在管理员权限;

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕舟舟.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值