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是否可以存在管理员权限;

相关推荐
shmily ....2 小时前
文件上传漏洞原理
网络·安全
IPFoxy6662 小时前
如何判断静态代理IP地址是否被污染?
网络·安全·web安全
网络研究院3 小时前
什么是 ARP 欺骗和缓存中毒攻击?
网络·安全·ddos·攻击·arp·实践·缓解
创小董4 小时前
低空经济时代:无人机飞行安全要点详解
安全·无人机
紫队安全研究5 小时前
《Web3 安全:攻击与防御全景指南》
安全·web3
黄焖鸡能干四碗7 小时前
【需求分析】软件系统需求设计报告,需求分析报告,需求总结报告(原件PPT)
大数据·人工智能·安全·测试用例·需求分析
hallo1288 小时前
英文论文安全的免费查重网站
安全·论文
速盾cdn10 小时前
速盾:如何判断高防服务器的防御是否真实?
网络·安全
一尘之中11 小时前
网 络 安 全
网络·人工智能·学习·安全
学步_技术13 小时前
自动驾驶系列—LDW(车道偏离预警):智能驾驶的安全守护者
人工智能·安全·自动驾驶·ldw