Appweb(CVE-2018-8715)漏洞复现与思考
目錄
Appweb簡介
漏洞原理
漏洞影響范圍
漏洞復現
思考
Appweb簡介
Appweb是一個嵌入式HTTP Web服務器,主要的設計思路是安全。這是直接集成到客戶的應用和設備,便于開發和部署基于Web的應用程序和設備。它迅速( 每秒處理3500多要求)而緊湊 ,其中包括支持動態網頁制作,服務器端嵌入式腳本過程中的CGI ,可加載模塊的SSL ,摘要式身份驗證,虛擬主機, Apache樣式配置,日志記錄,單和多線程應用程序。它提供了大量的文檔和示例。
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。
?
?
漏洞影響范圍
Appweb 7.0.2及早期版本。
?
?
漏洞復現
1、開啟docker vulhub靶場環境
?
2、訪問目標。
3、獲取用戶名,這個就顯現出此漏洞的局限性了。靶場里告訴了有一個賬戶是joshua
?
4、通過抓包軟件攔截,添加以下HTTP 頭信息后,發送數據包。
Authorization: Digest username=joshua?
5、返回狀態碼為200后,獲取HTTP 頭信息中的session,如以下格式
-http-session-=1::http.session::20bf575fc03c1d60880ba53349b2f774?
6、通過抓包軟件攔截,發送POST請求,添加session到HTTP 頭信息和用戶名后,發送數據包。如下圖所示
?
7、返回狀態碼為200,成功繞過身份驗證
?
?
思考
1、由于不知道服務器的Appweb的用戶名,因此不能批量利用。但我想著可以假設一個用戶名,然后就可以批量利用了。這樣的話,如何獲取更多裝有Appweb的服務器呢?這就是一個指紋的問題了,通過分析HTTP包,還是有所發現的。
?
看到HTTP頭里有一個“WWW-Authenticate:Digest.....”的內容
于是去fofa里找了一下,發現了大量服務器,看WWW-Authenticate內容差不多,但不確定是否真實存在的Appweb,也不知道Appweb的版本,但是這樣做至少把范圍縮小了,并且可以通過假定一個用戶名進行批量利用了。
?
2、如何寫POC;這個用python還是很好實現的。
?
總結
以上是生活随笔為你收集整理的Appweb(CVE-2018-8715)漏洞复现与思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlmap的使用 ---- 自带绕过脚
- 下一篇: Python常用的几种去重方式