API漏洞检测研究

news/2024/10/25 17:25:10/
xray API漏洞检测_青霄的博客-CSDN博客
Swagger ui接口自动化批量漏洞测试_swgeer-ui 漏洞_山山而川'的博客-CSDN博客
什么是 API 安全测试以及它是如何工作的? | Synopsys
API 安全测试针对应用程序编程接口 (API) ,就其安全性、正确性和可靠性进行测试,以确保其符合组织的最佳实践。
API 安全测试有助于识别和预防漏洞及其相关的潜在组织风险。通过了解 API 的输入预期,API 扫描工具能够智能地模糊化数据,以发现隐藏的错误。
API 扫描背后的理念是精心设计输入,以发现 API 中的错误和未定义的行为,其在本质上是模仿潜在黑客的行为和攻击向量。
传统的DAST扫描工具无法完全覆盖API,它们只覆盖一小部分API。如果组织的前端无法与所有 API 端点进行交互,传统的 DAST 扫描工具则会将其遗漏。因此,必须采用全面的 API 测试策略,以解决 API 所有端点中的问题。
【API安全】KCon 2022议题分享:自动化API漏洞挖掘 (zhihu.com)
 
 
十款优秀API安全测试工具-51CTO.COM
商业 vs 开源:10大主流API检测工具_腾讯新闻 (qq.com)
商业API测试工具与平台:
  • APIsec:针对API的渗透测试工具。很多工具可以扫描用于脚本注入等典型攻击的常见漏洞,但APIsec重在测试目标API的方方面面,确保从核心网络到访问核心网络的端点都免于遭受API代码漏洞影响。
  • AppKnox:AppKnox通过扫描定位在生产环境、端点或任何可能部署之处的API。定位后,用户可以选择API提交,进行进一步的测试。AppKnox测试所有可能导致API中断或被破坏的常见问题,测试包括对Web服务器、数据库和服务器上与API交互的所有组件的完整分析。
  • Data Theorem API Secure:旨在适应任何持续集成和持续交付/部署(CI/CD)环境,从而在开发的每个阶段和生产环境中为API提供持续的安全。该分析器引擎会持续搜索网络,查找新的API,并快速识别未授权API或属于公司影子IT的那些API。
  • Postman:使用安全存储库可以确保未来的API从一开始就保持严格的安全和组织标准。
  • Smartbear ReadyAPI:支持一键执行API安全分析,也还支持其他关键功能,例如查看API处理非预期负载或使用量突增的性能。
  • Synopsis API Scanner:除了安全测试之外,该工具还在其深度扫描与测试套件中融合了模糊测试。
开源API测试工具:
  • Astra:主要专注于表征状态转移(REST)API。Astra的效用在于帮助集成进CI/CD流水线,进行检查,确保常见漏洞不会蔓延到所谓的安全REST API中。
  • crAPI:crAPI是可以连接到目标系统并使用根客户端默认处理程序集提供基本路径的少数封装器之一,并且无需创建任何新连接即可完成此操作。高级API开发人员可以之节省大量时间。
  • Apache JMeter:Apache JMeter精巧的套件可以测试静态或动态资源的性能。它可以大量生成真实流量的模拟负载,供开发人员发现其API在压力下的表现。
  • Taurus:可以很方便地将独立API测试程序转换为连续测试操作。
  • FuzzapiFuzzapi是一个使用API_Fuzzer并为gem提供UI解决方案的rails应用程序。
DAST( 动态应用程序安全测试
DAST是测试web、移动和API应用程序以通过模拟攻击发现漏洞的过程。
DAST是使用自动扫描仪或手动渗透测试实践来实时测试应用程序的过程。
主要由 appsec 和渗透测试人员使用。
大多数自动扫描程序会发现 SQL 注入、NoSQL 注入、XSS 等严重漏洞。逻辑错误、身份验证和授权缺陷等难以发现的漏洞通常由道德黑客、渗透测试人员和 AppSec 工程师完成。首选方法是编写可以作为 CI/CD 的一部分执行的自动化测试用例。
优点
  • 独立于应用程序堆栈。它作为一个整体测试应用程序。在运行时的所有源代码和库都经过漏洞测试。
  • 不需要访问源代码
  • 误报率低:根据 OWASP 的基准项目,DAST 解决方案产生的误报率低于其他测试方法。
  • 识别配置问题:DAST 擅长发现仅在应用程序运行时出现的安全漏洞。此外,DAST 从外向内攻击应用程序,将其置于完美位置,以发现其他 AST 工具遗漏的配置错误。
  • 逻辑漏洞:这些缺陷在开发早期很难检测到。这些问题是由安全配置、数据和其他因素引起的,所以很难在非生产环境中检测到,检测这些缺陷需要在编写测试用例并在开发/生产中连续执行它们。
缺点:
  • 在代码中找不到漏洞的确切位置
  • 无法完全覆盖API
  • 测试可能很耗时。
免费的 DAST 解决方案:
  • EthicalCheck:API 的免费和自动化 DAST。   Free and Instant API penetration Testing | EthicalCheck™
  • Burp Suite:编写你的测试  Download Burp Suite Community Edition - PortSwigger
Astra:针对REST API的自动化安全测试工具
GitHub - flipkart-incubator/Astra: Automated Security Testing For REST API's
Astra可以自动检测和测试登录和注销(身份验证API),因此任何人都很容易将其集成到CI/CD管道中。Astra可以将API集合作为输入,因此这也可以用于在独立模式下测试API。
  • SQL注入
  • 跨站点脚本
  • 信息泄露
  • 断开的身份验证和会话管理
  • CSRF(包括盲CSRF)
  • Rate limit
  • CORS错误配置(包括CORS旁路技术)
  • JWT攻击
  • CRLF检测
  • XXE盲注
要求:
  • Linux or MacOS
  • Python 2.7
  • mongoDB
安装:
# 运行mongo容器
docker run --name astra-mongo -d mongo
# 安装GUI Docker
$ git clone https://github.com/flipkart-incubator/Astra.git
$ cd Astra
$ docker build -t astra .
$ docker run --rm -it --link astra-mongo:mongo -p 8094:8094 astra
# 安装CLI Docker
$ git clone -b docker-cli https://github.com/flipkart-incubator/Astra.git  # -b指定分支
$ cd Astra
$ docker build -t astra-cli .
$ docker run --rm -it --link astra-mongo:mongo astra-cli
http://192.168.11.135:8094/,经测试,感觉效果不行,dvwa漏洞环境现有的sql注入与csrf接口居然没检测出。
Fuzzapi:
Fuzzapi/fuzzapi: Fuzzapi is a tool used for REST API pentesting and uses API_Fuzzer gem (github.com)
https://youtu.be/rh7U6Kob24g  fuzzapi视频
https://youtu.be/viCCrt1aySE  fuzzapi视频
Automating API Penetration Testing using fuzzapi - AppSecUSA 2016 - YouTube fuzzapi POST请求
Fuzzapi是一个使用API_Fuzzer并为gem提供UI解决方案的rails应用程序。
安装:
​git clone https://github.com/Fuzzapi/fuzzapi.git
cd fuzzapi
docker-compose build
docker-compose up
web访问:http://localhost:3000 
安装问题:
1、Gemfile依赖于ruby,Gemfile文件中要求ruby2.3.0版本,所以要修改Dockerfile中“FROM ruby:2.3.0 ”
 
2、错误“There are problems and -y was used without --force-yes”可按照如下解决:
 
3、根据ruby 2.2安装bundler_tigergm310的博客-CSDN博客,可知由于bundler的最新版本已经不再支持ruby 2.3以下版本,需要指定bundler的版本:
 
4、错误“Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate
 
Rails Assets有段话:
 
据此修改如下:
 
构建后:
 
访问web:http://127.0.0.1:3000/
GET请求:填写参数如下:
文件上传接口扫描结果如下:服务器版本信息披露,通过x-powered-by进行信息披露、IDOR(越权漏洞)、Rate limit
 
POST请求:参数如下:
中级sql注入接口扫描结果:
xray:

chaitin/xray: 一款完善的安全评估工具,支持常见 web 安全问题扫描和自定义 poc | 使用之前务必先阅读文档 (github.com)

xray 安全评估工具文档

一款功能强大的安全评估工具。
xray 并不开源
目前支持的漏洞检测类型包括:
  • XSS漏洞检测 (key: xss)
  • SQL 注入检测 (key: sqldet)
  • 命令/代码注入检测 (key: cmd-injection)
  • 目录枚举 (key: dirscan)
  • 路径穿越检测 (key: path-traversal)
  • XML 实体注入检测 (key: xxe)
  • 文件上传检测 (key: upload)
  • 弱口令检测 (key: brute-force)
  •  jsonp 检测 (key: jsonp)
  • ssrf 检测 (key: ssrf)
  • 基线检查 (key: baseline)
  • 任意跳转检测 (key: redirect)
  • CRLF 注入 (key: crlf-injection)
  • Struts2 系列漏洞检测 (高级版,key: struts)
  • Thinkphp系列漏洞检测 (高级版,key: thinkphp)
  • XStream 系列漏洞检测 (key: xstream)
  • POC 框架 (key: phantasm)
主要特性:
  • 漏洞范围广
  • 检测速度快
  • 检测算法优秀
  • 高度定制化
  • 更新速度快
使用方法:
1、查看版本号
./xray_linux_amd64 version
 
2、使用使用 xray 基础爬虫模式进行漏洞扫描
./xray_linux_amd64 webscan --basic-crawler http://testphp.vulnweb.com/ --html-output xray-crawler-testphp.html
   
   
3、使用http代理进行被动扫描
./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output proxy.html
通过插件FoxyProxy设置浏览器 http 代理为 http://127.0.0.1:7777,就可以自动分析代理流量并扫描。
4、手动指定本次运行的插件
默认情况下,将会启用所有内置插件,可以使用下列命令指定本次扫描启用的插件。
xray webscan --plugins cmd-injection,sqldet --url http://example.com
xray webscan --plugins cmd-injection,sqldet --listen 127.0.0.1:7777
5、指定插件输出
可以指定将本次扫描的漏洞信息输出到某个文件中:
xray webscan --url Example Domain \
--text-output result.txt --json-output result.json --html-output report.html
报告样例: XRay Report

http://www.ppmy.cn/news/959486.html

相关文章

[RK3568] AMP架构

Rockchip 平台异构多系统 AMP (非对称多核架构)的开发软件包,支持 Linux(Kernel) 、 Standalone(Hal)、 RTOS(RT-Thread) 组合 AMP 构建形式。 Standalone(Hal) HAL:Hardware Abstraction Layer,硬件抽象层。 硬件抽…

putty 快速登录服务器的方法

Session 选项卡中填写 Host Name, Port, Save Sessions, 假定名称为 tiktok 右键 putty 快捷方式,属性 > 快捷方式 > 目标,加入下面的参数 -load "tiktok" -l "root" -pw "密码"Mac 连接就直接在控制台输入以下命…

记录在编写ChatGPT爬虫网页时的问题

在编写好获取星球问题的爬虫后通过topic_id来找到问题的回答 获取没问题,是正常获取数据的。 但是在回答问题的时候应该直接导入topic_id而不要先在网页上回答了再去测试。不然会获取不到数据而导致错误代码1004

python 爬虫爱好者必须掌握的知识点“ 协程爬虫”,看一下如何用 gevent 采集女生用头像

本篇博客是 python 爬虫 120 例中,基础知识补充篇,内容将围绕 python 协程进行。 在开始协程相关知识前,先补充一下预备概念。 在 python 爬虫的学习过程中,经常要区分两个概念,一个叫做 I/O 密集型任务,另一个叫做 计算密集型任务。 以上两种任务,都有 2 个前提,一是…

利用chatgpt帮我写爬虫代码

首先我这里需要先赋予它一个身份,以便他更好的理解我们的话 接下来就可以让他帮我们写代码了 import requests from bs4 import BeautifulSoup# 请求头部信息,模拟浏览器访问 headers {user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/5…

怎样构建抖音壁纸表情包小程序?

第一,最新版本的图片小程序,壁纸表情头像游戏教程,教你跟上抖音小程序的步伐 我们都很熟悉取图(抖音演示:云云取图)。 传统的方法是搜索密码,然后下载和观看广告。这样,在瞬息万变的网络中,竞争力是有限的。…

chatgpt赋能python:Python安装教程:一步步实现Python开发环境搭建

Python安装教程:一步步实现Python开发环境搭建 Python是一种高效、易读、易维护的编程语言。在人工智能、数据科学、Web开发等领域都有广泛的应用。如果你是一名初学者或Python开发者,本文将为你提供Python安装教程。 第一步:下载Python安装…

chatgpt赋能python:Python虚拟环境搭建指南

Python虚拟环境搭建指南 Python是一种广受欢迎的编程语言,它可以用于各种应用程序开发。Python语言优雅简洁,易于理解和学习。但是,当您在多台计算机上编写Python代码时,会遇到与环境设置和包依赖项相关的问题。 虚拟环境可帮助…