访问控制篇之未授权访问

admin 2026-03-09 01:42:50 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档定义了未授权访问漏洞,指出缺乏全局鉴权、配置错误及前端控制失效是主要成因。文章详细列举直接访问、路径枚举、敏感文件泄露、前端绕过及调试接口遗留等常见攻击场景,分析其造成数据泄露与系统被控的危害,并结合PortSwigger靶场演示实战利用,建议开发者实施后端强制鉴权以规避风险。 综合评分: 82 文章分类: WEB安全,漏洞分析,渗透测试


cover_image

访问控制篇之未授权访问

原创

一个努力的学渣 一个努力的学渣

一个努力的学渣

2026年3月8日 11:02 北京

免责声明

本文只做学术研究使用,不可对真实未授权网站使用,如若非法他用,与平台和本文作者无关,需自行负责!

定义

  • 未授权访问,也称为匿名访问或认证缺失,是指未经过身份验证的用户(即匿名用户或访客)能够访问到本应需要登录后才能访问的资源或执行的功能
  • 一句话理解:你家大门没锁,甚至连门都没关,任何人路过都能直接进家拿东西
  • 核心点:无登录校验 + 无权限校验

为什么会出现未授权访问

  • 未授权访问的核心原因在于,服务器未能对需要保护的资源实施强制身份验证

  • 具体来说,通常有以下几点原因:

  • 缺乏全局的身份验证拦截机制:

  • 开发者可能只对某些功能点添加了身份验证检查,而遗漏了其他同样需要保护的接口。尤其是在项目迭代中,新增加的接口没有继承已有的权限控制逻辑

  • 错误地认为某些路径是安全的:

  • 开发者可能认为某些URL路径(如/admin)或API端点默认只有内部人员知道,或者认为前端隐藏了链接就安全了,从而没有添加身份验证。但攻击者可以通过目录扫描、代码分析或猜测发现这些路径

  • 配置错误:

  • 在Web服务器或应用框架的配置中,可能错误地将某些敏感目录设置为可公开访问。例如,Nginx或Apache配置中允许匿名访问/backup、/logs等目录

  • 依赖于客户端的隐藏:

  • 仅仅在前端通过路由守卫或按钮隐藏来控制访问,而后端所有接口都开放。攻击者可以直接调用后端API,绕过前端限制

  • 对静态文件的保护不足:

  • 敏感文件(如用户上传的身份证照片、私人文档)存储在服务器的某个目录下,但未对该目录的访问进行身份验证。如果攻击者猜到或枚举出文件名,就能直接下载文件

常见的攻击场景

直接未授权访问(最常见,占比 80%)

  • 原理: 敏感接口 / 管理页面完全没有登录校验,匿名直接访问
  • 技术实现:
  # 管理员用户列表接口,无需登录直接访问http://demo.com/admin/user/list
  # 系统配置接口,匿名获取数据库信息http://demo.com/api/system/config
  • 影响: 直接返回所有用户数据 / 系统配置 → 漏洞成立

路径枚举型未授权访问

  • 原理: 后端隐藏了管理菜单,但接口路径可猜解,且未做登录校验

  • 常见枚举路径:

  • /admin/*

  • /api/admin/*

  • /manage/*

  • /System/*

  • /config/*

  • /backup/*

  • /log/*

  • /setup/*

  • 技术实现:

  普通枚举:http://demo.com/manager/user/exportAll
  • 影响:无需登录,直接导出全库用户数据

敏感文件 / 目录未授权访问

  • 原理:服务器开启目录浏览,或备份文件、日志、配置文件未做权限控制,可直接下载

  • 高危敏感文件:

  • /wwwroot/backup.sql

  • /config/config.php

  • /logs/error.log

  • /WEB-INF/web.xml

  • /.git

  • /.env

  • 影响: 直接下载全站数据库备份 → 核心数据全泄露

前端路由绕过(只控前端,不控后端)

  • 原理:Vue/React/ 小程序等单页应用,只在前端做路由守卫(页面拦截),但后端接口完全不校验登录

  • 攻击方式:

  • 前端跳转到登录页

  • 攻击者直接抓包调用后端接口

  • 接口无校验 → 未授权访问成功

  • 漏洞根源: 前端只能做展示,永远不能做鉴权,所有校验必须在后端

测试 / 调试接口遗留未授权

  • 原理: 开发时的测试接口、调试接口、健康检查接口,上线后未删除、未关闭、未加权限

  • 常见示例:

  • /api/test

  • /api/debug

  • /api/health

  • /dev/*

  • 影响: 很多测试接口可直接查库、删数据、改配置

第三方组件未授权访问

  • 原理: Swagger、Actuator、PHPMyAdmin、Druid 监控等第三方管理面板未设密码

  • 常见示例:

  • /swagger-ui.html

  • /actuator/env

  • /druid

  • 影响: 直接查看所有接口、环境变量、数据库连接信息

漏洞危害

未授权访问的危害程度取决于暴露的资源或功能

  • 信息泄露:直接获取其他用户的个人信息、订单、聊天记录、系统配置、数据库备份等敏感数据。
  • 数据篡改/删除:如果未授权访问的接口支持写操作(如/api/deleteUser未做验证),攻击者可以直接删除数据。
  • 系统被控:访问后台管理功能,可能导致攻击者上传恶意文件、获取服务器权限。
  • 业务逻辑被滥用:未授权调用某些业务接口(如发短信、注册、下单)可能导致短信轰炸、资源耗尽等。
  • 法律风险:泄露大量用户隐私数据,可能导致公司面临法律诉讼和巨额罚款。

靶场

https://portswigger.net/web-security/all-labs#access-control-vulnerabilities

实验一:不受保护的管理功能和不可预测的URL

测试:查看源代码,得到一个admin的URL地址,可直接访问,无需账号密码

查看页面源代码,发现/admin-qtkyud:

成功未授权访问

实验二:用户角色由请求参数控制

测试:false变为true


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:一个努力的学渣 一个努力的学渣 一个努力的学渣《访问控制篇之未授权访问》

访问控制篇之未授权访问 网络安全文章

访问控制篇之未授权访问

文章总结: 文档定义了未授权访问漏洞,指出缺乏全局鉴权、配置错误及前端控制失效是主要成因。文章详细列举直接访问、路径枚举、敏感文件泄露、前端绕过及调试接口遗留等
评论:0   参与:  0