AppWeb
目录
AppWeb是什么?
CVE-2018-8715(AppWeb认证绕过漏洞)
AppWeb是什么?
AppWeb是一个轻量级的Web服务器,专为嵌入式系统、物联网设备和小型应用程序设计。由Embedthis Software LLC公司负责开发维护的基于GPL协议开源协议的C/C++编写的嵌入式Webserver。
主要特点:
- 占用内存小、响应速度快,适合在资源受限的环境中运行
- AppWeb支持HTTP/1.1、WebSocket和CGI等协议,可以为嵌入式设备提供Web服务
CVE-2018-8715(AppWeb认证绕过漏洞)
AppWeb支持多种认证方式:
- 基本认证(Basic Authentication):
- 通过HTTP请求头传递用户名和密码。用户名和密码以base64编码形式传输,但并不加密传输,因此需要HTTPS来保护数据,即HTTP+SSL/TLS协议。
- 摘要认证(Digest Authentication):
- 比基本认证更安全,避免直接使用明文传输。摘要认证将密码与一些额外的参数通过hash算法处理,从而方式密码被截获。
- 表单认证(Form-based Authentication):
- 用户通过Web表单提交用户名和密码进行认证。AppWeb可以根据提交的凭证和存储的用户数据进行匹配。
- 客户端证书认证(Client Certificate Authentication):
- 通过客户端证书进行身份认证。客户端要提供合法的身份证书,服务器验证通过后才允许访问。
- JSON Web Token(JWT)认证:
- JWT认证。JWT通过HTTP请求头传递,它包含加密的用户身份信息,用于验证用户身份并控制访问权限。
- 基于ip认证(IP-based Authentication):
- AppWeb也支持根据客户端的ip地址进行简单的认证,即IP白名单,只有特定ip地址才可访问 。
漏洞成因:在7.03之前的版本,对于digest和from两种认证方式,如果用户传入的密码为null(不传递密码参数),AppWeb将一个逻辑错误导致直接认证成功,并返回session。
版本要求:AppWeb < 7.03
账号要求:需正确用户名
步骤1:构造无密码数据包
步骤2:获取到的session尝试用来登录
这里是一个json格式的,key-value都得修改。