声明

本博客提供的思路和技术仅限于提升自身技术,不得用于非法活动,任何非法活动均与本博客的立场相违背,违法者将依法承担法律责任

区分前后端分离

不管用框架识别、关键词识别等等,总的来说就是用各种方法观察访问的URL路径和返回的数据形式,如果出现下面类似的信息,就是前后端分离

# URL 路径
/api/
/api/v1/
/users/list
......
# 返回数据
大部分 JSON 格式
{
	username: "zzl",
	password: "zzl0805"
}
......

提取接口

因为前端和后端是区分开的,所以用户要拿到请求的信息,就需要前端去请求后端接口得到信息,所以提取后端接口是很重要的

Tips:还有一点很重要,用插件找接口时要注意路径中是否存在baseurl,怎么找?直接看抓包历史数据包中接口和提取接口是否一致,还有就是浏览器中全局搜索baseurl,这两种方式都试一下就行了,前者更准确

# 没有 baseurl
https://www.zzl.com/userinfo/list
# 存在 baseurl:/api/
https://www.zzl.com/api/userinfo/list
  • FindSomething 插件自动收集
  • 雪瞳插件自动收集
  • URLfinder 工具收集,GitHub下载即可
  • JSFinder 老牌工具,可以被上述工具替代,感兴趣的自行寻找

接口利用

  • 接口信息泄露、未鉴权等等,将提取的接口用爆破模块进行爆破即可,可以用不同请求方式都试一下,有一些具体文件上传接口等等,可以在前端找到相应功能点进行针对化测试
  • 浏览器访问不存在的接口,观察返回情况,观察后端是否采用springboot框架,测试 swagger、druid、actuator 这三个常见的漏洞
  • 敏感接口尝试进行 bypass
  • ……