漏洞描述

AppWeb使用以下三种认证方式:

认证方式认证原理
basic传统HTTP基础认证
digest改良版HTTP基础认证,认证通过后不再传递Authorization头,而使用Cookie保存状态
form表单认证

7.0.3之前版本,若认证方式为digestform,此时攻击者可通过不传递密码参数,利用AppWeb逻辑错误成功认证并获取session

AppWeb使用C/C++语言进行编写,是Embedthis Software LLC公司开发维护的一个基于GPL开源协议的嵌入式Web Server,主要应用场景在于为嵌入式设备提供Web Application容器。

影响版本

AppWeb 7.0.3之前版本。

漏洞复现

git clone https://github.com/vulhub/vulhub.git
cd vulhub/appweb/CVE-2018-8715
docker-compose up -d

访问http://<ip>:<port>,会弹出一个登录框,此时需要输入一个存在的用户名,猜测为admin,密码随意输入,抓取登录包并构造Authorization: Digest username=admin,点击发送,成功绕过认证。

文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。