漏洞描述
AppWeb使用以下三种认证方式:
| 认证方式 | 认证原理 |
|---|---|
| basic | 传统HTTP基础认证 |
| digest | 改良版HTTP基础认证,认证通过后不再传递Authorization头,而使用Cookie保存状态 |
| form | 表单认证 |
在7.0.3之前版本,若认证方式为digest或form,此时攻击者可通过不传递密码参数,利用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许可协议,转载请注明出处。