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。
打开靶场
java
oot@localhost appweb]# ls
CVE-2018-8715
[root@localhost appweb]# cd CVE-2018-8715/
[root@localhost CVE-2018-8715]# docker compose up -d
[+] Running 6/6
✔ web 5 layers [⣿⣿⣿⣿⣿] 0B/0B Pulled 60.5s
✔ 419e7ae5bb1e Pull complete 8.2s
✔ 848839e0cd3b Pull complete 6.3s
✔ de30e8b35015 Pull complete 2.9s
✔ 2e66baab3c26 Pull complete 11.8s
✔ 9a1adbcb76ed Pull complete 11.7s
[+] Running 2/2
✔ Network cve-2018-8715_default Created 0.9s
✔ Container cve-2018-8715-web-1 Started 0.4s
正常访问是无法访问的

用bp抓登录的包

正常情况下访问是401

去除这些字段只留下admin,返回的cookie复制
Set-Cookie: -http-session-=2::http.session::4310db6ab97ca8c5842cf79d5bdb8e10; path=/;

刷新界面抓包,加入cookie

bp放包,关闭拦截,回到火狐浏览器点击取消登录,就能跳转了
