API接口测试
API类型
Swagger:比如 /swagger/ /swagger-reources
springboot: 比如 /mappings /actuator
WSDL: /service /webservice
REST-WADL: /service /webservice
Openapi和RESTful
特征:SOAP - WSDL
Openapi- /Swagger
RESTful - /v1/api # 这个用的最多
发现:
soap的接口直接在后面加上 ?wsdl就能展示所有接口的类型
这个就是soap的界面
随便点击一个选项进去,去掉asmx后面的内容加上?wsdl就能看到这个所有接口功能的一个xml格式的数据,和参数的发送方法等等
这个是数据的发送格式
Opneapi - 直接看路径是否有这个Swagger
openapi举例
RESTful
这个就直接查看url是否有/v1/api /v1/这些特征
比如fofa这种
项目测试
postman\readapi+xray+burpsuit测试
首先打开postman点击import导入这个wsdl的url,注意这里一定要添加这个结尾
然后就会自动识别这个,直接下一步即可
这个就是导入的soap 的所有api接口功能点
然后配置代理让数据发送到burpsuit
burpsuit设置顶级代理发送到xray
xray运行命令监听7777
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output soap.html
之后在postman中选中导入的api项目然后点击三个点
运行集合的意思就是选中所有的功能测试点然后进行自动化的测试发包
最后记得选中这个保留响应包
之后直接点击run即可
这样这个数据就能发送给burpsuit和xray对这个api进行测试
第二种就是使用readyapi进行安全测试,将他的流量发送到burpsuit和xray
因为这个工具里面有安全测试功能,数据包更加有效
安装下载自行百度。
然后选择安全测试
之后导入这个wsdl的url进行自动拉取api项目,注意这里的分类
然后填入这个url
之后等待拉取
这里就是创建成功的项目
然后设置代理,代理到burpsuit
之后点击测试项目点击开始即可
这里可以设置代理的开关
然后点击左上角的运行
就能自动的进行安全测试
对于Opneapi的测试也可以使用postman进行联动,注意地址的填写得写.json的后缀地址
tips:这里有个小细节,就是如果postman报错baseurl错误的话就要设置变量
点击测试的项目然后找到变量的设置,将下面的host修改为要测试的地址即可
还有有个swagger-hack的项目
直接运行就能自动探测接口的响应,然后通过返回的数据使用postman或者burpsuit进行手动测试即可
APIkit针对swagger进行测试
下载APIkit载入burpsuit
(博客园这边无法继续添加图片了就只能文字)
然后抓包,点击swagger的数据包,之后鼠标放在request的框里面右键,点击Extensions选择APIket,然后点击Do target API scan,然后选择swagger的选项,填入Base path url,这个就填入swagger的host地址就可以了然后API document URL就要去找页面的 /api-docs这个url路径,然后点击scan即可自动化扫描了,其他的openapi和springboot的接口都可以用这个扫描
RESTful测试
这个就是直接寻找.json的url地址,然后载入到postman,之后进行手动的测试,或者可以直接联动其他的工具进行测试。这个难点就是得寻找到他的.json的地址,也就是全部接口的json文档地址。
总结:
自动化测试:各种工具进行联动测试
手工测试:身份遍历,修改ID进行测试,
接口枚举:修改url地址进行爆破获取
参数测试进行sql注入等。
在进行restful的时候可以把V2修改成V1进行测试,比如爆破,V2就无法爆破但是V1可以爆破