zoukankan      html  css  js  c++  java
  • 第三方登录绑定csrf漏洞利用

    作者:pmiaowu
    文章:https://www.yuque.com/pmiaowu/web_security_1/sq87w6

    这里需要使用到一个微博账号与两个某厂商账号

    条件:

    1、微博账号:182**77 (攻击者)

    2、某厂商账号A:33*493@qq.com (攻击者)

    3、某厂商账号B:28*165@qq.com (无辜受害者)


    利用方法:

    步骤1:攻击者-登录微博

    步骤2:攻击者-使用某厂商账号A 登录

    从上面看其实有很多绑定账号快捷登录的方法,但是微博绑定的用户肯定是比较少的所以我们用它

    步骤3:攻击者-点击绑定微博抓包

    绑定微博的url:https://www.a.test.com/users/auth/weibo/callback?state={"can_transfer"%3A"true"}&code=c593bc150745c37a4d5ec05332d406af
    这个url中的code就是我的微博一次性token

    步骤4:无辜受害者-使用某厂商账号B 登录

    将url发送给账号B 打开:https://www.a.test.com/users/auth/weibo/callback?state={"can_transfer"%3A"true"}&code=c593bc150745c37a4d5ec05332d406af

    这时提示绑定成功了~~~ 嘿嘿嘿

    步骤5:攻击者-点开浏览器,选择微博登录

    总结:
    1、OAuth2.0第三步的请求Client携带Access TokenResource Server请求用户信息资源,没有添加校验参数用于防御CSRF

    2、这个之前有遇到过,当有检验参数例如state时候,也可以尝试删掉state键值,也能进行绕过绑定

    类似的后端逻辑代码:只有参数存在才判断,而参数不存在最直接ACCESS GRANTED

    if(isset($_GET['state'])){
        if($_GET['state'] != current_user_state)
            ACCESS DENIED
            exit()
    }
    
    ACCESS GRANTED
    
  • 相关阅读:
    AVL树的旋转操作详解
    KMP算法的优化与详解
    手机号码等的正则验证
    Josephus问题的java实现
    Match类解析
    this的相关介绍与用法
    Iterator——迭代接口
    final对于访问效率的影响
    final关键字介绍
    JAVA事件监听机制与实现
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/11892642.html
Copyright © 2011-2022 走看看