REST 是一种软件体系架构,而 RESTful API 则是其使用 REST 风格进行 HTTP 接口数据交互的一种接口表现形式,常用的接口数据格式有 JSON、XML、text 等。
相对于传统 Web 网页的 URL 携带参数的传递方式,RESTful API 这种接口形式的改变导致其渗透测试过程有着不同的特性,其主要特性如下。
-
RESTful API 的接口数据交互格式大多数为 JSON 格式,由多个参数或键值对组成的 JSON 结构作为参数与服务器端进行交互,这种请求参数的格式,对于渗透测试人员来说,Fuzz 测试时很容易混淆。
-
大多数 API 都有认证机制,比如 OAuth 2.0、APPID/APPKEY,尤其是客户自定义认证方式时,渗透测试工作的开展更加困难,需要先理清其业务逻辑才能更好地开展。
-
RESTful API 与传统的 Web 网页不同,API 通常是纯后端的应用,这种不可见或无持续连接状态的特性,导致渗透测试人员容易忽略某些接口或无法发现接口。
-
RESTful API 协议的 HTTP 状态码与普通 HTTP 协议存在差异,对安全辅助工具的自动化判断产生影响。
-
RESTful API 接口描述、参数格式与传统 Web 网页差异性较大,没有很好的自动化工具支撑,定制化工作多,对渗透测试人员的能力要求较高。
-
在目前前端技术栈比较丰富的情况下,很多接口交互的发起使用 Ajax 请求,比如 Vue、Angular、React,这对安全扫描工具自动化地捕获 API 流量是很大的挑战。
正是因为 RESTful API 渗透测试的这些特性,在渗透工作开展时,抓住要点,快速地发现问题显得更加重要。以下是渗透测试时的关键要点。
-
尽可能的先获取 API 规范描述文件,如在线接口文档、api-docs.json 文件、Swagger 文件,RAML 文件,API-Blueprint 文件等,通过文件来获取 API 端点和详细调用方式及参数定义。
-
在无界面的情况下,除了 API 规范描述文件,通过 Proxy 代理方式,对流量进行分析也是获取 API 详情的一种手段。
-
关注可攻击的点,比如请求参数、请求方法 GET/POST/PUT/DELETE、是否存在授权绕过(令牌是否正确验证,是否令牌有时效性)、是否存在注入点(MySQL、NoSQL)、是否存在批量分配的问题等。
-
关注通用的安全问题,比如是否存在 Key 泄露、是否存在暴力破解的可能、同一 API 多个版本不一致问题、XSS、CSRF 等。
-
面向不同层次会话的攻击,比如传输层是否使用 SSL 或使用可信的数字证书、应用层会话是否设置超时或采取限流熔断机制等。
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)
👉网安(嘿客)全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉网安(嘿客红蓝对抗)所有方向的学习路线👈
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
学习资料工具包
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。
面试题资料
独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
👉嘿客必备开发工具👈
工欲善其事必先利其器。学习嘿客常用的开发软件都在这里了,给大家节省了很多时间。