文章总结: 文档定义了未授权访问漏洞,指出缺乏全局鉴权、配置错误及前端控制失效是主要成因。文章详细列举直接访问、路径枚举、敏感文件泄露、前端绕过及调试接口遗留等常见攻击场景,分析其造成数据泄露与系统被控的危害,并结合PortSwigger靶场演示实战利用,建议开发者实施后端强制鉴权以规避风险。 综合评分: 82 文章分类: WEB安全,漏洞分析,渗透测试
访问控制篇之未授权访问
原创
一个努力的学渣 一个努力的学渣
一个努力的学渣
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
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:一个努力的学渣 一个努力的学渣 一个努力的学渣《访问控制篇之未授权访问》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论