记一次某App未授权访问
AI-摘要
Zebei GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
记一次某App未授权访问
泽北漏洞介绍
未授权访问漏洞,顾名思义,是在攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。
漏洞产生原理
未授权访问是系统对用户限制不全,或者无限制,可以让任意用户或者限制访问用户,可以访问到内部敏感信息,导致的信息泄露,以及系统功能的执行。越权漏洞的产生原因是未对访问功能做权限的效对,或者限制不全,导致对用户的限制只局限于某一个功能和操作上。
而本文中所涉及的漏洞:服务端没有进行用户身份的校验,没有对userid值的请求进行加密和认证操作,穷举userid值导致大量高校个人用户信息进行泄露
漏洞危害
泄露用户信息,系统信息。某些服务和系统中,未授权访问还可以执行系统命令,操作系统文件,导致系统的整体安全遭到破坏。
漏洞复现
使用安卓模拟器进入某app,完成登录后,看到我的->编辑资料,点击->编辑资料,使用burpsuite进行抓包
注:不会使用安卓模拟器抓包请参考曾哥文献->:使用Proxifier玩转代理
此时抓到 一个数据包,此时进行重放发现得到个人信息,发现userid可穷举
然后我们将数据包发送到burpsuite的轰炸模块,将–>userid作为穷举的参数,从当前值遍历到89999,发现泄露很多个人信息(身份证,学校,电话)高达几万条,可怕…
附上信息泄露截图
漏洞修复建议
- 加入用户身份认证机制或token验证,对系统的功能点增加权限控制。
- 采用Java过滤器技术,对/pages下所有的URL进行登录状态检查,通过session.getAttribute()方法从session中获取登录成功时存入的session中的身份标识,判断客户端传递过来的身份标识是否与session中保存的一致,不一致则跳转到登录页面,关键代码如下:
1
2
3
4
5
6
7
8
9
10
11$ //从session里取的用户名信息
String username = (String) session.getAttribute("userID");
//getAttribute中变量根据实际变量传入。
//判断如果没有取到用户信息,就跳转到登陆页面
if ((username == null) || "".equals(username)) {
//跳转到登陆页面
res.sendRedirect("http://" + req.getHeader("Host") +"/login_oa.jsp");}
else {
//已经登陆,继续此次请求
chain.doFilter(req, res); }}
评论
匿名评论隐私政策