关于接口测试的小总结分享

admin 2024年12月16日15:41:32评论19 views字数 1930阅读6分26秒阅读模式
本文由掌控安全学院 -

  Track

 投稿

Track安全社区投稿~  

千元稿费!还有保底奖励~(https://bbs.zkaq.cn)

理解什么是接口

就我自己的理解来说,接口其实就可以理解为功能点,例如你有一个/print接口,它的功能是返回一个字符串hello world,请求方法是GET,拼接到URL上访问http://xxx.com/print ,返回给你一个hello world这个字符串数据,这个就是一个名字叫做print返回hello world字符串的接口。(实际上接口的概念与之大有差异,这里仅为方便理解而做此解释。)

接口访问需要注意是否有前缀

比如/web/ ,/web/auth/,可以从历史包中获取接口信息,然后再将获取到的接口信息通过删除、拼接操作来fuzz接口,从而访问到正确的接口:

关于接口测试的小总结分享

例如接口/app/selcourse/queryCourseInfo ,拼接访问/web/app/selcourse/queryCourseInfo提示404,/web/edu/app/selcourse/queryCourseInfo 则有内容回显。

关于接口测试的小总结分享

关于接口测试的小总结分享

接口访问需要注意请求方法 POST/GET etc…

可以将请求方法换成OPTIONS,来看该接口支持哪些方法:

关于接口测试的小总结分享

也可以各种请求方法挨个尝试,观察是否有报错或者数据返回:例如Request method ‘GET’ not supported,或者响应500等等

关于接口测试的小总结分享

关于接口测试的小总结分享

关于接口测试的小总结分享

接口访问需要注意是否鉴权(未授权漏洞挖掘)

此处接口为Access_token鉴权:

关于接口测试的小总结分享

删除后:500

关于接口测试的小总结分享

如果删除后回显内容正常,则此处存在未授权。

接口访问需要注意是否带有参数

如图,带参数返回数据正常:

关于接口测试的小总结分享

不带参数则返回错误信息或者异常或无数据返回,这些情况都有可能,因此需要多做尝试。

关于接口测试的小总结分享

接口访问所带参数可尝试置空或者删除操作

前面说到接口访问需要参数,后面说到可尝试删除操作,其实这两点并不冲突,将参数删除后可能会返回所有数据内容。

参数置空操作则应该是数据库模糊查询的利用,模糊查询后返回所有数据内容:

如图,deptid为213时,只返回两条内容

关于接口测试的小总结分享

deptid置空或者直接传入{}后,返回数据内容大于两条

关于接口测试的小总结分享

关于接口测试的小总结分享

接口访问所需要的参数该如何获取以及猜测接口功能

传入空值,例如{},{[]},[]

可以通过接口以接口名字为基础进行猜测处理:

例如接口:/web/authmanage/api/common/findUserByDeptIdA,根据英文释义进行猜测,By是通过,findUser是查询用户,ByDetpIdA 通过DetpIdA,则这个接口的功能是:通过DetpIdA来查询用户相关的内容。detp一般是“部门”,这个是个人经验,通过部门IDA来查询用户相关的内容,猜测之后,就可以进行尝试,此处还需注意,传参类型,我是在URL上直接 ?name=1拼接参数呢,还是放到POST中,以JSON或者表单格式如name=1&pass=2这种进行传参呢?还是那两个字:尝试。

例如:

GET /web/edu/stuManager/stuByMasterAndNumber/230xxxxxx7 HTTP/2
该接口的参数不好猜测,一方面,参数是直接拼接到URL上,这个之后也可以进行尝试,那么按照这个规则,stu学生,by通过,master导师,and逻辑条件,number数字这里则猜测是学号,或者导师的名字或者导师的工号

/web/edu/stuManager/stuByMasterAndNumber/学号

/web/edu/stuManager/stuByMasterAndNumber/工号

/web/edu/stuManager/stuByMasterAndNumber/url_encode(导师名字)

或者基于对方是什么系统进行猜测:

如对方是学生管理系统,那参数可能是stuNumber, stuno,studentNumber,number,stuName等等等等。

字典fuzz:

这个没什么好说的,如果你有一个强大的参数字典,可尝试直接爆破之。

其他接口收集参数:

如果你在一个接口上没有得到对应的参数,而此时系统还有其他功能点,可以点一点其他功能点,其他功能点也会发起请求请求数据,此时可以从其他接口处采集来参数,然后用采集来的参数名去fuzz,感觉这样准确度会高一些。

小总结

一般访问一个接口的顺序应该是:

1,得到正确的路径

2,获取正确的请求方式

3,区分是否需要权限才能访问

4,使用正确的传参。
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

关于接口测试的小总结分享

 

原文始发于微信公众号(掌控安全EDU):关于接口测试的小总结分享

 


免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月16日15:41:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   关于接口测试的小总结分享https://cn-sec.com/archives/3514028.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息