Nginx 文件名逻辑漏洞(CVE-2013-4547)(Vulhub)
Nginx 文件名逻辑漏洞(CVE-2013-4547)(Vulhub)
漏洞简介
在Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7版本中存在错误解析用户请求的url信息,从而导致文件代码执行,权限绕过等问题。
适用环境
Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7版本
漏洞成因
漏洞成因大概为Nginx本身并不能解析PHP代码,只能通过加载PHP模块来进行解析代码。通过正则表达式来匹配以.php结尾的请求路径交给PHP模块去解析,但是Nginx在加载文件名时遇到‘\0’便会停止读取‘\0’后面的内容,于是通过以上思路,我们在进行文件上传的时候,文件名应该设置为1.gif,在进行访问时,访问文件应为1.gif'\0'.php,通过正则表达式匹配.php后缀将请求路径交给PHP模块,PHP模块在读取文件名时遇到\0便不会读取后面的.php,从而解析文件为1.gif,但是在实际过程中,Nginx在读取文件名碰到'\0'便会出现报错并停止执行,当我们在'\0'前面加入空格后,Nginx便会跳过报错处理,这样便可以成功利用'\0'进行截断,因此我们的请求路径应该为1.gif[0x20][0x00].php,Nginx在读取文件名为1.gif[0x20],因此我们在上传文件时应该上传文件名1.gif[0x20]
具体解释可查看参考文章
- '\0'为字符串结束标志,十六进制表示为0x00
- 空格字符,十六进制表示为0x20
环境搭建
环境路径
/vulhub/nginx/CVE-2013-4547
启动命令
docker-compose up -d
查看环境配置
docker-compose up -d
访问界面

漏洞复现
构建上传文件内容
<?php phpinfo();?>
对上传文件进行抓包,在文件名后面添加空格

成功上传

抓取访问1.gif.php文件的数据包,发送至repeater模块

在访问路径gif后通过十六进制视角右键点击添加字节添加空格和'\0'的十六进制数

发送数据包查看回显内容,1.gif[0x20]中的代码已被执行,将phpinfo()代码换成后门代码即可连接后门。

漏洞总结
利用该漏洞需要满足
- Nginx版本满足0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7版本
- 文件上传点
- 可以上传带空格文件名的文件
- 服务器没有做文件重命名
修复建议
- 升级最新版Nginx
- 过滤空格
- 文件重命名
- 取消文件目录执行权限
- 云存储
参考文献
[1]Nginx 文件名逻辑漏洞(CVE-2013-4547)
[2]Nginx 文件名逻辑漏洞(CVE-2013-4547)漏洞复现
[3]Nginx服务漏洞详解
以上内容仅作学习,如有瑕疵或错误,欢迎指正,感谢阅读。
Nginx 文件名逻辑漏洞(CVE-2013-4547)(Vulhub)的更多相关文章
- nginx文件名逻辑漏洞_CVE-2013-4547漏洞复现
nginx文件名逻辑漏洞_CVE-2013-4547漏洞复现 一.漏洞描述 这个漏洞其实和代码执行没有太大的关系,主要原因是错误地解析了请求的URL,错误地获取到用户请求的文件名,导致出现权限绕过.代 ...
- 14.Nginx 文件名逻辑漏洞(CVE-2013-4547)
由于博主在渗透网站时发现现在Nginx搭建的网站是越来越多 所以对Nginx的漏洞来一个全面性的复习,本次从Nginx较早的漏洞开始分析. 2013年底,nginx再次爆出漏洞(CVE-2013-45 ...
- Nginx 文件名逻辑漏洞(CVE-2013-4547)
影响版本 Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 漏洞成因 这个漏洞其实和代码执行没有太大关系,其主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导 ...
- WEB安全--逻辑漏洞
业务逻辑问题是一种设计缺陷.逻辑缺陷表现为设计者或开发者在思考过程中做出的特殊假设存在明显或隐含的错误.精明的攻击者会特别注意目标应用程序采用的逻辑方式,设法了解设计者与开发者做出的可能假设,然后考虑 ...
- 一个安邦逻辑漏洞爆破密码的py脚本
漏洞地址: 安邦保险集团存在逻辑漏洞可遍历用户ID暴力破解用户原始密码进而重置用户密码(附脚本) http://www.wooyun.org/bugs/wooyun-2010-0119851 脚本PO ...
- IIS短文件名泄露漏洞危害及防范方法
危害级别:轻微 IIS短文件名泄露漏洞 WASC Threat Classification 描述: Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件 ...
- [SRC初探]手持新手卡挖SRC逻辑漏洞心得分享
文章来源i春秋 本文适合新手参阅,大牛笑笑就好了,嘿嘿末尾有彩蛋!!!!!!!!!!!!!!!!!本人参加了本次"i春秋部落守卫者联盟"活动,由于经验不足,首次挖SRC,排名不是那 ...
- IIS文件名解析漏洞扼要分析
概括: 从技术角度分析IIS6文件名解析漏洞的原理与IIS7的相关情况. a.IIS6错误解析文件类型现象 1.当WEB目录下,文件名以 xxx.asp;xxx.xxx 来进行命名的时候,此文件将送交 ...
- WEB安全第七篇--终结篇考验逻辑思维:逻辑漏洞大汇总(越权、会话逻辑、业务逻辑、暴力破解)
零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...
- IIS短文件名泄露漏洞危害及防范方法(转)
攻击方法(转自http://blog.sina.com.cn/s/blog_64a3795a01017xqt.html) 一直在寻找一种方法,如果我可以使用通配符"*" 和 &qu ...
随机推荐
- 2022-04-15:给定一个非负数组arr,学生依次坐在0~N-1位置,每个值表示学生的安静值, 如果在i位置安置插班生,那么i位置的安静值变成0,同时任何同学都会被影响到而减少安静值, 同学安静值
2022-04-15:给定一个非负数组arr,学生依次坐在0~N-1位置,每个值表示学生的安静值, 如果在i位置安置插班生,那么i位置的安静值变成0,同时任何同学都会被影响到而减少安静值, 同学安静值 ...
- [ABC270D] Stones
[ABC270D] Stones 题意 有两个人玩游戏,有 \(n\) 个石子,和一个长度为 \(k\) 的序列,每次可以取 \(a_i\) 个但前提是剩下来的石子数有 \(a_i\) 个,第一个人先 ...
- [学习笔记]解决因C#8.0的语言特性导致EFCore实体类型映射的错误
今天下午在排查一个EF问题时,遇到了个很隐蔽的坑,特此记录. 问题 使用ef执行Insert对象到某表时报错,此对象的Address为空: 不能将值 NULL 插入列 'Address',表 'dbo ...
- 工欲善其事必先利其器--CMake牛刀小试
这里假设用户已经安装好MinGW编译套件!并配置好环境变量!具体怎么下载和配置网上教程非常多,这里贴上一个链接:不仅教你安装MinGW还教你安装VScode配置 1.学习c plus plus编码为什 ...
- go for range的坑
package main import "fmt" func main() { ParseStudent() } type student struct { Name string ...
- 代码随想录算法训练营Day46 动态规划
代码随想录算法训练营 代码随想录算法训练营Day46 动态规划| ● 139.单词拆分 关于多重背包,你该了解这些! 背包问题总结篇! 139.单词拆分 题目链接:139.单词拆分 给定一个非空字符 ...
- 【重学C++】05 | 说透右值引用、移动语义、完美转发(下)
文章首发 [重学C++]05 | 说透右值引用.移动语义.完美转发(下) 引言 大家好,我是只讲技术干货的会玩code,今天是[重学C++]的第五讲,在第四讲<[重学C++]04 | 说透右值引 ...
- html+css简单易懂的轮播图实现
实现轮播图感觉好复杂啊,这个比较简单的实现了 但是还是没有怎么理解代码,只能先发出来慢慢学习学习了 话不多说,直接上代码 <!DOCTYPE html> <html lang=&qu ...
- 【GIS】图层中多个面要素融合成一个面要素
对于那些利用GIS信息进行编辑,设计的GIS专业人士来说,桌面GIS占有主导地位.GIS专业人士使用标准桌面作为工具来设计,共享,管理和发布地理信息. ArcGIS Desktop是一 ...
- 龙芯下如何进行.net core程序开发部署
龙芯LoongArch64已经发布了对.NETCore的支持,相关工具链也已完成,目前支持.NETCore3.1..NET6..NET7版本.本文以.NETCore3.1在loongnix-serve ...