渗透测试-API接口测试

一颗小胡椒2021-12-28 22:57:33

接口测试

API:Application Programming Interface,即应用程序编程接口。

接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。那我们今天要讲的Web

API就是这么一类东西。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。

一个API中通常包含的结构有:

本文记录的是Postman(API 接口测试工具)学习,以及一些接口测试概念。帮助大家建立接口测试的整体概念,以及学会Postman工具的使用。

接口测试的作用:

接口测试的内容:

接口测试工具Postman的特点:

  1. 使用简单,上手快,很适合调试;
  2. 但保存请求,批量运行时,执行速度慢,建议使用Jmeter工具。

Postman

Postman直接官网下载:https://www.postman.com/downloads/,双击自动安装,打开注册后即可运行。

Postman的界面如下:

Get请求

直接看一个Get请求类型的API接口测试实例,以下是接口开发文档对接口参数的具体描述:

Postman新建请求后直接发送以下接口测试请求:

【注意】对于GET请求,可以直接点击Params,输入多个参数名称及value(键对值),即可自动添加在URL链接上,如下图所示

关于接口开发文档,测试过程中可以找开发人员要。

【注意】进行API接口安全测试时,一般不需要安全人员自己构造数据包, 客户会提供一个测试demo程序(HTML网页形式的),demo中已包含所有功能已经构造好的数据包,只需在页面上直接改请求参数内容然后点发送即可。因为客户自己的测试人员平时做业务功能测试时,也都是有现成的测试 demo的,不可能在Postman中一个一个手动构造请求去测试。

Post请求

同样直接看一个Post请求类型的API接口测试实例,以下是接口开发文档对接口参数的具体描述:

Postman新建请求后直接发送以下接口测试请求:

【注意】上述请求头是根据请求参数的形式自动生成的。请求头中的Content-Type与请求参数的格式之间是有关联关系,比如:

添加请求头

对于某些API接口,可能需要添加特定的请求头信息进行身份认证才能进行访问,比如 Sign、Token、Cookie、Authorization 等。在Postman中可直接通过 Headers 添加(以下实例的sign值为“用户名+密码”的32位MD5值):

或者使用专门的 Authorization 模块进行添加:

图示的几种身份认证方式简述如下:


这里补充下摘要认证方式:消息摘要式身份认证在基本身份认证上面扩展了安全性,服务器为每一个连接生成一个唯一的随机数,客户端用这个随机数对密码进行MD5加密,然后返回服务器,服务器也用这个随机数对密码进行加密,然后和客户端传送过来的加密数据进行比较,如果一致就返回结果。

渗透测试接口测试
本作品采用《CC 协议》,转载必须注明作者和本文链接
或是每一个请求有唯一的一个 token,请求提交后,token 失效这样。把其用户的浏览历史记录 url 发送到 intruder,遍历其用户的 id,看返回 response 信息中是否有正常返回的,且是其他用户的,则证明存在接口遍历问题。
翻看前端代码,可怜的js文件就几个,不过看还真的有了新发现,common.js里面定义了一些地址。扩大战果有了接口,除了测试接口未授权,我们还能对接口进行其他测试。看了下接口,账号只能后台添加、审核、删除、停用。不了解开发的心态)这里的参数js中并没有提供,需要自己Fuzz,不过这个系统非常的人性化,提供了报错信息,图是后补的。
渗透测试-API接口测试
2021-12-28 22:57:33
一个API中通常包含的结构有:本文记录的是Postman学习,以及一些接口测试概念。帮助大家建立接口测试的整体概念,以及学会Postman工具的使用。因为客户自己的测试人员平时做业务功能测试时,也都是有现成的测试 demo的,不可能在Postman中一个一个手动构造请求去测试
渗透测试Tips
2022-04-13 06:38:50
知己知彼,百战不殆1、如果提示缺少参数,如{msg:params error},可尝使用字典模糊测试构造参数,进一步攻击。
主要是可以拿着这些信息通过goole,或github搜索一些其他的敏感信息,扩大搜索面。效果就不多说了,在github泄漏一些账号或源码的事件简直不要太多。)如果得到的ip结果不同,即可判断使用了CDN。nmap扫描服务器进行搜集,我认为也是至关重要的一点,不能遗漏。里面的security项rename-command CONFIG ""又问:如果内容禁止使用ip如何探测内网端口1、使用dns解析2、127。
接口未授权在尝是了一波js接口后没有发现什么漏洞,但是查找到了一些信息泄露。sql注入(两枚)在刚刚注册了用户,登录进去。第一处将url和参数进行拼接。第二处第二处同样是js文件内找到。在图片中间的地方插入xss语句但是如果没有找到可以注册的api,则这个漏洞无法利用,为了扩大漏洞危害,尝试删除cookie,是否可以未授权文件上传。
了解接口常见漏洞,将帮助你在测试接口获取更多的思路。信息披露信息可能会在 API 响应或公共来源中披露。敏感数据可以包含攻击者可以利用的任何信息。例如,使用WordPress API的网站可能会在不知不觉中与导航到API路径的任何人共享用户信息。错误消息可帮助 API 使用者排查其与 API 的交互问题,并允许 API 提供者了解其应用程序的问题。其他良好的信息来源是在侦察期间收集的 API 文档和资源。
前言:渗透测试的时候往往会遇到盲注这类的繁杂的手工测试,所以需要编写半自动化脚本去进行测试减少时间浪费并快速
一颗小胡椒
暂无描述