标签: API安全
API数据安全研究报告
看了一下中国信通院出的,API数据安全研究报告,有几个点还是可以说下的。
API安全风险分析
一. 外部威胁因素
- API漏洞导致数据被非法获取
- API成为外部网络攻击的重要目标
- 网络爬虫通过API爬取大量数据
- 合作第三方非常留存接口数据
- API请求参数易被非常篡改
二.内部脆弱性因素
- 身份认证机制
- 访问授权机制
- 数据脱敏策略
- 返回数据筛选机制
- 异常行为监测
- 特权账号管理
- 第三方管理
API安全系列——漏洞分析之Facebook OAuth框架漏洞
这个漏洞的公开链接为:https://www.amolbaikar.com/facebook-oauth-framework-vulnerability/
发布时间为2020年3月1日
OAuth基本的认证流程如下图:
OAuth 的流程是, 用户请求facebook资源给B,然后B发起许可,用户同意许可并请求facebook,facebook给了一个token给用户转交给了B,B再去利用这个token去facebook请求资源。 其实最重要的就是那个token。
参考链接:
API安全系列——Astra工具的使用
Astra是2018年黑帽大会上公布的一款工具,专门用于对REST API的渗透测试。
地址:https://github.com/flipkart-incubator/Astra
Astra竟然还是使用的Python2.7,那我就用docker来运行它。
首先,它依赖mango,先把mango跑起来。
$ docker pull mongo
$ docker run --name astra-mongo -d mongo
然后是GUI Astra
$ 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
浏览器打开 http://localhost:8094/
在URL中只能填入单个URL,效果如下
Astra 还是命令行模式,支持多个URL扫描,命令如下:
$ git clone -b docker-cli https://github.com/flipkart-incubator/Astra.git
$ cd Astra
$ docker build -t astra-cli .
$ docker run --rm -it --link astra-mongo:mongo astra-cli
然后可以使用python astra.py 来使用
$ python astra.py --help
_
/\ | |
/ \ ___| |_ _ __ __ _
/ /\ \ / __| __| '__/ _` |
/ ____ \__ \ | | (_| |
/_/ \_\___/\__|_| \__,_|
usage: astra.py [-h] [-c {Postman,Swagger}] [-n COLLECTION_NAME] [-u URL]
[-headers HEADERS] [-method {GET,POST}] [-b BODY]
[-l LOGINURL] [-H LOGINHEADERS] [-d LOGINDATA]
REST API Security testing Framework
optional arguments:
-h, --help show this help message and exit
-c {Postman,Swagger}, --collection_type {Postman,Swagger}
Type of API collection
-n COLLECTION_NAME, --collection_name COLLECTION_NAME
Type of API collection
-u URL, --url URL URL of target API
-headers HEADERS, --headers HEADERS
Custom headers.Example: {"token" : "123"}
-method {GET,POST}, --method {GET,POST}
HTTP request method
-b BODY, --body BODY Request body of API
-l LOGINURL, --loginurl LOGINURL
URL of login API
-H LOGINHEADERS, --loginheaders LOGINHEADERS
Headers should be in a dictionary format. Example:
{"accesstoken" : "axzvbqdadf"}
-d LOGINDATA, --logindata LOGINDATA
login data of API
API安全系列——SoapUI和Burp的联动使用
soapUI的下载: https://www.soapui.org/
SoapUI的优势主要是安全扫描的功能,burp用于手工测试,所以他们是可以很好的联动的。
第一步,代理设置。
burp充当代理服务器,把请求发给soapUI。所以burp是soapUI和目标服务器中间转发。
设置burp的代理
soapUI的代理设置
我们还可以使用SOAPUI的pro版本——ReadAPI进行测试。
创建项目:
随便找一个文件来测试:
看看单个请求:
可以在Transaction log中看到具体一次请求的所有参数。
报告内容