API安全学习 - crAPI毛病靶场与API测试思路

伤心客  金牌会员 | 7 天前 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 878|帖子 878|积分 2634

crAPI毛病靶场与解题思路



  • 1. 前置基础
    1. * 1.1 认识crAPI
    复制代码
         
    • 1.2 环境搭建   
    • 1.3 API的分类与鉴别  
      
  • 2. 毛病验证
    1. * 2.1 失效的对象级别授权
    复制代码
         
      1.   * 挑战1:访问其它用户车辆的详细信息
      复制代码
             
      • 挑衅2:访问其它用户的机械报告   
         
    • 2.2 失效的用户身份验证   
      1.   * 挑战3:重置其它用户的密码
      复制代码
        
    • 2.3 过多的数据暴露   
      1.   * 挑战4:找到泄露其它用户敏感信息的API接口
      复制代码
             
      • 挑衅5:找到泄露视频内下属性的API接口   
         
    • 2.4 资源缺乏和速率限制   
      1.   * 挑战6:使用 “contact mechanic” 功能完成第7层DoS
      复制代码
        
    • 2.5 失效的功能级别授权   
      1.   * 挑战7:删除另一个用户的视频
      复制代码
        
    • 2.6 批量分配 / 大量赋值 / 自动绑定毛病   
      1.   * 挑战8:免费获得一件物品
      复制代码
             
      • 挑衅9:将您的结余增长1000元或以上     
      • 挑衅10:更新内部视频属性   
         
    • 2.7 SSRF   
      1.   * 挑战11:让crAPI发送一个HTTP调用到“www.baidu.com”并返回HTTP响应
      复制代码
        
    • 2.8 NoSQl Injection   
      1.   * 挑战12:想办法在不知道优惠券代码的情况下获得免费优惠券
      复制代码

      
  • 3. 总结
1. 前置基础

API是应用程序编程接口(Application Programming
Interface)的缩写,是软件体系中不同组件之间举行通讯和交互的接口。它是一组定义、规范和协议,用于编写应用程序的软件接口,答应不同应用程序之间举行相互通讯和交互。API通常由一系列的函数、协议、工具和标准组成,它们提供了一组约定的方法和规则,答应应用程序之间相互通讯、共享数据和服务。API常用于访问网络服务、操作操作体系、访问数据库等,因此它是现代软件开辟中非常告急和常用的技能之一。
常见的API面对的安全问题包罗:
  1. API面临的安全风险包括:
  2. 1.认证和授权问题:API需要进行有效的身份验证和授权以防止未经授权的访问和使用。
  3. 2.SQL注入攻击:攻击者利用API中的漏洞发送恶意代码来获取敏感数据。
  4. 3.信息泄露:API可能会泄露敏感数据,如用户个人信息或业务机密信息。
  5. 4.拒绝服务攻击:攻击者可能会发送大量请求来占用API的资源,导致服务不可用。
  6. 5.恶意软件:恶意软件可以使用API来传输和分发恶意代码,包括病毒、间谍软件和木马。
  7. 6.未加密的数据传输:未加密的数据传输可能会导致信息泄露和数据被窃取。
  8. 7.CSRF攻击:攻击者可以通过跨站请求伪造攻击来利用API执行未经授权的操作。
  9. 8.DoS攻击:API可能会受到分布式拒绝服务攻击,导致服务不可用。
  10. 9.JSON注入:攻击者可以通过篡改JSON消息来进行恶意操作。
  11. 10.代码注入:攻击者可以通过篡改API的代码来执行恶意代码。
复制代码
1.1 熟悉crAPI

crAPI是一个针对API安全的学习和研究平台,在该工具的帮助下,广大研究人员可以轻松学习和了解排名前十的关键API安全风险。因此,crAPI在设计上故意遗留了大量安全毛病,我们可以通过
crAPI学习和研究API安全。
crAPI采用了现代编程架构,该工具基于微服务架构构建,只需建立一个账号,即可开启我们的API安全研究之旅。
crAPI的挑衅是让您尽可能多地发现和利用这些毛病,破解crAPI有两种方法-
第一种是将其视为一个完备的黑盒测试,在那里你不知道方向,只是尝试从头开始明白应用程序并举行破解。第二种方法是先了解crAPI提供的毛病,然后自己动手尝试去利用它们。
固然,本着学习的态度,我们在本文中将参考其他几篇文章对API所面对的安全风险举行一个体系的学习,以供后续的安全学习。
1.2 环境搭建

起首,附上 crAPI 项目标 Giithub 地址:
https://github.com/OWASP/crAPI
还有 OWASP API Security Project 可以参考:
[https://owasp.org/www-project-api-security](https://owasp.org/www-project-
api-security/)
安装靶场的话,可以使用多种方式,本文直接使用 docker 搭建(必要先安装 docker 以及 docker-compose) ,docker
启动命令如下:
  1. #1.curl命令直接获取docker编排文件,也可以直接下载git源码,进入对应路径下进行操作
  2. curl -o docker-compose.yml https://raw.githubusercontent.com/OWASP/crAPI/main/deploy/docker/docker-compose.yml
  3. #2.拉取镜像文件
  4. docker-compose pull
  5. #3.运行对应的环境
  6. docker-compose -f docker-compose.yml --compatibility up -d
复制代码
排错中用到的命令:
  1. #停止docker中所有运行容器
  2. docker stop $(docker ps -q)
  3. #关闭所有已经停止了的容器
  4. docker rm $(docker ps -aq)
  5. #删除docker的所有数据卷
  6. docker volume rm $(docker volume ls -q)
  7. #删除所有镜像
  8. docker image rm $(docker image ls -a -q)
复制代码
由于最终的部署环境为在kali
linux上运行docker,在本地举行测试。则必要对原有的compose文件举行修改。可以使用vim中的全局变量修改功能:
  1. #1.编辑对应文件
  2. ┌──(rootkali)-[~/APILAB/crAPI]
  3. └─# vim docker-compose.yml
  4. #2.全局替换 --- 输入":"进入末行模式,并输入命令进行替换
  5. :1,250 s/127.0.0.1/192.168.2.159(本地测试机可以访问到的IP)/g
复制代码
1.3 API的分类与鉴别

API可以按照不同的分类方式举行划分,以下是几种常见的分类方式:
1.按照功能分类:


  • Web API:主要用于通过网络交互的应用程序,如HTTP API、RESTful API等。
  • 数据库 API:用于访问数据库体系的API,如JDBC、ODBC等。
  • 图形界面 API:用于创建图形界面的API,如Java Swing、Windows API等。
2.按照接口类型分类:


  • 开放 API:对外公开的接口,可以通过网络访问。
  • 内部 API:仅在企业内部使用的接口,如微服务API。
3.按照数据格式分类:


  • JSON API:使用JSON格式的API。
  • XML API:使用XML格式的API。
4.按照托管方式分类:


  • 内部 API:在本地服务器上托管的API。
  • 云 API:在云平台上托管的API,如AWS API Gateway、Google Cloud Endpoints等。
以上分类方式只是一种常见的分类方式,详细根据不同的需求和应用场景可以举行机动的分类和组合。
RESTful API (Representational State Transfer API) 是一种 Web API 设计风格和体系布局,它基于
HTTP 协议,建立在客户端和服务器之间的无状态毗连上。RESTful API 的核生理念是将全部的 Web 资源看作是一个唯一的 URI (Uniform

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表