API安全

一,什么是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 小时前
2.5_XXE(XML外部实体注入)
xml·安全·网络安全·xml外部实体注入·外部实体注入·xml漏洞
黑客K-ing7 小时前
网络安全名词解释
开发语言·网络·安全·网络安全·php
无情啦少7 小时前
shodan 【2】(泷羽sec)
安全·web安全·网络安全
dxzhkj8888888 小时前
智能井盖监测终端的构成与工作流程
安全
网络安全-老纪9 小时前
网络安全专业名词解释
安全·web安全
鹏大师运维9 小时前
【系统配置】命令行配置麒麟安全中心应用程序来源检查
linux·安全·国产化·麒麟·国产操作系统·1024程序员节·应用检测
网安_秋刀鱼10 小时前
中间件安全
安全·web安全·网络安全·中间件·1024程序员节
nfgo10 小时前
FIPS203 后量子安全ML-KEM(标准简读)
安全·pqc
互联网安全研究院10 小时前
施耐德电气40GB数据失窃,遭黑客勒索
安全
网安CILLE10 小时前
2024下半年自学黑客(网络安全)
linux·网络·安全·web安全·网络安全·职场和发展·密码学