API漏洞检测研究

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/40124.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 75 第四题(605)种花问题

题目: 示例: 分析: 给一个数组表示一个花园,其中0表示空地,1表示已经有花种下去了. 空地可以种花,但是花和花之间不能相邻,即数组中不能有两个连续的1. 给一个数n,问我们能不能在花园里种n朵花. 我们可以找出我们所能种的最多的数量(而不是只种n朵),然后比较我们最多能种的…

Redis相关配置(3)

⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ 文章目录 Redis相关配置1、units2、Include3、loadmodule 加载模块4、NET…

你认为大数据的特点是什么?_光点科技

随着信息技术的迅猛发展,大数据已成为当今社会不可忽视的重要资源。它是指规模庞大且快速增长的数据集合,其中包含着宝贵的信息和见解。大数据的特点是多样而复杂的,它们塑造了我们的世界并深刻地影响着各行各业。 巨大的规模:大数…

css学习知识总结

一、css与html连接&#xff1a; 可以将css语句放在html内部&#xff0c;一般放在<head>之下&#xff0c;定义在<style>中&#xff0c;格式一般是一个“.”然后加上一个“名称”再加上一个“{}”&#xff0c;再在“{}”内部定义具体的语句。 二、调整元素 2.1 字体…

HIVE SQL 根据主键去重并实现其余字段分组聚合

相同个人id下所有字段按时间顺序补位&#xff0c;取首个不为空值 --数据建表 drop table if exists db.tb_name; create table if not exists db.tb_name ( id string,name string,tele string,email string,date string ) ; insert overwrite table db.tb_name values (&qu…

无涯教程-Javascript - Switch语句

从JavaScript 1.2开始&#xff0c;您可以使用 switch 语句来处理这种情况&#xff0c;它比重复的 if ... else if 语句更有效。 流程图 以下流程图说明了switch-case语句的工作原理。 switch 语句的目的是给出一个要求值的表达式&#xff0c;并根据表达式的值执行多个不同的语…

springboot项目中添加自定义日志

文章目录 当前项目使用的springboot为 2.2.2.release。低版本的话logging下的子标签有可能不是这样的。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.2.RELE…

Jetpack Compose之学习前的准备~

作者&#xff1a;TimeFine 一、为啥学习Compose 学习Compose一开始我是拒绝的&#xff0c;因为习惯改变太大&#xff0c;写xml挺好的为啥要卷Compose&#xff1f; 后来看了郭霖大佬的文章 写给初学者的Jetpack Compose教程&#xff0c;为什么要学习Compose&#xff1f; 觉得大…

K8S集群内部署Rancher2.5.16

K8S集群内部署Rancher2.5.16 一、环境 k8s&#xff1a;1.18.20 OS&#xff1a;Anolis OS 7.9 rancher&#xff1a;2.5.16 参考官网部署文档&#xff1a;https://ranchermanager.docs.rancher.com/zh/v2.6/pages-for-subheaders/install-upgrade-on-a-kubernetes-cluster 二…

springboot整合feign实现RPC调用,并通过Hystrix实现服务降级

目录 一、服务提供者 二、服务消费者 三、测试效果 四、开启Hystrix实现服务降级 feign/openfeign和dubbo是常用的微服务RPC框架&#xff0c;由于feigin内部已经集成ribbon&#xff0c;自带了负载均衡的功能&#xff0c;当有多个同名的服务注册到注册中心时&#xff0c;会根…

Linux中常用的指令

ls ls [选项] [目录或文件] 功能&#xff1a;对于目录&#xff0c;列出该目录下所有的子目录和文件&#xff1b;对于文件&#xff0c;列出该文件的文件名和其他属性 常用选项&#xff1a; -a:列出目录下的所有文件&#xff0c;包括以.开头的隐藏文件 -l:列出文件的详细信息。…

知识图谱推理的学习逻辑规则(上)7.19+(下)7.20

知识图谱推理的学习逻辑规则 摘要介绍相关工作模型 &#xff08;7.20&#xff09;知识图谱推理逻辑规则概率形式化参数化规则生成器具有逻辑规则的推理预测器 优化E步骤M步骤 实验实验设置实验结果 总结 原文&#xff1a; 摘要 本文研究了在知识图谱上进行推理的学习逻辑规则…

Git基本操作命令

** 创建仓库 **&#xff0c;用于被git管理 第一步&#xff1a; $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit第二步&#xff1a; 通过git init命令把这个目录变成Git可以管理的仓库&#xff1a; $ git init** 提交代码 **&#xff1a; 第一步&#xff…

网络安全在2023好入行吗?

前言 023年的今天&#xff0c;慎重进入网安行业吧&#xff0c;目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多&#xff0c;还有很多高中被挖过来的大佬。 理由很简单&#xff0c;目前来说&#xff0c;信息安全的圈子人少&#xff0c;985、211院校很多都才建…

Java 中 synchronized 的优化操作:锁升级、锁消除、锁粗化

由 并发编程中常见的锁策略 总结可知&#xff0c;synchronized 具有以下几个特性&#xff1a; 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转换为悲观锁。开始是轻量级锁实现&#xff0c;如果锁被持有的时间较长&#xff0c;就转换成重量级锁。实现轻量级锁时&am…

Raft算法之日志复制

Raft算法之日志复制 一、日志复制大致流程 在Leader选举过程中&#xff0c;集群最终会选举出一个Leader节点&#xff0c;而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息&#xff0c;还会处理客户端的请求&#xff0c;并将客户端的更…

1.Docker概念

文章目录 Docker概念Docker容器与虚拟机的区别内核中的2个重要技术Linux Namespace的6大类型docker三个重要概念部署Dockeryum安装二进制安装 Docker 概念 docker是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵循了apache2.0协议开源。docker可以让开发者打包他们的…

AtcoderABC243场

A - Shampoo A - Shampoo ] 题目大意 高桥家有三个人&#xff1a;高桥、他的父亲和他的母亲。每个人每晚都在浴室洗头发。他们按照顺序使用AA、BB和CC毫升的洗发水。 问&#xff0c;今天早上瓶子里有VV毫升的洗发水。在不重新装满的情况下&#xff0c;谁会第一个用完洗发水洗头…

K8s入门

K8s入门 目录 K8s入门namespacepoddeployment多版本扩缩容治愈能力滚动更新版本回退 serviceClusterIPNodePort ingress域名访问路径重写流量限制 存储抽象PV&PVCConfigMapSecret namespace kubectl get ns # 获取命名空间 kubectl create ns 名字 # 创建命名空间 ku…

学习babylon.js --- [3] 开启https

babylonjs提供WebVR功能&#xff0c;但是使用这个功能得用https&#xff0c;本文讲述如何使用自签名证书来开启https&#xff0c;基于第二篇文章中搭建的工程。 一 生成自签名证书 首先要安装openssl&#xff0c;这个去网上搜下就行了。安装完之后在终端下输入openssl回车可以…