代码审计——未授权访问详解
【摘要】 代码审计——未授权访问详解
01 漏洞描述
未授权访问漏洞,是在攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。
简单来说,就是用户不经过身份认证即可访问敏感资源,可能造成敏感信息泄露,或者其他恶意操作。
02 审计要点
未授权访问的根本原因是系统鉴权机制不完善,用户直接输入URL便可对原本不允许查看的内容进行访问。
当判断代码中是否存在未授权访问漏洞时,可从以下2点进行判断:
1、是否使用了身份认证的框架?如spring security安全框架。
2、是否对用户身份进行认证?如cookie或者token认证。
03 漏洞特征
应用没有使用专用的身份认证框架,同时在敏感功能业务访问前,没有对用户的session进行校验。
有时候一些管理页面是禁止普通用户访问的,有时开发者会忘记对这些文件进行权限验证,导致漏洞发生。
该缺陷还往往产生在如下场景:
1、在UI中泄露了敏感功能,客户端仅通过JavaScript脚本作显示控制;
2、服务端缺失访问敏感功能的的身份鉴别机制;
3、服务端的访问敏感功能的身份鉴别机制存在缺陷,身份鉴别信息可由攻击者伪造;
4、敏感的文件名/方法名容易被猜测。
04 漏洞案例
在代码审计的过程中,可收集出现的接口以及系统功能地址,在测试环境下利用http请求工具批量对接口及url进行未授权访问测试。
漏洞验证示例如下:
05 修复方案
1、在打开管理页面URL时,首先判断当前用户是否拥有该页面的权限,如果没有权限,就判定为“权限提升”攻击,同时记录安全日志。
2、设计代码时建议使用成熟的权限框架处理权限问题,比如spring security。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)