AppWeb空密码认证绕过漏洞(CVE-2018-8715)

容器简介:Appweb是一款超快速且紧凑的嵌入式Web服务器,可高效,安全地托管嵌入式Web应用程序。Appweb通过包含ESP Web框架和一系列广泛的功能,大大减少了开发Web应用程序的时间和成本 。

影响版本:Appweb版本4.0到7.0.2

漏洞概述:

  1.  这里涉及到appweb的三种身份验证方式:
    1. basic 传统HTTP基础认证
    2. digest 改进版HTTP基础认证,认证成功后将使用Cookie来保存状态,而不用再传递Authorization头
    3. form 表单认证
  2. 利用方式:
    1. 对于digest摘要身份验证,Authorization标头提供用于验证请求的用户名和密码。如果无效的Authorization标头与已知的有效用户名一起使用而未提供密码,则该请求将绕过身份验证并被接受。
    2. 对于表单身份验证,用户凭据通过POST正文表单字段传递。如果提供的用户名字段没有密码表单,则将绕过字段身份验证。

     在这两种情况下,都需要已知的有效用户名,并且密码字段必须不存在。即提供空密码将无法被利用。
 

payload:

GET / HTTP/1.1
Host: 192.168.183.134:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Authorization: Digest username=admin

复现记录:此处靶机url为http://192.168.183.134:8080

1.访问ip:8080出现如下界面,可以看到Authorization字段

AppWeb空密码认证绕过漏洞(CVE-2018-8715)_第1张图片

2.直接构造数据包发送:

          此靶场的username为admin,可以看到payload成功,记录下此时的cookie值

Set-Cookie: -http-session-=7::http.session::b4d3f458b57190dfa09de5e256127eaa;

AppWeb空密码认证绕过漏洞(CVE-2018-8715)_第2张图片

  • 利用方式1:
  • 直接cookie重放:

将截取的cookie在请求时重放,AppWeb空密码认证绕过漏洞(CVE-2018-8715)_第3张图片

  • 利用方式2:

       post提交,加上cookie值及Authorization: Digest username=admin,其实我觉得这个没有什么意义,不然为什么还要post正文再交一次数据,但是不加不能执行,可能是自己理解错误了。且实际起作用的应该是这段cookie值与Authorization,把post正文删掉也可以成功访问。

AppWeb空密码认证绕过漏洞(CVE-2018-8715)_第4张图片

总结:说一下我的个人理解,此漏洞是产生的根本原因是两个未正确检测NULL密码的例程。利用这一点实现正确用户名+空密码获取cookie值,绕过登录完整验证获取到了身份验证的cookie值,加以利用。在靶场中,此漏洞复现成功后,好像对拿shell没有太大帮助。

欢迎各路大佬指正!

对漏洞源代码分析感兴趣的https://ssd-disclosure.com/archives/3676

参考链接:https://github.com/embedthis/appweb/issues/610

                  https://blog.csdn.net/weixin_43650289/article/details/90692967

                  https://blog.csdn.net/weixin_42936566/article/details/87120710

 

你可能感兴趣的:(实验记录)