技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
SmartAdmin-3.13.0-”假”权限绕过分析
ChenXun
漏洞分析
276浏览 · 2025-03-07 13:44
返回文档
为什么说是假呢?因为这个”权限绕过“只是方便开发测试,毕竟应该没人会把开发环境直接放到公网吧
项目地址
Releases · 1024-lab/smart-admin
https://gitee.com/lab1024/smart-admin/
漏洞分析(权限绕过)
首先看了看项目的依赖,基本上没得搞,fastjson为2,看一下拦截器在
MvcConfig
下注册添加了
AdminInterceptor
为拦截器
excludePathPatterns
方法为不需要拦截的路径,即SWAGGER_WHITELIST中的内容
这样一来表示这些路径不需要登录即可访问,
addPathPatterns
为需要拦截的,这里用的通配符表示除上面所有的接口都需要经过拦截器,那么如果拦截器中权限校验写的有问题就会出现权限绕过的问题,下面来看看拦截器
AdminInterceptor
首先是获取token,
StpUtil.getTokenValue()
为sa-token依赖的原生方法
可以看到这里获取的tokenname为x-access-token,即从配置文件中获取定义的token名
获取完之后经过
isDevDebugNumberToken
方法
检查是否是数字或者为null,这里主要关注为数字的情况
是数字就会检测是开发环境还是测试环境,任意一个都会返回true,这样即进入后面的if中
此时
loginId
就会变为
1:123
的形式,123即我们传入的token,1即admin权限id
后续就是判断你所访问的controller是否有无需登录的注解,这里有关键的一行
这里
requestEmployee
最终的结果必须不为null否则就会出现未登录
那么就跟进看看处理逻辑
可以看到这里必须为存在的用户,而且后面还有权限校验,先看一下本地数据库,直接能得到管理员id就是1
后面从代码可以看到超管无需权限校验
而这个admin即为超管,id为1即可绕过
漏洞验证
随便拿个接口验证即可
/goods/exportGoods
当
x-access-token
无值的情况
当不为超管的情况
为超管的情况
分析完其实这个只能算方便开发环境测试,生产环境
debugNumberTokenFlag
返回的也是false
所以只能算是学习吧
参考
https://mp.weixin.qq.com/s/5FFh9-4pIzIXh9OJNz_blg
深情哥还是牛的,一开始没仔细看都没发现这个权限绕过
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
没有评论
发布投稿
热门文章
1
契约锁电子签章系统 pdfverifier 远程代码执行漏洞分析(补丁包逆向分析)
2
COFF文件解析 | CoffLdr
3
Java内存马篇——WebSocket内存马及GodZilla二开
4
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
5
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
近期热点
一周
月份
季度
1
契约锁电子签章系统 pdfverifier 远程代码执行漏洞分析(补丁包逆向分析)
2
COFF文件解析 | CoffLdr
3
Java内存马篇——WebSocket内存马及GodZilla二开
4
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
5
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
暂无相关信息
暂无相关信息
优秀作者
1
T0daySeeker
贡献值:41700
2
一天
贡献值:24800
3
Yale
贡献值:24000
4
1674701160110592
贡献值:21800
5
1174735059082055
贡献值:16000
6
手术刀
贡献值:14000
7
Loora1N
贡献值:13000
8
bkbqwq
贡献值:12800
9
lufei
贡献值:11000
10
xsran
贡献值:10600
目录
项目地址
漏洞分析(权限绕过)
漏洞验证
参考
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板
没有评论