V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yuan93

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

  •  
  •   yuan93 · Nov 18, 2021 via Android · 12823 views
    This topic created in 1625 days ago, the information mentioned may be changed or developed.
    最近在过等保,测试人员拿 admin 用户的 token 替换到了 guess 用户的请求头里,得出一个存在越权的结论,给的修复方案是: 对所有用户功能基于 sessionid 判断用户权限。

    但我寻思 sessionid 不也存在浏览器端吗,一样可以被等保测试人员拿到放在其他用户的请求里伪装 admin 用户
    118 replies    2024-04-28 18:03:10 +08:00
    1  2  
    conhost
        101
    conhost  
       Nov 19, 2021
    @IvanLi127 这样也可以,我只是针对你说的循环加 token 说的,😁😄
    pupboss
        102
    pupboss  
       Nov 19, 2021
    这个问题叫重放攻击,你需要的方案是加签名

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

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

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

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

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