• 【10.20总结】一个漏洞提交页面的提权漏洞


    !!!写完之后网页崩溃了,然后草稿找回的内容还不对!!!

    Write-up地址:Add comment on a private Oculus Developer bug report


     漏洞起源于作者Sarmad Hassan (Juba Baghdad)对Oculus网站漏洞(非安全漏洞)提交功能的测试。

    首先对该功能进行分析

    1. 用户有两种提交漏洞的方式:公有和私有

    2. 公有漏洞:任意人都可以评论或者回复评论

    3. 私有漏洞:除了提交者和支持团队,没有人可以评论

    4. 用户的仪表板中不会出现其他用户的私有漏洞

    很明显,正常情况下用户不会接触到其他用户的私有漏洞,而也正是该部分功能值得我们进行突破。

    通过对公有漏洞功能进行测试,分析私有漏洞功能可能存在的问题

    作者创建了一个公有漏洞并评论,在回复该评论时拦截了发出的请求:

    POST /graphql?locale=user HTTP/1.1
    Host: graph.oculus.com
    
    access_token=My-Acces-Token&variables={“input”:{“client_mutation_id”:”1",”comment_parent_id”:”556190998150906",”external_post_id”:”548709645565708",”message”:”what ever”}}&blablabla

    可以发现两个有趣的参数名(这里作者应该是把两个ID搞混了,我这里是按照作者PoC视频解释的):

    1. comment_parent_id: 评论的ID

    2. external_post_id: 漏洞ID(漏洞ID可以从URL中获得https://developer.oculus.com/bugs/bug/your-bug-ID/

    很自然的,作者想到可以对这两个ID进行替换:

    一种情况是替换external_post_id,从而可以在其他用户的私有漏洞下评论,但是没有成功。

    另一种情况是替换comment_parent_id,从而可以在其他用户私有漏洞的评论下进行回复,而该测试成功了。其实这里注意到,external_post_id还是攻击用户本来的漏洞ID,只是由于comment_parent_id变成了被攻击用户的私有评论ID,就可以实现攻击。

    一个小问题

    攻击者怎样获得其他用户私有漏洞的评论ID?这确实是一个问题,如果是针对某一特定用户,可能需要其他手段,但是攻击者仍然可以采用暴力的方式枚举ID,实现随机的攻击。


    1. 对于测试的特性,有必要分析它各方面的功能,以及各类不同用户的权限。

    2. 从正常权限出发,分析突破受限的权限

    3. 某些程度上,漏洞就意味着逻辑上存在问题,所以不要按照正常的逻辑分析漏洞可能的方向,而要打破思维的限制

  • 相关阅读:
    博客园定制
    【杂文】久 等 了
    【杂文】随心一记
    NOIP2021游寄
    【python】mac+appium+python的环境配置完整流程
    压力测试平台(nGrinder)入门到精通教程
    Gunicorn启动flask项目
    统计代码测试覆盖率Python
    Android开发Google Pixel、Google Nexus系列手机刷机获取root并且设置ro.debuggable=1的方法
    c宏定义#define、#、##、__VA_ARGS__符号的理解
  • 原文地址:https://www.cnblogs.com/zz0eyu/p/9822531.html
Copyright © 2020-2023  润新知