0x00 前言
--学如逆水行舟,不进则退
0x01 漏洞简介
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。
0x02 漏洞复现
一、环境搭建
这里使用的环境是vulhub靶场环境,先切换到漏洞环境目录,使用以下命令启动环境
docker-compose up -d
启动成功之后,访问靶机ip:8080,出现以下图片说明搭建成功
二、开始复现
抓包,添加字段,利用已存在的用户名admin,获取session
添加字段为:Authorization: Digest username=admin
如下图
在获取到session之后,再次进行抓包,添加以下字段
-http-session-=这里根据自己获取到的session修改
Authorization: Digest username=admin
username=admin 如下图
此时发现已经进行绕过了,还有一种方法就是利用 Google插件EditThisCookie,把session值写入到网站中去,刷新页面,发现不需填写密码登录进去了