AppWeb身份验证绕过漏洞(CVE-2018-8715)
AppWeb是基于Embedthis Software LLC开发和维护的开源GPL协议的嵌入式Web服务器。它是用C / C ++编写的,几乎可以在任何现代操作系统上运行。当然,它旨在为嵌入式设备提供Web应用程序容器。
可以配置AppWeb进行身份验证,其中包括以下三种身份验证方法:
basic
,传统的HTTP基本身份验证digest
,改进了HTTP基本身份验证。在这种模式下,Cookie将用于身份验证,而不是Authorization
标头。form
,基于HTML的表单身份验证
在7.0.3之前的Appweb版本中,存在与authCondition函数相关的逻辑缺陷http/httpLib.c
。使用伪造的HTTP请求,可以绕过form
和digest
登录类型的身份验证。
参考链接:
利用
访问http://192.168.44.132:8080/
,出现登陆框提示需要登录,删除凭证后,放包可发现存在管理员的session值直接响应包返回,利用该漏洞需要知道一个已存在的用户名,当前的用户名是admin
,因此您可以使用以下请求绕过身份验证:
1 | GET / HTTP/1.1 |
由于我们没有传递密码字段,因此服务器错误发生,其中包含200 status code
和会话设置标头:
可以使用以下会话标头正常访问该页面:
1 | -http-session-=7::http.session::665137a0fea794484d8c255fa9f8f683 |
在将session添加到请求包内,以POST的方式发送,然后这样就可以直接访问该管理员才能访问的界面了。