token 被盗引发的数据安全问题

2021 年 11 月 18 日
 yuan93
最近在过等保,测试人员拿 admin 用户的 token 替换到了 guess 用户的请求头里,得出一个存在越权的结论,给的修复方案是: 对所有用户功能基于 sessionid 判断用户权限。

但我寻思 sessionid 不也存在浏览器端吗,一样可以被等保测试人员拿到放在其他用户的请求里伪装 admin 用户
12824 次点击
所在节点    信息安全
118 条回复
conhost
2021 年 11 月 19 日
@IvanLi127 这样也可以,我只是针对你说的循环加 token 说的,😁😄
pupboss
2021 年 11 月 19 日
这个问题叫重放攻击,你需要的方案是加签名

token 代表一个用户的身份,已经完成了它的使命

你们说的替换 guest token 为 admin token 之后继续发请求,这是重放攻击

加个签名 sign(who+when+where+what) 中间件就可以完美解决。替换了 token 就意味着 who 变了,签名对不上也是 GG
iikebug
2021 年 11 月 19 日
@pupboss 这就不是一个签名能解决的东西,webd 端啊,你都能弄到 token 了,还有啥你弄不到的?
fortunezhang
2021 年 11 月 19 日
等保这帮人。 哎。。。他们渗透,还得给他们钱,最后他们给你个证。。。
iyaozhen
2021 年 11 月 19 日
越权的结论有点牵强,但确实是有问题的

需要有 token 吊销机制
前端页面需要加上 CSRF Token
然后敏感操作(比如删除、导出等),二次验证管理员密码。
pupboss
2021 年 11 月 19 日
@iikebug 单就楼主的描述看,测试人员替换请求头的 token ,是可以通过加签名解决的,替换了 token 意味着 who 变了,签名肯定对不上

如果非得深挖的话,确实 web 端可以反推签名算法,这就是另一个领域的话题了,我们可以尽可能的混淆代码,用 hex 表示签名用的 key ,破解的成本一般都会比收益高了
snowlyg
2021 年 11 月 19 日
面试还被问过类似的问题,都不知道怎么答
zypy333
2021 年 11 月 19 日
第一反应是不是招惹别人了,还是想吃拿卡要?难倒他们以前也是这样检查 token 的吗
LinShiG0ng
2021 年 11 月 19 日
我刚入行做的是渗透测试,第一个项目就是工行,工行的安全程度就不用我多说了,人家自己养的安全团队都已经很强了,到我手上基本上挖不到洞了,然后我就用了楼主说的方法,提了个越权,然后我们组长告诉我这根本不叫漏洞。。。。。。
H3x
2021 年 11 月 19 日
这个问题很典型,也很有借鉴意义,常见于渗透小白,属于方法会了,但是逻辑搞错了。
adoal
2021 年 11 月 19 日
搞等保那批人懂个屁的安全
adoal
2021 年 11 月 19 日
不过你这个确实也是问题。还是要加上检查的。
itechnology
2021 年 11 月 19 日
@conhost 双因子认证这个我知道,但你不可能每个请求都用双因子认证吧?据我说知国内大多数用上双因子认证的也只是在关键交易上用。
token 对于系统来说就相当于用户,讲道理,你 token 都被人拿到了,那还有什么不能拿到的。
conhost
2021 年 11 月 19 日
@itechnology 我的意思是说如果只是简单替换 token 就能访问的话,也是存在问题的,并不能就说很逗,即使不用每个请求都双因子认证,也可以对请求签名啥的,虽然也存在问题,但是至少楼主的问题可以完美解决
markgor
2021 年 11 月 20 日
息事宁人的做法,按它说的改;
暴脾气的做法:
直接回怼并说明详细原因,
建议去(腾讯、阿里、百度) 登录会员页面,替换 token/cookie 尝试,
然后去他们家对应的漏洞平台提交,
把大厂回复你的内容黏贴去报告中,
再反问利用 sessionID 的话,如果复制对应的 cookie 信息,不也是会产生“被盗”吗?
opengps
2021 年 11 月 20 日
莫非要 token 换成非对称加密的密文,服务端每次解码验证下才能行?
yedanten
2022 年 2 月 13 日
你指望安服崽的水平?
unco020511
2024 年 4 月 28 日
@pupboss #106 前端还需要反推吗,直接控制台源码打开一看不就知道你的签名算法了.问题是你自己把大门打开,请人家使用你的机器,然后说这很不安全

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/816341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX