内容涉及點:
- 簡介
- 原理
- 影響範圍
- 複現過程
- 自己的心得體會
Appweb簡介
Appweb是一個HTTP Web伺服器。這是直接內建到客 戶的應用和裝置,便于開發和部署基于Web的應用程式和裝置。
AppWeb可以進行認證配置,其認證方式包括以下三種:
basic 傳統HTTP基礎認證
digest 改進版HTTP基礎認證,認證成功後将使用Cookie來儲存狀态,
而不用再傳遞Authorization頭
form 表單認證
漏洞原理
其7.0.3之前的版本中,對于digest和form兩種認證方式,如果使用者傳入的密碼為
null
(也就是沒有傳遞密碼參數),appweb将因為一個邏輯錯誤導緻直接認證成功, 并傳回session。
漏洞影響範圍:
Appweb 7.0.2及早期版本。
複現過程:
1.該漏洞的存在,必須知道使用者名!
利用該漏洞需要知道一個已存在的使用者名,目前環境下使用者名為joshua
這裡我是拿docker在ubantu上搭建的環境,然後使用kali linux通路!
目标靶機:ubantu:192.168.44.128
kali linux: 192.168.44.130
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR9ENJRUTxkleNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5cjM0EjM0ATMwMTNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.這裡抓取了使用者名的一個請求包,在burp上顯示出來!
Authorization: Digest username=joshua
我們能夠清晰的看見get請求,所對應的響應為200!
3.修改 為POST,和接入session以及使用者名
這裡為什麼我改成post來傳值呢,是因為post可以傳入大量的資料,而get卻不能!
從上面的傳回包中,我們可以清楚地看到set-cookie這個參數下,所對應 的資訊額!
在請求體内加入這個session資訊,想着帶上這個參數資訊可以繞過相關的驗證!
4.傳回200,成功繞過!
由于攜帶了身份識别的資訊體,然而,也沒有發現其他什麼要效驗或者限制傳值的地方,傳回包中顯示200,則證明我的猜想,還是正确的。
心得體會:
- 該漏洞的出現,雖然在當時引起了一陣的熱議,許多appweb存在這一漏洞,遭到黑客的攻擊。個人認為,這是屬于登陸界面效驗的問題,若做到前後邏輯以及驗證方面設定清晰得當,方可避免。
- 程式設計人員也不可能面面俱到,畢竟他們每天面對大量的代碼,已是心無餘力啦!但是,安全方面的問題,希望能加強重視!
- 當然了,也是可以寫一個python腳本去實作我們想要的結果!
- cookie ,session,token等參數的應用,大家要好好了解!